Copy disabled (too large)
Download .txt
Showing preview only (24,943K chars total). Download the full file to get everything.
Repository: apache/jackrabbit
Branch: trunk
Commit: e868deec6c10
Files: 3373
Total size: 33.8 MB
Directory structure:
gitextract_13_ffsv_/
├── .asf.yaml
├── .github/
│ └── workflows/
│ └── build.yml
├── .gitignore
├── .mvn/
│ └── README.md
├── LICENSE.txt
├── NOTICE.txt
├── README.txt
├── RELEASE-NOTES.txt
├── assembly.xml
├── examples/
│ └── jackrabbit-firsthops/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── firsthops/
│ │ ├── FirstHop.java
│ │ ├── SecondHop.java
│ │ └── ThirdHop.java
│ └── resources/
│ ├── log4j.properties
│ └── test.xml
├── jackrabbit-aws-ext/
│ ├── README.txt
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── aws/
│ │ └── ext/
│ │ ├── S3Constants.java
│ │ ├── S3RequestDecorator.java
│ │ ├── Utils.java
│ │ └── ds/
│ │ ├── S3Backend.java
│ │ ├── S3BackendResourceAbortableInputStream.java
│ │ ├── S3DataStore.java
│ │ └── package-info.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── aws/
│ │ └── ext/
│ │ ├── TestAll.java
│ │ └── ds/
│ │ ├── S3TestDataStore.java
│ │ ├── TestS3DSAsyncTouch.java
│ │ ├── TestS3DSWithSSES3.java
│ │ ├── TestS3DSWithSmallCache.java
│ │ ├── TestS3Ds.java
│ │ └── TestS3DsCacheOff.java
│ └── resources/
│ ├── aws.properties
│ ├── log4j.properties
│ └── repository_sample.xml
├── jackrabbit-core/
│ ├── HEADER.txt
│ ├── README.txt
│ ├── checkstyle-suppressions.xml
│ ├── checkstyle.xml
│ ├── jdepend.properties
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── appended-resources/
│ │ │ └── META-INF/
│ │ │ └── NOTICE
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── core/
│ │ │ ├── AbstractNodeData.java
│ │ │ ├── AddMixinOperation.java
│ │ │ ├── BatchedItemOperations.java
│ │ │ ├── CachingHierarchyManager.java
│ │ │ ├── DefaultSecurityManager.java
│ │ │ ├── HierarchyManager.java
│ │ │ ├── HierarchyManagerImpl.java
│ │ │ ├── ItemData.java
│ │ │ ├── ItemImpl.java
│ │ │ ├── ItemLifeCycleListener.java
│ │ │ ├── ItemManager.java
│ │ │ ├── ItemRefreshOperation.java
│ │ │ ├── ItemRemoveOperation.java
│ │ │ ├── ItemSaveOperation.java
│ │ │ ├── ItemValidator.java
│ │ │ ├── JackrabbitRepositoryStub.java
│ │ │ ├── JackrabbitThreadPool.java
│ │ │ ├── LazyItemIterator.java
│ │ │ ├── LowPriorityTask.java
│ │ │ ├── NamespaceRegistryImpl.java
│ │ │ ├── NodeData.java
│ │ │ ├── NodeDataRef.java
│ │ │ ├── NodeImpl.java
│ │ │ ├── NodeTypeInstanceHandler.java
│ │ │ ├── PropertyData.java
│ │ │ ├── PropertyImpl.java
│ │ │ ├── ProtectedItemModifier.java
│ │ │ ├── RemoveMixinOperation.java
│ │ │ ├── RepositoryChecker.java
│ │ │ ├── RepositoryContext.java
│ │ │ ├── RepositoryCopier.java
│ │ │ ├── RepositoryFactoryImpl.java
│ │ │ ├── RepositoryImpl.java
│ │ │ ├── RepositoryManagerImpl.java
│ │ │ ├── SearchManager.java
│ │ │ ├── SessionFactory.java
│ │ │ ├── SessionImpl.java
│ │ │ ├── SessionListener.java
│ │ │ ├── SessionMoveOperation.java
│ │ │ ├── SystemSession.java
│ │ │ ├── TestContentLoader.java
│ │ │ ├── TransientRepository.java
│ │ │ ├── UserPerWorkspaceSecurityManager.java
│ │ │ ├── VersionManagerImpl.java
│ │ │ ├── WorkspaceImpl.java
│ │ │ ├── WorkspaceManager.java
│ │ │ ├── XASessionImpl.java
│ │ │ ├── ZombieHierarchyManager.java
│ │ │ ├── cache/
│ │ │ │ ├── AbstractCache.java
│ │ │ │ ├── Cache.java
│ │ │ │ ├── CacheAccessListener.java
│ │ │ │ ├── CacheManager.java
│ │ │ │ ├── ConcurrentCache.java
│ │ │ │ └── GrowingLRUMap.java
│ │ │ ├── cluster/
│ │ │ │ ├── ChangeLogRecord.java
│ │ │ │ ├── ClusterContext.java
│ │ │ │ ├── ClusterException.java
│ │ │ │ ├── ClusterNode.java
│ │ │ │ ├── ClusterOperation.java
│ │ │ │ ├── ClusterRecord.java
│ │ │ │ ├── ClusterRecordDeserializer.java
│ │ │ │ ├── ClusterRecordProcessor.java
│ │ │ │ ├── ClusterSession.java
│ │ │ │ ├── DefaultClusterOperation.java
│ │ │ │ ├── LockEventChannel.java
│ │ │ │ ├── LockEventListener.java
│ │ │ │ ├── LockRecord.java
│ │ │ │ ├── NamespaceEventChannel.java
│ │ │ │ ├── NamespaceEventListener.java
│ │ │ │ ├── NamespaceRecord.java
│ │ │ │ ├── NodeTypeEventChannel.java
│ │ │ │ ├── NodeTypeEventListener.java
│ │ │ │ ├── NodeTypeRecord.java
│ │ │ │ ├── PrivilegeEventChannel.java
│ │ │ │ ├── PrivilegeEventListener.java
│ │ │ │ ├── PrivilegeRecord.java
│ │ │ │ ├── Update.java
│ │ │ │ ├── UpdateEventChannel.java
│ │ │ │ ├── UpdateEventListener.java
│ │ │ │ ├── WorkspaceEventChannel.java
│ │ │ │ ├── WorkspaceListener.java
│ │ │ │ └── WorkspaceRecord.java
│ │ │ ├── config/
│ │ │ │ ├── AccessManagerConfig.java
│ │ │ │ ├── BeanConfig.java
│ │ │ │ ├── BeanConfigVisitor.java
│ │ │ │ ├── BeanFactory.java
│ │ │ │ ├── ClusterConfig.java
│ │ │ │ ├── ConfigurationEntityResolver.java
│ │ │ │ ├── ConfigurationErrorHandler.java
│ │ │ │ ├── ConfigurationParser.java
│ │ │ │ ├── ImportConfig.java
│ │ │ │ ├── LoginModuleConfig.java
│ │ │ │ ├── NoOpConfigVisitor.java
│ │ │ │ ├── PersistenceManagerConfig.java
│ │ │ │ ├── RepositoryConfig.java
│ │ │ │ ├── RepositoryConfigurationParser.java
│ │ │ │ ├── SearchConfig.java
│ │ │ │ ├── SecurityConfig.java
│ │ │ │ ├── SecurityManagerConfig.java
│ │ │ │ ├── SimpleBeanFactory.java
│ │ │ │ ├── UserManagerConfig.java
│ │ │ │ ├── VersioningConfig.java
│ │ │ │ ├── WorkspaceConfig.java
│ │ │ │ └── WorkspaceSecurityConfig.java
│ │ │ ├── fs/
│ │ │ │ ├── db/
│ │ │ │ │ ├── DB2FileSystem.java
│ │ │ │ │ ├── DatabaseFileSystem.java
│ │ │ │ │ ├── DbFileSystem.java
│ │ │ │ │ ├── DerbyFileSystem.java
│ │ │ │ │ ├── JNDIDatabaseFileSystem.java
│ │ │ │ │ ├── MSSqlFileSystem.java
│ │ │ │ │ ├── Oracle9FileSystem.java
│ │ │ │ │ └── OracleFileSystem.java
│ │ │ │ └── mem/
│ │ │ │ ├── MemoryFile.java
│ │ │ │ ├── MemoryFileSystem.java
│ │ │ │ ├── MemoryFileSystemEntry.java
│ │ │ │ └── MemoryFolder.java
│ │ │ ├── gc/
│ │ │ │ └── GarbageCollector.java
│ │ │ ├── id/
│ │ │ │ ├── ItemId.java
│ │ │ │ ├── NodeId.java
│ │ │ │ ├── NodeIdFactory.java
│ │ │ │ ├── PropertyId.java
│ │ │ │ └── SeededSecureRandom.java
│ │ │ ├── jdkcompat/
│ │ │ │ └── Java23Subject.java
│ │ │ ├── jndi/
│ │ │ │ ├── BindableRepository.java
│ │ │ │ ├── BindableRepositoryFactory.java
│ │ │ │ ├── RegistryHelper.java
│ │ │ │ └── provider/
│ │ │ │ ├── DummyContext.java
│ │ │ │ └── DummyInitialContextFactory.java
│ │ │ ├── journal/
│ │ │ │ ├── AbstractJournal.java
│ │ │ │ ├── AbstractRecord.java
│ │ │ │ ├── AppendRecord.java
│ │ │ │ ├── DatabaseJournal.java
│ │ │ │ ├── DatabaseRecordIterator.java
│ │ │ │ ├── DefaultRecordProducer.java
│ │ │ │ ├── FileJournal.java
│ │ │ │ ├── FileRecordIterator.java
│ │ │ │ ├── FileRecordLog.java
│ │ │ │ ├── FileRevision.java
│ │ │ │ ├── InstanceRevision.java
│ │ │ │ ├── JNDIDatabaseJournal.java
│ │ │ │ ├── Journal.java
│ │ │ │ ├── JournalException.java
│ │ │ │ ├── JournalFactory.java
│ │ │ │ ├── LockableFileRevision.java
│ │ │ │ ├── MSSqlDatabaseJournal.java
│ │ │ │ ├── MemoryJournal.java
│ │ │ │ ├── MemoryRevision.java
│ │ │ │ ├── OracleDatabaseJournal.java
│ │ │ │ ├── ReadRecord.java
│ │ │ │ ├── Record.java
│ │ │ │ ├── RecordConsumer.java
│ │ │ │ ├── RecordIterator.java
│ │ │ │ ├── RecordProducer.java
│ │ │ │ └── RotatingLogFile.java
│ │ │ ├── lock/
│ │ │ │ ├── LockImpl.java
│ │ │ │ ├── LockInfo.java
│ │ │ │ ├── LockManager.java
│ │ │ │ ├── LockManagerImpl.java
│ │ │ │ ├── SessionLockManager.java
│ │ │ │ ├── XAEnvironment.java
│ │ │ │ ├── XALockImpl.java
│ │ │ │ └── XALockManager.java
│ │ │ ├── nodetype/
│ │ │ │ ├── BitSetENTCacheImpl.java
│ │ │ │ ├── EffectiveNodeType.java
│ │ │ │ ├── EffectiveNodeTypeCache.java
│ │ │ │ ├── EffectiveNodeTypeCacheImpl.java
│ │ │ │ ├── InvalidNodeTypeDefException.java
│ │ │ │ ├── NodeTypeConflictException.java
│ │ │ │ ├── NodeTypeDefStore.java
│ │ │ │ ├── NodeTypeDefinitionImpl.java
│ │ │ │ ├── NodeTypeImpl.java
│ │ │ │ ├── NodeTypeManagerImpl.java
│ │ │ │ ├── NodeTypeRegistry.java
│ │ │ │ ├── NodeTypeRegistryListener.java
│ │ │ │ ├── virtual/
│ │ │ │ │ ├── VirtualNodeTypeStateManager.java
│ │ │ │ │ └── VirtualNodeTypeStateProvider.java
│ │ │ │ └── xml/
│ │ │ │ ├── AdditionalNamespaceResolver.java
│ │ │ │ ├── Constants.java
│ │ │ │ ├── NodeTypeReader.java
│ │ │ │ └── NodeTypeWriter.java
│ │ │ ├── observation/
│ │ │ │ ├── ChangeLogBasedHierarchyMgr.java
│ │ │ │ ├── DelegatingObservationDispatcher.java
│ │ │ │ ├── DispatchAction.java
│ │ │ │ ├── EventConsumer.java
│ │ │ │ ├── EventDispatcher.java
│ │ │ │ ├── EventFilter.java
│ │ │ │ ├── EventImpl.java
│ │ │ │ ├── EventJournalImpl.java
│ │ │ │ ├── EventListenerIteratorImpl.java
│ │ │ │ ├── EventState.java
│ │ │ │ ├── EventStateCollection.java
│ │ │ │ ├── EventStateCollectionFactory.java
│ │ │ │ ├── FilteredEventIterator.java
│ │ │ │ ├── ObservationDispatcher.java
│ │ │ │ ├── ObservationManagerImpl.java
│ │ │ │ └── SynchronousEventListener.java
│ │ │ ├── persistence/
│ │ │ │ ├── AbstractPersistenceManager.java
│ │ │ │ ├── CachingPersistenceManager.java
│ │ │ │ ├── IterablePersistenceManager.java
│ │ │ │ ├── PMContext.java
│ │ │ │ ├── PersistenceCopier.java
│ │ │ │ ├── PersistenceManager.java
│ │ │ │ ├── bundle/
│ │ │ │ │ ├── AbstractBundlePersistenceManager.java
│ │ │ │ │ ├── BundleFsPersistenceManager.java
│ │ │ │ │ ├── ConsistencyCheckerError.java
│ │ │ │ │ └── ConsistencyCheckerImpl.java
│ │ │ │ ├── check/
│ │ │ │ │ ├── ConsistencyCheckListener.java
│ │ │ │ │ ├── ConsistencyChecker.java
│ │ │ │ │ ├── ConsistencyReport.java
│ │ │ │ │ ├── ConsistencyReportImpl.java
│ │ │ │ │ ├── ReportItem.java
│ │ │ │ │ └── ReportItemImpl.java
│ │ │ │ ├── db/
│ │ │ │ │ ├── DatabasePersistenceManager.java
│ │ │ │ │ ├── DerbyPersistenceManager.java
│ │ │ │ │ ├── JNDIDatabasePersistenceManager.java
│ │ │ │ │ ├── MSSqlPersistenceManager.java
│ │ │ │ │ ├── OraclePersistenceManager.java
│ │ │ │ │ └── SimpleDbPersistenceManager.java
│ │ │ │ ├── mem/
│ │ │ │ │ ├── InMemBundlePersistenceManager.java
│ │ │ │ │ └── InMemPersistenceManager.java
│ │ │ │ ├── obj/
│ │ │ │ │ └── ObjectPersistenceManager.java
│ │ │ │ ├── pool/
│ │ │ │ │ ├── BundleDbPersistenceManager.java
│ │ │ │ │ ├── DbNameIndex.java
│ │ │ │ │ ├── DerbyPersistenceManager.java
│ │ │ │ │ ├── H2PersistenceManager.java
│ │ │ │ │ ├── MSSqlPersistenceManager.java
│ │ │ │ │ ├── MySqlPersistenceManager.java
│ │ │ │ │ ├── NGKDbNameIndex.java
│ │ │ │ │ ├── Oracle9PersistenceManager.java
│ │ │ │ │ ├── OraclePersistenceManager.java
│ │ │ │ │ ├── PostgreSQLNameIndex.java
│ │ │ │ │ └── PostgreSQLPersistenceManager.java
│ │ │ │ ├── util/
│ │ │ │ │ ├── BLOBStore.java
│ │ │ │ │ ├── BundleBinding.java
│ │ │ │ │ ├── BundleDumper.java
│ │ │ │ │ ├── BundleNames.java
│ │ │ │ │ ├── BundleReader.java
│ │ │ │ │ ├── BundleWriter.java
│ │ │ │ │ ├── ErrorHandling.java
│ │ │ │ │ ├── FileBasedIndex.java
│ │ │ │ │ ├── FileSystemBLOBStore.java
│ │ │ │ │ ├── HashMapIndex.java
│ │ │ │ │ ├── NodeInfo.java
│ │ │ │ │ ├── NodePropBundle.java
│ │ │ │ │ ├── ResourceBasedBLOBStore.java
│ │ │ │ │ └── Serializer.java
│ │ │ │ └── xml/
│ │ │ │ └── XMLPersistenceManager.java
│ │ │ ├── query/
│ │ │ │ ├── AQTQueryFactory.java
│ │ │ │ ├── AbstractQueryHandler.java
│ │ │ │ ├── AbstractQueryImpl.java
│ │ │ │ ├── CompoundQueryFactory.java
│ │ │ │ ├── ExecutableQuery.java
│ │ │ │ ├── OnWorkspaceInconsistency.java
│ │ │ │ ├── PropertyTypeRegistry.java
│ │ │ │ ├── QOMQueryFactory.java
│ │ │ │ ├── QueryFactory.java
│ │ │ │ ├── QueryHandler.java
│ │ │ │ ├── QueryHandlerContext.java
│ │ │ │ ├── QueryHandlerFactory.java
│ │ │ │ ├── QueryImpl.java
│ │ │ │ ├── QueryManagerImpl.java
│ │ │ │ ├── QueryObjectModelImpl.java
│ │ │ │ └── lucene/
│ │ │ │ ├── AbstractExcerpt.java
│ │ │ │ ├── AbstractIndex.java
│ │ │ │ ├── AbstractNamespaceMappings.java
│ │ │ │ ├── AbstractQueryHits.java
│ │ │ │ ├── AbstractQueryImpl.java
│ │ │ │ ├── AbstractWeight.java
│ │ │ │ ├── AggregateRule.java
│ │ │ │ ├── AggregateRuleImpl.java
│ │ │ │ ├── CachingIndexReader.java
│ │ │ │ ├── CachingMultiIndexReader.java
│ │ │ │ ├── CaseTermQuery.java
│ │ │ │ ├── ChildAxisQuery.java
│ │ │ │ ├── ChildNodesQueryHits.java
│ │ │ │ ├── CloseableHits.java
│ │ │ │ ├── CommittableIndexReader.java
│ │ │ │ ├── ConsistencyCheck.java
│ │ │ │ ├── ConsistencyCheckError.java
│ │ │ │ ├── DateField.java
│ │ │ │ ├── DecimalField.java
│ │ │ │ ├── DefaultHTMLExcerpt.java
│ │ │ │ ├── DefaultHighlighter.java
│ │ │ │ ├── DefaultQueryHits.java
│ │ │ │ ├── DefaultRedoLog.java
│ │ │ │ ├── DefaultRedoLogFactory.java
│ │ │ │ ├── DefaultXMLExcerpt.java
│ │ │ │ ├── DerefQuery.java
│ │ │ │ ├── DescendantSelfAxisQuery.java
│ │ │ │ ├── DocId.java
│ │ │ │ ├── DocNumberCache.java
│ │ │ │ ├── DocOrderScoreNodeIterator.java
│ │ │ │ ├── DoubleField.java
│ │ │ │ ├── DynamicPooledExecutor.java
│ │ │ │ ├── EmptyTermDocs.java
│ │ │ │ ├── ExcerptProvider.java
│ │ │ │ ├── FieldComparatorBase.java
│ │ │ │ ├── FieldComparatorDecorator.java
│ │ │ │ ├── FieldNames.java
│ │ │ │ ├── FieldSelectors.java
│ │ │ │ ├── FileBasedNamespaceMappings.java
│ │ │ │ ├── FilterMultiColumnQuery.java
│ │ │ │ ├── FilterMultiColumnQueryHits.java
│ │ │ │ ├── FilterSearcher.java
│ │ │ │ ├── ForeignSegmentDocId.java
│ │ │ │ ├── HierarchyResolver.java
│ │ │ │ ├── HighlightingExcerptProvider.java
│ │ │ │ ├── IDField.java
│ │ │ │ ├── IOCounters.java
│ │ │ │ ├── IndexDeletionPolicyImpl.java
│ │ │ │ ├── IndexFormatVersion.java
│ │ │ │ ├── IndexHistory.java
│ │ │ │ ├── IndexInfo.java
│ │ │ │ ├── IndexInfos.java
│ │ │ │ ├── IndexListener.java
│ │ │ │ ├── IndexMerger.java
│ │ │ │ ├── IndexMigration.java
│ │ │ │ ├── IndexingConfiguration.java
│ │ │ │ ├── IndexingConfigurationEntityResolver.java
│ │ │ │ ├── IndexingConfigurationImpl.java
│ │ │ │ ├── IndexingQueue.java
│ │ │ │ ├── IndexingQueueStore.java
│ │ │ │ ├── JackrabbitAnalyzer.java
│ │ │ │ ├── JackrabbitIndexReader.java
│ │ │ │ ├── JackrabbitIndexSearcher.java
│ │ │ │ ├── JackrabbitQuery.java
│ │ │ │ ├── JackrabbitQueryParser.java
│ │ │ │ ├── JackrabbitTermQuery.java
│ │ │ │ ├── JoinQuery.java
│ │ │ │ ├── LazyTextExtractorField.java
│ │ │ │ ├── LengthSortComparator.java
│ │ │ │ ├── LocalNameQuery.java
│ │ │ │ ├── LocalNameRangeQuery.java
│ │ │ │ ├── LongField.java
│ │ │ │ ├── LowerCaseSortComparator.java
│ │ │ │ ├── LuceneQueryBuilder.java
│ │ │ │ ├── LuceneQueryFactory.java
│ │ │ │ ├── LuceneQueryHits.java
│ │ │ │ ├── MatchAllDocsQuery.java
│ │ │ │ ├── MatchAllQuery.java
│ │ │ │ ├── MatchAllScorer.java
│ │ │ │ ├── MatchAllWeight.java
│ │ │ │ ├── MoreLikeThis.java
│ │ │ │ ├── MultiColumnQuery.java
│ │ │ │ ├── MultiColumnQueryAdapter.java
│ │ │ │ ├── MultiColumnQueryHits.java
│ │ │ │ ├── MultiColumnQueryResult.java
│ │ │ │ ├── MultiIndex.java
│ │ │ │ ├── MultiIndexReader.java
│ │ │ │ ├── MultiScorer.java
│ │ │ │ ├── NSRegistryBasedNamespaceMappings.java
│ │ │ │ ├── NamePathResolverImpl.java
│ │ │ │ ├── NameQuery.java
│ │ │ │ ├── NameRangeQuery.java
│ │ │ │ ├── NamespaceMappings.java
│ │ │ │ ├── NodeIndexer.java
│ │ │ │ ├── NodeIteratorImpl.java
│ │ │ │ ├── NodeTraversingQueryHits.java
│ │ │ │ ├── NormalizeSortComparator.java
│ │ │ │ ├── NotQuery.java
│ │ │ │ ├── OffsetCharSequence.java
│ │ │ │ ├── Ordering.java
│ │ │ │ ├── ParentAxisQuery.java
│ │ │ │ ├── PerQueryCache.java
│ │ │ │ ├── PersistentIndex.java
│ │ │ │ ├── PredicateDerefQuery.java
│ │ │ │ ├── PropertiesSynonymProvider.java
│ │ │ │ ├── PropertyMetaData.java
│ │ │ │ ├── QueryHits.java
│ │ │ │ ├── QueryHitsAdapter.java
│ │ │ │ ├── QueryHitsQuery.java
│ │ │ │ ├── QueryImpl.java
│ │ │ │ ├── QueryResultImpl.java
│ │ │ │ ├── RangeQuery.java
│ │ │ │ ├── RangeScan.java
│ │ │ │ ├── ReadOnlyIndexReader.java
│ │ │ │ ├── Recovery.java
│ │ │ │ ├── RedoLog.java
│ │ │ │ ├── RedoLogFactory.java
│ │ │ │ ├── RefCountingIndexReader.java
│ │ │ │ ├── ReleaseableIndexReader.java
│ │ │ │ ├── RowIteratorImpl.java
│ │ │ │ ├── ScoreNode.java
│ │ │ │ ├── ScoreNodeIterator.java
│ │ │ │ ├── ScoreNodeIteratorImpl.java
│ │ │ │ ├── SearchIndex.java
│ │ │ │ ├── SharedFieldCache.java
│ │ │ │ ├── SharedFieldComparatorSource.java
│ │ │ │ ├── SharedIndexReader.java
│ │ │ │ ├── SimilarityQuery.java
│ │ │ │ ├── SimpleExcerptProvider.java
│ │ │ │ ├── SingleColumnQueryResult.java
│ │ │ │ ├── SingleTermDocs.java
│ │ │ │ ├── SingletonTokenStream.java
│ │ │ │ ├── SortedLuceneQueryHits.java
│ │ │ │ ├── SortedMultiColumnQueryHits.java
│ │ │ │ ├── SpellChecker.java
│ │ │ │ ├── SpellSuggestion.java
│ │ │ │ ├── SynonymProvider.java
│ │ │ │ ├── TermDocsCache.java
│ │ │ │ ├── TermFactory.java
│ │ │ │ ├── TransformConstants.java
│ │ │ │ ├── Transformable.java
│ │ │ │ ├── UpperCaseSortComparator.java
│ │ │ │ ├── Util.java
│ │ │ │ ├── VolatileIndex.java
│ │ │ │ ├── WeightedHTMLExcerpt.java
│ │ │ │ ├── WeightedHighlighter.java
│ │ │ │ ├── WeightedXMLExcerpt.java
│ │ │ │ ├── WildcardNameQuery.java
│ │ │ │ ├── WildcardQuery.java
│ │ │ │ ├── WildcardTermEnum.java
│ │ │ │ ├── constraint/
│ │ │ │ │ ├── AndConstraint.java
│ │ │ │ │ ├── ChildNodeConstraint.java
│ │ │ │ │ ├── ComparisonConstraint.java
│ │ │ │ │ ├── Constraint.java
│ │ │ │ │ ├── ConstraintBuilder.java
│ │ │ │ │ ├── DescendantNodeConstraint.java
│ │ │ │ │ ├── DynamicOperand.java
│ │ │ │ │ ├── EvaluationContext.java
│ │ │ │ │ ├── FullTextConstraint.java
│ │ │ │ │ ├── FullTextSearchScoreOperand.java
│ │ │ │ │ ├── HierarchyConstraint.java
│ │ │ │ │ ├── LengthOperand.java
│ │ │ │ │ ├── LikeConstraint.java
│ │ │ │ │ ├── LowerCaseOperand.java
│ │ │ │ │ ├── NodeLocalNameOperand.java
│ │ │ │ │ ├── NodeNameOperand.java
│ │ │ │ │ ├── NotConstraint.java
│ │ │ │ │ ├── OrConstraint.java
│ │ │ │ │ ├── PropertyExistenceConstraint.java
│ │ │ │ │ ├── PropertyValueOperand.java
│ │ │ │ │ ├── QueryConstraint.java
│ │ │ │ │ ├── SameNodeConstraint.java
│ │ │ │ │ ├── SelectorBasedConstraint.java
│ │ │ │ │ └── UpperCaseOperand.java
│ │ │ │ ├── directory/
│ │ │ │ │ ├── DirectoryManager.java
│ │ │ │ │ ├── FSDirectoryManager.java
│ │ │ │ │ ├── IndexInputStream.java
│ │ │ │ │ ├── IndexOutputStream.java
│ │ │ │ │ └── RAMDirectoryManager.java
│ │ │ │ ├── hits/
│ │ │ │ │ ├── AbstractHitCollector.java
│ │ │ │ │ ├── AdaptingHits.java
│ │ │ │ │ ├── ArrayHits.java
│ │ │ │ │ ├── BitSetHits.java
│ │ │ │ │ ├── Hits.java
│ │ │ │ │ ├── HitsIntersection.java
│ │ │ │ │ └── ScorerHits.java
│ │ │ │ ├── join/
│ │ │ │ │ ├── AbstractCondition.java
│ │ │ │ │ ├── AbstractRow.java
│ │ │ │ │ ├── AncestorNodeJoin.java
│ │ │ │ │ ├── AncestorPathNodeJoin.java
│ │ │ │ │ ├── ChildNodeJoin.java
│ │ │ │ │ ├── ChildNodeJoinMerger.java
│ │ │ │ │ ├── Condition.java
│ │ │ │ │ ├── ConstraintSplitInfo.java
│ │ │ │ │ ├── ConstraintSplitter.java
│ │ │ │ │ ├── Constraints.java
│ │ │ │ │ ├── DescendantNodeJoin.java
│ │ │ │ │ ├── DescendantNodeJoinMerger.java
│ │ │ │ │ ├── DescendantPathNodeJoin.java
│ │ │ │ │ ├── EquiJoin.java
│ │ │ │ │ ├── EquiJoinMerger.java
│ │ │ │ │ ├── Join.java
│ │ │ │ │ ├── JoinMerger.java
│ │ │ │ │ ├── JoinRow.java
│ │ │ │ │ ├── ParentNodeJoin.java
│ │ │ │ │ ├── QueryEngine.java
│ │ │ │ │ ├── RowPathComparator.java
│ │ │ │ │ ├── SameNodeJoin.java
│ │ │ │ │ ├── SameNodeJoinMerger.java
│ │ │ │ │ ├── ScoreNodeMap.java
│ │ │ │ │ ├── SelectorRow.java
│ │ │ │ │ ├── SimpleQueryResult.java
│ │ │ │ │ └── ValueComparator.java
│ │ │ │ └── sort/
│ │ │ │ ├── AbstractFieldComparator.java
│ │ │ │ ├── DynamicOperandFieldComparator.java
│ │ │ │ ├── DynamicOperandFieldComparatorSource.java
│ │ │ │ ├── RowComparator.java
│ │ │ │ └── ValueComparableWrapper.java
│ │ │ ├── retention/
│ │ │ │ ├── HoldImpl.java
│ │ │ │ ├── RetentionManagerImpl.java
│ │ │ │ ├── RetentionPolicyImpl.java
│ │ │ │ ├── RetentionRegistry.java
│ │ │ │ └── RetentionRegistryImpl.java
│ │ │ ├── security/
│ │ │ │ ├── AMContext.java
│ │ │ │ ├── AbstractAccessControlManager.java
│ │ │ │ ├── AccessManager.java
│ │ │ │ ├── AnonymousPrincipal.java
│ │ │ │ ├── DefaultAccessManager.java
│ │ │ │ ├── JackrabbitSecurityManager.java
│ │ │ │ ├── SecurityConstants.java
│ │ │ │ ├── SystemPrincipal.java
│ │ │ │ ├── UserPrincipal.java
│ │ │ │ ├── authentication/
│ │ │ │ │ ├── AbstractLoginModule.java
│ │ │ │ │ ├── AuthContext.java
│ │ │ │ │ ├── AuthContextProvider.java
│ │ │ │ │ ├── Authentication.java
│ │ │ │ │ ├── CallbackHandlerImpl.java
│ │ │ │ │ ├── CredentialsCallback.java
│ │ │ │ │ ├── CryptedSimpleCredentials.java
│ │ │ │ │ ├── DefaultLoginModule.java
│ │ │ │ │ ├── ImpersonationCallback.java
│ │ │ │ │ ├── JAASAuthContext.java
│ │ │ │ │ ├── LocalAuthContext.java
│ │ │ │ │ ├── RepositoryCallback.java
│ │ │ │ │ ├── SimpleCredentialsAuthentication.java
│ │ │ │ │ └── token/
│ │ │ │ │ ├── CompatTokenProvider.java
│ │ │ │ │ ├── TokenBasedAuthentication.java
│ │ │ │ │ ├── TokenInfo.java
│ │ │ │ │ └── TokenProvider.java
│ │ │ │ ├── authorization/
│ │ │ │ │ ├── AbstractACLTemplate.java
│ │ │ │ │ ├── AbstractAccessControlProvider.java
│ │ │ │ │ ├── AbstractCompiledPermissions.java
│ │ │ │ │ ├── AccessControlConstants.java
│ │ │ │ │ ├── AccessControlEditor.java
│ │ │ │ │ ├── AccessControlEntryImpl.java
│ │ │ │ │ ├── AccessControlListener.java
│ │ │ │ │ ├── AccessControlModifications.java
│ │ │ │ │ ├── AccessControlObserver.java
│ │ │ │ │ ├── AccessControlProvider.java
│ │ │ │ │ ├── AccessControlProviderFactory.java
│ │ │ │ │ ├── AccessControlProviderFactoryImpl.java
│ │ │ │ │ ├── AccessControlUtils.java
│ │ │ │ │ ├── CompiledPermissions.java
│ │ │ │ │ ├── GlobPattern.java
│ │ │ │ │ ├── NamedAccessControlPolicyImpl.java
│ │ │ │ │ ├── Permission.java
│ │ │ │ │ ├── PrivilegeBits.java
│ │ │ │ │ ├── PrivilegeManagerImpl.java
│ │ │ │ │ ├── PrivilegeRegistry.java
│ │ │ │ │ ├── UnmodifiableAccessControlList.java
│ │ │ │ │ ├── WorkspaceAccessManager.java
│ │ │ │ │ ├── acl/
│ │ │ │ │ │ ├── ACLEditor.java
│ │ │ │ │ │ ├── ACLProvider.java
│ │ │ │ │ │ ├── ACLTemplate.java
│ │ │ │ │ │ ├── CachingEntryCollector.java
│ │ │ │ │ │ ├── CompiledPermissionsImpl.java
│ │ │ │ │ │ ├── Entry.java
│ │ │ │ │ │ ├── EntryCollector.java
│ │ │ │ │ │ ├── EntryFilter.java
│ │ │ │ │ │ └── EntryFilterImpl.java
│ │ │ │ │ ├── combined/
│ │ │ │ │ │ ├── CombinedEditor.java
│ │ │ │ │ │ └── CombinedProvider.java
│ │ │ │ │ └── principalbased/
│ │ │ │ │ ├── ACLEditor.java
│ │ │ │ │ ├── ACLProvider.java
│ │ │ │ │ ├── ACLTemplate.java
│ │ │ │ │ └── EntriesCache.java
│ │ │ │ ├── principal/
│ │ │ │ │ ├── AbstractPrincipalIterator.java
│ │ │ │ │ ├── AbstractPrincipalProvider.java
│ │ │ │ │ ├── AdminPrincipal.java
│ │ │ │ │ ├── DefaultPrincipalProvider.java
│ │ │ │ │ ├── EveryonePrincipal.java
│ │ │ │ │ ├── FallbackPrincipalProvider.java
│ │ │ │ │ ├── GroupPrincipals.java
│ │ │ │ │ ├── PrincipalImpl.java
│ │ │ │ │ ├── PrincipalIteratorAdapter.java
│ │ │ │ │ ├── PrincipalManagerImpl.java
│ │ │ │ │ ├── PrincipalProvider.java
│ │ │ │ │ ├── PrincipalProviderRegistry.java
│ │ │ │ │ ├── ProviderRegistryImpl.java
│ │ │ │ │ └── UnknownPrincipal.java
│ │ │ │ ├── simple/
│ │ │ │ │ ├── SimpleAccessManager.java
│ │ │ │ │ ├── SimpleLoginModule.java
│ │ │ │ │ ├── SimpleSecurityManager.java
│ │ │ │ │ └── SimpleWorkspaceAccessManager.java
│ │ │ │ └── user/
│ │ │ │ ├── AuthorizableImpl.java
│ │ │ │ ├── GroupImpl.java
│ │ │ │ ├── ImpersonationImpl.java
│ │ │ │ ├── IndexNodeResolver.java
│ │ │ │ ├── MembershipCache.java
│ │ │ │ ├── NodeResolver.java
│ │ │ │ ├── PasswordUtility.java
│ │ │ │ ├── TraversingNodeResolver.java
│ │ │ │ ├── UserAccessControlProvider.java
│ │ │ │ ├── UserConstants.java
│ │ │ │ ├── UserImpl.java
│ │ │ │ ├── UserImporter.java
│ │ │ │ ├── UserManagerConfig.java
│ │ │ │ ├── UserManagerImpl.java
│ │ │ │ ├── UserPerWorkspaceUserManager.java
│ │ │ │ ├── XPathQueryBuilder.java
│ │ │ │ ├── XPathQueryEvaluator.java
│ │ │ │ └── action/
│ │ │ │ ├── AbstractAuthorizableAction.java
│ │ │ │ ├── AccessControlAction.java
│ │ │ │ ├── AuthorizableAction.java
│ │ │ │ ├── ClearMembershipAction.java
│ │ │ │ └── PasswordValidationAction.java
│ │ │ ├── session/
│ │ │ │ ├── AddNodeOperation.java
│ │ │ │ ├── NodeNameNormalizer.java
│ │ │ │ ├── SessionContext.java
│ │ │ │ ├── SessionItemOperation.java
│ │ │ │ ├── SessionOperation.java
│ │ │ │ ├── SessionRefreshOperation.java
│ │ │ │ ├── SessionSaveOperation.java
│ │ │ │ ├── SessionState.java
│ │ │ │ └── SessionWriteOperation.java
│ │ │ ├── state/
│ │ │ │ ├── ChangeLog.java
│ │ │ │ ├── ChildNodeEntries.java
│ │ │ │ ├── ChildNodeEntry.java
│ │ │ │ ├── DefaultISMLocking.java
│ │ │ │ ├── DummyUpdateEventChannel.java
│ │ │ │ ├── FineGrainedISMLocking.java
│ │ │ │ ├── ISMLocking.java
│ │ │ │ ├── ISMLockingFactory.java
│ │ │ │ ├── ItemState.java
│ │ │ │ ├── ItemStateCache.java
│ │ │ │ ├── ItemStateCacheFactory.java
│ │ │ │ ├── ItemStateException.java
│ │ │ │ ├── ItemStateListener.java
│ │ │ │ ├── ItemStateManager.java
│ │ │ │ ├── ItemStateReferenceCache.java
│ │ │ │ ├── LocalItemStateManager.java
│ │ │ │ ├── MLRUItemStateCache.java
│ │ │ │ ├── ManagedMLRUItemStateCacheFactory.java
│ │ │ │ ├── NameSet.java
│ │ │ │ ├── NoSuchItemStateException.java
│ │ │ │ ├── NodeReferences.java
│ │ │ │ ├── NodeState.java
│ │ │ │ ├── NodeStateListener.java
│ │ │ │ ├── NodeStateMerger.java
│ │ │ │ ├── PropertyState.java
│ │ │ │ ├── SessionItemStateManager.java
│ │ │ │ ├── SharedItemStateManager.java
│ │ │ │ ├── StaleItemStateException.java
│ │ │ │ ├── StateChangeDispatcher.java
│ │ │ │ ├── UpdatableItemStateManager.java
│ │ │ │ └── XAItemStateManager.java
│ │ │ ├── stats/
│ │ │ │ └── StatManager.java
│ │ │ ├── util/
│ │ │ │ ├── CooperativeFileLock.java
│ │ │ │ ├── DOMBuilder.java
│ │ │ │ ├── DOMWalker.java
│ │ │ │ ├── EmptyLinkedMap.java
│ │ │ │ ├── ReferenceChangeTracker.java
│ │ │ │ ├── RepositoryLock.java
│ │ │ │ ├── RepositoryLockMechanism.java
│ │ │ │ ├── RepositoryLockMechanismFactory.java
│ │ │ │ ├── StringIndex.java
│ │ │ │ ├── XAReentrantLock.java
│ │ │ │ └── XAReentrantWriterPreferenceReadWriteLock.java
│ │ │ ├── value/
│ │ │ │ ├── BLOBFileValue.java
│ │ │ │ ├── BLOBInDataStore.java
│ │ │ │ ├── BLOBInMemory.java
│ │ │ │ ├── BLOBInResource.java
│ │ │ │ ├── BLOBInTempFile.java
│ │ │ │ ├── BinaryValueImpl.java
│ │ │ │ ├── InternalValue.java
│ │ │ │ ├── InternalValueFactory.java
│ │ │ │ ├── RefCountingBLOBFileValue.java
│ │ │ │ └── ValueFactoryImpl.java
│ │ │ ├── version/
│ │ │ │ ├── DateVersionSelector.java
│ │ │ │ ├── InconsistentVersioningState.java
│ │ │ │ ├── InternalActivity.java
│ │ │ │ ├── InternalActivityImpl.java
│ │ │ │ ├── InternalBaseline.java
│ │ │ │ ├── InternalBaselineImpl.java
│ │ │ │ ├── InternalFreeze.java
│ │ │ │ ├── InternalFreezeImpl.java
│ │ │ │ ├── InternalFrozenNode.java
│ │ │ │ ├── InternalFrozenNodeImpl.java
│ │ │ │ ├── InternalFrozenVHImpl.java
│ │ │ │ ├── InternalFrozenVersionHistory.java
│ │ │ │ ├── InternalVersion.java
│ │ │ │ ├── InternalVersionHistory.java
│ │ │ │ ├── InternalVersionHistoryImpl.java
│ │ │ │ ├── InternalVersionImpl.java
│ │ │ │ ├── InternalVersionItem.java
│ │ │ │ ├── InternalVersionItemImpl.java
│ │ │ │ ├── InternalVersionManager.java
│ │ │ │ ├── InternalVersionManagerBase.java
│ │ │ │ ├── InternalVersionManagerImpl.java
│ │ │ │ ├── InternalXAVersionManager.java
│ │ │ │ ├── LabelVersionSelector.java
│ │ │ │ ├── NodeStateEx.java
│ │ │ │ ├── VersionHistoryImpl.java
│ │ │ │ ├── VersionHistoryInfo.java
│ │ │ │ ├── VersionImpl.java
│ │ │ │ ├── VersionItemStateManager.java
│ │ │ │ ├── VersionItemStateProvider.java
│ │ │ │ ├── VersionIteratorImpl.java
│ │ │ │ ├── VersionManagerImplBase.java
│ │ │ │ ├── VersionManagerImplConfig.java
│ │ │ │ ├── VersionManagerImplMerge.java
│ │ │ │ ├── VersionManagerImplRestore.java
│ │ │ │ ├── VersionSelector.java
│ │ │ │ ├── VersionSet.java
│ │ │ │ └── VersioningLock.java
│ │ │ ├── virtual/
│ │ │ │ ├── AbstractVISProvider.java
│ │ │ │ ├── VirtualItemStateProvider.java
│ │ │ │ ├── VirtualNodeState.java
│ │ │ │ ├── VirtualPropertyState.java
│ │ │ │ └── VirtualValueProvider.java
│ │ │ └── xml/
│ │ │ ├── AccessControlImporter.java
│ │ │ ├── BufferedStringValue.java
│ │ │ ├── ClonedInputSource.java
│ │ │ ├── DefaultProtectedItemImporter.java
│ │ │ ├── DefaultProtectedNodeImporter.java
│ │ │ ├── DefaultProtectedPropertyImporter.java
│ │ │ ├── DocViewImportHandler.java
│ │ │ ├── ImportHandler.java
│ │ │ ├── Importer.java
│ │ │ ├── NamespaceContext.java
│ │ │ ├── NodeInfo.java
│ │ │ ├── PropInfo.java
│ │ │ ├── ProtectedItemImporter.java
│ │ │ ├── ProtectedNodeImporter.java
│ │ │ ├── ProtectedPropertyImporter.java
│ │ │ ├── SessionImporter.java
│ │ │ ├── StringValue.java
│ │ │ ├── SysViewImportHandler.java
│ │ │ ├── TargetImportHandler.java
│ │ │ ├── TextValue.java
│ │ │ └── WorkspaceImporter.java
│ │ ├── javadoc/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── core/
│ │ │ ├── config/
│ │ │ │ ├── doc-files/
│ │ │ │ │ └── class.uxf
│ │ │ │ └── package.html
│ │ │ ├── doc-files/
│ │ │ │ ├── RepositoryImpl.uxf
│ │ │ │ ├── SessionImpl.uxf
│ │ │ │ ├── WorkspaceImpl.uxf
│ │ │ │ ├── WorkspaceInfo.uxf
│ │ │ │ └── core.uxf
│ │ │ ├── fs/
│ │ │ │ └── db/
│ │ │ │ └── package.html
│ │ │ ├── observation/
│ │ │ │ └── doc-files/
│ │ │ │ └── class.uxf
│ │ │ ├── package.html
│ │ │ ├── persistence/
│ │ │ │ └── db/
│ │ │ │ └── package.html
│ │ │ └── version/
│ │ │ └── package.html
│ │ ├── resources/
│ │ │ ├── META-INF/
│ │ │ │ └── services/
│ │ │ │ └── javax.jcr.RepositoryFactory
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── core/
│ │ │ ├── JackrabbitRepositoryStub.properties
│ │ │ ├── config/
│ │ │ │ ├── deprecated-classes.properties
│ │ │ │ ├── repository-1.0.dtd
│ │ │ │ ├── repository-1.2.dtd
│ │ │ │ ├── repository-1.4.dtd
│ │ │ │ ├── repository-1.5.dtd
│ │ │ │ ├── repository-1.6.dtd
│ │ │ │ ├── repository-2.0-elements.dtd
│ │ │ │ ├── repository-2.0.dtd
│ │ │ │ ├── repository-2.4-elements.dtd
│ │ │ │ ├── repository-2.4.dtd
│ │ │ │ ├── repository-2.6-elements.dtd
│ │ │ │ └── repository-2.6.dtd
│ │ │ ├── fs/
│ │ │ │ └── db/
│ │ │ │ ├── azure.ddl
│ │ │ │ ├── daffodil.ddl
│ │ │ │ ├── db2.ddl
│ │ │ │ ├── default.ddl
│ │ │ │ ├── derby.ddl
│ │ │ │ ├── ingres.ddl
│ │ │ │ ├── maxdb.ddl
│ │ │ │ ├── mssql.ddl
│ │ │ │ ├── mysql.ddl
│ │ │ │ ├── oracle.ddl
│ │ │ │ └── postgresql.ddl
│ │ │ ├── journal/
│ │ │ │ ├── azure.ddl
│ │ │ │ ├── db2.ddl
│ │ │ │ ├── default.ddl
│ │ │ │ ├── derby.ddl
│ │ │ │ ├── h2.ddl
│ │ │ │ ├── ingres.ddl
│ │ │ │ ├── maxdb.ddl
│ │ │ │ ├── mssql.ddl
│ │ │ │ ├── mysql.ddl
│ │ │ │ ├── oracle.ddl
│ │ │ │ └── postgresql.ddl
│ │ │ ├── nodetype/
│ │ │ │ └── builtin_nodetypes.cnd
│ │ │ ├── persistence/
│ │ │ │ ├── bundle/
│ │ │ │ │ ├── azure.ddl
│ │ │ │ │ ├── db2.ddl
│ │ │ │ │ ├── derby.ddl
│ │ │ │ │ ├── h2.ddl
│ │ │ │ │ ├── ingres.ddl
│ │ │ │ │ ├── mssql.ddl
│ │ │ │ │ ├── mysql.ddl
│ │ │ │ │ ├── oracle.ddl
│ │ │ │ │ └── postgresql.ddl
│ │ │ │ └── db/
│ │ │ │ ├── azure.ddl
│ │ │ │ ├── daffodil.ddl
│ │ │ │ ├── db2.ddl
│ │ │ │ ├── default.ddl
│ │ │ │ ├── derby.ddl
│ │ │ │ ├── h2.ddl
│ │ │ │ ├── ingres.ddl
│ │ │ │ ├── maxdb.ddl
│ │ │ │ ├── mssql.ddl
│ │ │ │ ├── mysql.ddl
│ │ │ │ ├── oracle.ddl
│ │ │ │ └── postgresql.ddl
│ │ │ ├── query/
│ │ │ │ └── lucene/
│ │ │ │ ├── indexing-configuration-1.0.dtd
│ │ │ │ ├── indexing-configuration-1.1.dtd
│ │ │ │ ├── indexing-configuration-1.2.dtd
│ │ │ │ └── tika-config.xml
│ │ │ ├── repository.xml
│ │ │ └── test-nodetypes.xml
│ │ └── resources-filtered/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── core/
│ │ └── repository.properties
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ ├── api/
│ │ │ ├── JackrabbitNodeTest.java
│ │ │ ├── JackrabbitObservationManagerTest.java
│ │ │ ├── JackrabbitSessionTest.java
│ │ │ ├── TestAll.java
│ │ │ └── security/
│ │ │ ├── JackrabbitAccessControlManagerTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── authorization/
│ │ │ │ ├── PrivilegeManagerTest.java
│ │ │ │ └── TestAll.java
│ │ │ ├── principal/
│ │ │ │ ├── PrincipalManagerTest.java
│ │ │ │ └── TestAll.java
│ │ │ └── user/
│ │ │ ├── AbstractUserTest.java
│ │ │ ├── AuthorizableTest.java
│ │ │ ├── ConcurrentCreateUserTest.java
│ │ │ ├── GroupTest.java
│ │ │ ├── ImpersonationTest.java
│ │ │ ├── NestedGroupTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── UserManagerCreateGroupTest.java
│ │ │ ├── UserManagerCreateUserTest.java
│ │ │ ├── UserManagerSearchTest.java
│ │ │ ├── UserManagerTest.java
│ │ │ └── UserTest.java
│ │ └── core/
│ │ ├── AbstractConcurrencyTest.java
│ │ ├── AddMoveTest.java
│ │ ├── CachingHierarchyManagerTest.java
│ │ ├── ConcurrencyTest.java
│ │ ├── ConcurrencyTest3.java
│ │ ├── ConcurrentAddMoveRemoveTest.java
│ │ ├── ConcurrentAddRemoveMoveTest.java
│ │ ├── ConcurrentAddRemoveNodeTest.java
│ │ ├── ConcurrentAddRemovePropertyTest.java
│ │ ├── ConcurrentCheckinMixedTransactionTest.java
│ │ ├── ConcurrentCyclicMoveTest.java
│ │ ├── ConcurrentImportTest.java
│ │ ├── ConcurrentLoginTest.java
│ │ ├── ConcurrentMixinModificationTest.java
│ │ ├── ConcurrentModificationBase.java
│ │ ├── ConcurrentModificationWithSNSTest.java
│ │ ├── ConcurrentMoveTest.java
│ │ ├── ConcurrentNodeModificationTest.java
│ │ ├── ConcurrentReadWriteTest.java
│ │ ├── ConcurrentRenameTest.java
│ │ ├── ConcurrentReorderTest.java
│ │ ├── ConcurrentSaveTest.java
│ │ ├── ConcurrentVersioningTest.java
│ │ ├── ConcurrentVersioningWithTransactionsTest.java
│ │ ├── ConcurrentWorkspaceCopyTest.java
│ │ ├── ConsistencyCheck.java
│ │ ├── InvalidDateTest.java
│ │ ├── LockTest.java
│ │ ├── LockedWrapperTest.java
│ │ ├── LostFromCacheIssueTest.java
│ │ ├── MoveAtRootTest.java
│ │ ├── MoveRemoveTest.java
│ │ ├── MoveTest.java
│ │ ├── MultiWorkspaceShareableNodeTest.java
│ │ ├── NPEandCMETest.java
│ │ ├── NodeImplTest.java
│ │ ├── OracleRepositoryTest.java
│ │ ├── OracleRetrocompatibleRepositoryTest.java
│ │ ├── OverlappingNodeAddTest.java
│ │ ├── ReadVersionsWhileModified.java
│ │ ├── ReadWhileSaveTest.java
│ │ ├── ReferencesTest.java
│ │ ├── RemoveAddNodeWithUUIDTest.java
│ │ ├── ReplacePropertyWhileOthersReadTest.java
│ │ ├── ReplaceTest.java
│ │ ├── RepositoryCopierTest.java
│ │ ├── RestoreAndCheckoutTest.java
│ │ ├── RetentionRegistryImplTest.java
│ │ ├── SessionGarbageCollectedTest.java
│ │ ├── ShareableNodeTest.java
│ │ ├── Tail.java
│ │ ├── TestAll.java
│ │ ├── TestHelper.java
│ │ ├── TestRepository.java
│ │ ├── TransientRepositoryTest.java
│ │ ├── UserPerWorkspaceSecurityManagerTest.java
│ │ ├── UserTransactionImpl.java
│ │ ├── XATest.java
│ │ ├── cache/
│ │ │ ├── ConcurrentCacheTest.java
│ │ │ └── GrowingLRUMapTest.java
│ │ ├── cluster/
│ │ │ ├── ClusterDescriptorTest.java
│ │ │ ├── ClusterRecordTest.java
│ │ │ ├── ClusterSyncTest.java
│ │ │ ├── DbClusterTest.java
│ │ │ ├── DbClusterTestJCR3162.java
│ │ │ ├── FailUpdateOnJournalExceptionTest.java
│ │ │ ├── SimpleClusterContext.java
│ │ │ ├── SimpleEventListener.java
│ │ │ ├── TestAll.java
│ │ │ ├── TestJournal.java
│ │ │ └── UpdateEventFactory.java
│ │ ├── config/
│ │ │ ├── DataSourceConfigTest.java
│ │ │ ├── RepositoryConfigTest.java
│ │ │ ├── SecurityConfigTest.java
│ │ │ ├── TestAll.java
│ │ │ └── WorkspaceConfigTest.java
│ │ ├── data/
│ │ │ ├── ConcurrentGcTest.java
│ │ │ ├── ConsistencyCheckerImplTest.java
│ │ │ ├── CopyValueTest.java
│ │ │ ├── DBDataStoreTest.java
│ │ │ ├── DataStoreAPITest.java
│ │ │ ├── DataStoreTest.java
│ │ │ ├── ExportImportTest.java
│ │ │ ├── GCConcurrentTest.java
│ │ │ ├── GCEventListenerTest.java
│ │ │ ├── GCSubtreeMoveTest.java
│ │ │ ├── GCThread.java
│ │ │ ├── GarbageCollectorTest.java
│ │ │ ├── LazyFileInputStreamTest.java
│ │ │ ├── NodeTypeTest.java
│ │ │ ├── OpenFilesTest.java
│ │ │ ├── PersistenceManagerIteratorTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── TestTwoGetStreams.java
│ │ │ └── WriteWhileReadingTest.java
│ │ ├── fs/
│ │ │ ├── AbstractFileSystemTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── db/
│ │ │ │ ├── DerbyFileSystemTest.java
│ │ │ │ ├── OracleFileSystemTest.java
│ │ │ │ └── OracleRetrocompatibleFileSystemTest.java
│ │ │ ├── local/
│ │ │ │ └── LocalFileSystemTest.java
│ │ │ └── mem/
│ │ │ └── MemoryFileSystemTest.java
│ │ ├── id/
│ │ │ ├── NodeIdFactoryTest.java
│ │ │ ├── NodeIdTest.java
│ │ │ └── TestAll.java
│ │ ├── integration/
│ │ │ ├── AxisQueryTest.java
│ │ │ ├── CachingHierarchyManagerConsistencyTest.java
│ │ │ ├── ConcurrentQueriesWithUpdatesTest.java
│ │ │ ├── ConcurrentQueryTest.java
│ │ │ ├── GQLTest.java
│ │ │ ├── GetOrNullTest.java
│ │ │ ├── InterruptedQueryTest.java
│ │ │ ├── ItemSequenceTest.java
│ │ │ ├── JCRAPITest.java
│ │ │ ├── JCRBenchmark.java
│ │ │ ├── MassiveRangeTest.java
│ │ │ ├── MassiveWildcardTest.java
│ │ │ ├── NodeImplTest.java
│ │ │ ├── RepositoryFactoryImplTest.java
│ │ │ ├── RepositoryLockTest.java
│ │ │ ├── RestoreSameNameSiblingTest.java
│ │ │ ├── SessionImplTest.java
│ │ │ ├── TreeTraverserTest.java
│ │ │ ├── UtilsGetPathTest.java
│ │ │ ├── VersioningTest.java
│ │ │ ├── WorkspaceInitTest.java
│ │ │ ├── benchmark/
│ │ │ │ ├── ItemStateCacheSyncTest.java
│ │ │ │ └── SimpleBench.java
│ │ │ ├── daily/
│ │ │ │ ├── DailyIntegrationTest.java
│ │ │ │ ├── ItemStateHierarchyManagerDeadlockTest.java
│ │ │ │ └── RandomOperationTest.java
│ │ │ └── random/
│ │ │ ├── operation/
│ │ │ │ ├── AddNode.java
│ │ │ │ ├── AddVersionLabel.java
│ │ │ │ ├── Checkin.java
│ │ │ │ ├── Checkout.java
│ │ │ │ ├── CreateNodes.java
│ │ │ │ ├── GetNode.java
│ │ │ │ ├── GetRandomNodes.java
│ │ │ │ ├── Operation.java
│ │ │ │ ├── OperationFactory.java
│ │ │ │ ├── OperationSequence.java
│ │ │ │ ├── RandomContentOperations.java
│ │ │ │ ├── RandomOperations.java
│ │ │ │ ├── RandomVersionOperations.java
│ │ │ │ ├── Remove.java
│ │ │ │ ├── RemoveVersion.java
│ │ │ │ ├── RemoveVersionLabel.java
│ │ │ │ ├── Restore.java
│ │ │ │ ├── Save.java
│ │ │ │ ├── SetProperty.java
│ │ │ │ ├── TraverseNodes.java
│ │ │ │ ├── VersionOperation.java
│ │ │ │ └── XATransaction.java
│ │ │ └── task/
│ │ │ ├── ContentOperationsTask.java
│ │ │ ├── RandomOperationsTask.java
│ │ │ └── VersionOperationsTask.java
│ │ ├── journal/
│ │ │ ├── FileJournalTest.java
│ │ │ ├── LockableFileRevisionTest.java
│ │ │ └── TestAll.java
│ │ ├── lock/
│ │ │ ├── ConcurrentLockingTest.java
│ │ │ ├── ConcurrentLockingWithTransactionsTest.java
│ │ │ ├── ExtendedLockingTest.java
│ │ │ ├── LockTimeoutTest.java
│ │ │ └── TestAll.java
│ │ ├── nodetype/
│ │ │ ├── CyclicNodeTypeRegistrationTest.java
│ │ │ ├── MixinTest.java
│ │ │ ├── NodeTypesInContentTest.java
│ │ │ ├── TestAll.java
│ │ │ └── xml/
│ │ │ ├── SimpleNamespaceRegistry.java
│ │ │ └── TestAll.java
│ │ ├── observation/
│ │ │ ├── MixinTest.java
│ │ │ ├── MoveInPlaceTest.java
│ │ │ ├── ReorderTest.java
│ │ │ ├── ShareableNodesTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── VersionEventsTest.java
│ │ │ └── WarningOnSaveWithNotificationThreadTest.java
│ │ ├── persistence/
│ │ │ ├── AutoFixCorruptNode.java
│ │ │ ├── PersistenceManagerTest.java
│ │ │ ├── TestAll.java
│ │ │ └── util/
│ │ │ ├── BundleBindingRandomizedTest.java
│ │ │ ├── BundleBindingTest.java
│ │ │ ├── HashMapIndexTest.java
│ │ │ ├── NodeCorruptionTest.java
│ │ │ └── TestAll.java
│ │ ├── query/
│ │ │ ├── AbstractIndexingTest.java
│ │ │ ├── AbstractQueryTest.java
│ │ │ ├── ChildAxisQueryTest.java
│ │ │ ├── DerefTest.java
│ │ │ ├── DescendantSelfAxisTest.java
│ │ │ ├── ExcerptTest.java
│ │ │ ├── FnNameQueryTest.java
│ │ │ ├── FulltextQueryTest.java
│ │ │ ├── FulltextSQL2QueryTest.java
│ │ │ ├── JoinTest.java
│ │ │ ├── LazyResultSetQueryTest.java
│ │ │ ├── LimitAndOffsetTest.java
│ │ │ ├── LimitedAccessQueryTest.java
│ │ │ ├── MixinTest.java
│ │ │ ├── OrderByTest.java
│ │ │ ├── ParentNodeTest.java
│ │ │ ├── PathQueryNodeTest.java
│ │ │ ├── QueryExtensionsTest.java
│ │ │ ├── QueryResultTest.java
│ │ │ ├── SQL2NodeLocalNameTest.java
│ │ │ ├── SQL2OffsetLimitTest.java
│ │ │ ├── SQL2OrderByTest.java
│ │ │ ├── SQL2OuterJoinTest.java
│ │ │ ├── SQL2PathEscapingTest.java
│ │ │ ├── SQL2QueryResultTest.java
│ │ │ ├── SQL2TooManyClausesTest.java
│ │ │ ├── SQLTest.java
│ │ │ ├── SelectClauseTest.java
│ │ │ ├── ShareableNodeTest.java
│ │ │ ├── SimilarQueryTest.java
│ │ │ ├── SimpleQueryTest.java
│ │ │ ├── SkipDeletedNodesTest.java
│ │ │ ├── SkipDeniedNodesTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── TextExtractorTest.java
│ │ │ ├── UpperLowerCaseQueryTest.java
│ │ │ ├── VersionStoreQueryTest.java
│ │ │ ├── XPathAxisTest.java
│ │ │ └── lucene/
│ │ │ ├── BlockingParser.java
│ │ │ ├── ChainedTermEnumTest.java
│ │ │ ├── ComparableArrayTest.java
│ │ │ ├── DecimalConvertTest.java
│ │ │ ├── IDFieldTest.java
│ │ │ ├── IndexFormatVersionTest.java
│ │ │ ├── IndexInfosTest.java
│ │ │ ├── IndexMigrationTest.java
│ │ │ ├── IndexingAggregateTest.java
│ │ │ ├── IndexingConfigurationImplTest.java
│ │ │ ├── IndexingQueueTest.java
│ │ │ ├── IndexingRuleTest.java
│ │ │ ├── LargeResultSetTest.java
│ │ │ ├── LazyTextExtractorFieldTest.java
│ │ │ ├── SQL2IndexingAggregateTest.java
│ │ │ ├── SQL2IndexingAggregateTest2.java
│ │ │ ├── SearchIndexConsistencyCheckTest.java
│ │ │ ├── SearchIndexTest.java
│ │ │ ├── SlowQueryHandler.java
│ │ │ ├── SynonymProviderTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── TextExtractionQueryTest.java
│ │ │ ├── UtilTest.java
│ │ │ ├── directory/
│ │ │ │ ├── DirectoryManagerTest.java
│ │ │ │ ├── IndexInputStreamTest.java
│ │ │ │ ├── IndexOutputStreamTest.java
│ │ │ │ └── TestAll.java
│ │ │ └── hits/
│ │ │ └── ArrayHitsTest.java
│ │ ├── retention/
│ │ │ ├── AbstractRetentionTest.java
│ │ │ ├── HoldTest.java
│ │ │ ├── RetentionPolicyTest.java
│ │ │ └── TestAll.java
│ │ ├── security/
│ │ │ ├── AccessManagerTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── TestPrincipal.java
│ │ │ ├── authentication/
│ │ │ │ ├── CryptedSimpleCredentialsTest.java
│ │ │ │ ├── DefaultLoginModuleTest.java
│ │ │ │ ├── GuestLoginTest.java
│ │ │ │ ├── LoginModuleTest.java
│ │ │ │ ├── NullLoginTest.java
│ │ │ │ ├── SimpleCredentialsAuthenticationTest.java
│ │ │ │ ├── TestAll.java
│ │ │ │ └── token/
│ │ │ │ ├── CompatTokenProviderTest.java
│ │ │ │ ├── TestAll.java
│ │ │ │ ├── TokenBasedAuthenticationCompatTest.java
│ │ │ │ ├── TokenBasedAuthenticationTest.java
│ │ │ │ ├── TokenBasedLoginTest.java
│ │ │ │ └── TokenProviderTest.java
│ │ │ ├── authorization/
│ │ │ │ ├── AbstractACLTemplateTest.java
│ │ │ │ ├── AbstractEffectivePolicyTest.java
│ │ │ │ ├── AbstractEntryTest.java
│ │ │ │ ├── AbstractEvaluationTest.java
│ │ │ │ ├── AbstractLockManagementTest.java
│ │ │ │ ├── AbstractNodeTypeManagementTest.java
│ │ │ │ ├── AbstractRepositoryOperationTest.java
│ │ │ │ ├── AbstractVersionManagementTest.java
│ │ │ │ ├── AbstractWriteTest.java
│ │ │ │ ├── CustomPrivilegeTest.java
│ │ │ │ ├── GlobPatternTest.java
│ │ │ │ ├── JackrabbitAccessControlListTest.java
│ │ │ │ ├── PermissionTest.java
│ │ │ │ ├── PrivilegeBitsTest.java
│ │ │ │ ├── PrivilegeManagerImplTest.java
│ │ │ │ ├── PrivilegeRegistryTest.java
│ │ │ │ ├── TestAll.java
│ │ │ │ ├── acl/
│ │ │ │ │ ├── ACLEditorTest.java
│ │ │ │ │ ├── ACLTemplateEntryTest.java
│ │ │ │ │ ├── ACLTemplateTest.java
│ │ │ │ │ ├── AcReadWriteTest.java
│ │ │ │ │ ├── EffectivePolicyTest.java
│ │ │ │ │ ├── EntryCollectorTest.java
│ │ │ │ │ ├── EntryTest.java
│ │ │ │ │ ├── EvaluationUtil.java
│ │ │ │ │ ├── LockTest.java
│ │ │ │ │ ├── MoveTest.java
│ │ │ │ │ ├── NodeTypeTest.java
│ │ │ │ │ ├── ReadNodeTypeTest.java
│ │ │ │ │ ├── ReadTest.java
│ │ │ │ │ ├── RepositoryOperationTest.java
│ │ │ │ │ ├── RestrictionTest.java
│ │ │ │ │ ├── TestAll.java
│ │ │ │ │ ├── VersionTest.java
│ │ │ │ │ └── WriteTest.java
│ │ │ │ ├── combined/
│ │ │ │ │ ├── TestAll.java
│ │ │ │ │ └── WriteTest.java
│ │ │ │ └── principalbased/
│ │ │ │ ├── ACLTemplateTest.java
│ │ │ │ ├── EffectivePolicyTest.java
│ │ │ │ ├── EntryTest.java
│ │ │ │ ├── EvaluationUtil.java
│ │ │ │ ├── LockTest.java
│ │ │ │ ├── NodeTypeTest.java
│ │ │ │ ├── RepositoryOperationTest.java
│ │ │ │ ├── TestAll.java
│ │ │ │ ├── VersionTest.java
│ │ │ │ └── WriteTest.java
│ │ │ ├── principal/
│ │ │ │ ├── AbstractPrincipalProviderTest.java
│ │ │ │ ├── EveryonePrincipalTest.java
│ │ │ │ ├── PrincipalManagerTest.java
│ │ │ │ └── TestAll.java
│ │ │ ├── simple/
│ │ │ │ ├── SimpleSecurityManagerTest.java
│ │ │ │ └── TestAll.java
│ │ │ └── user/
│ │ │ ├── AdministratorTest.java
│ │ │ ├── AuthorizableActionTest.java
│ │ │ ├── AuthorizableImplTest.java
│ │ │ ├── DefaultPrincipalProviderTest.java
│ │ │ ├── GroupAdministratorTest.java
│ │ │ ├── GroupImplTest.java
│ │ │ ├── ImpersonationImplTest.java
│ │ │ ├── IndexNodeResolverTest.java
│ │ │ ├── MembershipCachePerfTest.java
│ │ │ ├── MembershipCacheTest.java
│ │ │ ├── NodeCreationTest.java
│ │ │ ├── NodeResolverTest.java
│ │ │ ├── NotUserAdministratorTest.java
│ │ │ ├── PasswordUtilityTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── TraversingNodeResolverTest.java
│ │ │ ├── UserAccessControlProviderTest.java
│ │ │ ├── UserAdministratorTest.java
│ │ │ ├── UserImplTest.java
│ │ │ ├── UserImporterTest.java
│ │ │ └── UserManagerImplTest.java
│ │ ├── state/
│ │ │ ├── AbstractISMLockingTest.java
│ │ │ ├── ChangeLogTest.java
│ │ │ ├── DefaultISMLockingDeadlockTest.java
│ │ │ ├── DefaultISMLockingTest.java
│ │ │ ├── FineGrainedISMLockingTest.java
│ │ │ ├── NameSetTest.java
│ │ │ ├── NodeStateMergerTest.java
│ │ │ └── TestAll.java
│ │ ├── stats/
│ │ │ ├── QueryStatCoreTest.java
│ │ │ └── TestAll.java
│ │ ├── util/
│ │ │ ├── CooperativeFileLockTest.java
│ │ │ ├── DOMWalkerTest.java
│ │ │ ├── RepositoryLockTest.java
│ │ │ ├── TestAll.java
│ │ │ └── db/
│ │ │ ├── ConnectionFactoryTest.java
│ │ │ └── TestAll.java
│ │ ├── value/
│ │ │ ├── BinaryValueTest.java
│ │ │ ├── InternalValueFactoryTest.java
│ │ │ ├── InternalValueTest.java
│ │ │ ├── PathTest.java
│ │ │ ├── ReferenceBinaryTest.java
│ │ │ └── TestAll.java
│ │ ├── version/
│ │ │ ├── CheckinRemoveVersionTest.java
│ │ │ ├── CopyFrozenUuidTest.java
│ │ │ ├── InternalVersionHistoryImplTest.java
│ │ │ ├── ModifyNonVersionableCheckedOutTest.java
│ │ │ ├── RemoveAndAddVersionLabelXATest.java
│ │ │ ├── RemoveOrphanVersionHistoryTest.java
│ │ │ ├── RemoveVersionLabelTest.java
│ │ │ ├── RemoveVersionTest.java
│ │ │ ├── RestoreNodeWithSNSTest.java
│ │ │ ├── RestoreTest.java
│ │ │ ├── TestAll.java
│ │ │ └── VersionIteratorImplTest.java
│ │ └── xml/
│ │ ├── AccessControlImporterTest.java
│ │ ├── DocumentViewTest.java
│ │ ├── SystemViewTest.java
│ │ ├── TestAll.java
│ │ └── WorkspaceImporterTest.java
│ ├── repository/
│ │ ├── repository.xml
│ │ └── workspaces/
│ │ ├── default/
│ │ │ ├── synonyms.properties
│ │ │ └── workspace.xml
│ │ ├── index-format-v1/
│ │ │ ├── index/
│ │ │ │ ├── _0/
│ │ │ │ │ ├── _2.cfs
│ │ │ │ │ ├── deletable
│ │ │ │ │ └── segments
│ │ │ │ └── indexes
│ │ │ ├── items/
│ │ │ │ ├── 5a/
│ │ │ │ │ └── 9a/
│ │ │ │ │ └── d0fcc7f542bbb435bcb9ed30a2e2.n
│ │ │ │ ├── ca/
│ │ │ │ │ └── fe/
│ │ │ │ │ └── babecafebabecafebabecafebabe.n
│ │ │ │ └── de/
│ │ │ │ └── ad/
│ │ │ │ └── beefcafebabecafebabecafebabe.n
│ │ │ ├── names.properties
│ │ │ ├── namespaces.properties
│ │ │ └── workspace.xml
│ │ ├── index-format-v2/
│ │ │ ├── index/
│ │ │ │ ├── _0/
│ │ │ │ │ ├── _0.cfs
│ │ │ │ │ ├── segments.gen
│ │ │ │ │ ├── segments_1
│ │ │ │ │ └── segments_3
│ │ │ │ └── indexes
│ │ │ ├── items/
│ │ │ │ ├── c9/
│ │ │ │ │ └── bb/
│ │ │ │ │ └── 26c0edf0408b8ab22e88c1edc593.n
│ │ │ │ ├── ca/
│ │ │ │ │ └── fe/
│ │ │ │ │ └── babecafebabecafebabecafebabe.n
│ │ │ │ └── de/
│ │ │ │ └── ad/
│ │ │ │ └── beefcafebabecafebabecafebabe.n
│ │ │ ├── names.properties
│ │ │ ├── namespaces.properties
│ │ │ └── workspace.xml
│ │ ├── index-format-v3/
│ │ │ ├── items/
│ │ │ │ ├── c9/
│ │ │ │ │ └── bb/
│ │ │ │ │ └── 26c0edf0408b8ab22e88c1edc593.n
│ │ │ │ ├── ca/
│ │ │ │ │ └── fe/
│ │ │ │ │ └── babecafebabecafebabecafebabe.n
│ │ │ │ └── de/
│ │ │ │ └── ad/
│ │ │ │ └── beefcafebabecafebabecafebabe.n
│ │ │ ├── names.properties
│ │ │ ├── namespaces.properties
│ │ │ └── workspace.xml
│ │ ├── indexing-test/
│ │ │ ├── indexing-configuration.xml
│ │ │ └── workspace.xml
│ │ ├── indexing-test-2/
│ │ │ ├── indexing-configuration.xml
│ │ │ └── workspace.xml
│ │ ├── security/
│ │ │ └── workspace.xml
│ │ └── wsp-init-test/
│ │ └── workspace.xml
│ ├── repository-descriptor-overlay/
│ │ ├── repository.xml
│ │ └── workspaces/
│ │ ├── default/
│ │ │ └── workspace.xml
│ │ ├── index-format-v1/
│ │ │ └── workspace.xml
│ │ ├── index-format-v2/
│ │ │ └── workspace.xml
│ │ ├── index-format-v3/
│ │ │ └── workspace.xml
│ │ ├── indexing-test/
│ │ │ └── workspace.xml
│ │ ├── security/
│ │ │ └── workspace.xml
│ │ └── wsp-init-test/
│ │ └── workspace.xml
│ └── resources/
│ ├── META-INF/
│ │ └── services/
│ │ └── org.apache.tika.parser.Parser
│ ├── cnd-reader-test-input.cnd
│ ├── jaas.config
│ ├── logback-test.xml
│ ├── org/
│ │ └── apache/
│ │ ├── jackrabbit/
│ │ │ ├── api/
│ │ │ │ └── test_mixin_nodetypes.cnd
│ │ │ └── core/
│ │ │ ├── cluster/
│ │ │ │ ├── repository-h2.xml
│ │ │ │ ├── repository-with-test-journal.xml
│ │ │ │ └── repository.xml
│ │ │ ├── config/
│ │ │ │ └── workspace.xml
│ │ │ ├── integration/
│ │ │ │ ├── repository-with-SimpleFSDirectory.xml
│ │ │ │ └── words.txt
│ │ │ ├── nodetype/
│ │ │ │ └── xml/
│ │ │ │ ├── nodetypes.dtd
│ │ │ │ ├── test_mixin_nodetypes.cnd
│ │ │ │ ├── test_nodestatemerger_nodetypes.cnd
│ │ │ │ ├── test_nodetypes.xml
│ │ │ │ ├── test_ns_cnd_nodetypes.cnd
│ │ │ │ ├── test_ns_xml_nodetypes.xml
│ │ │ │ ├── test_same_nt_name_cnd_nodetypes.cnd
│ │ │ │ └── test_same_nt_name_xml_nodetypes.xml
│ │ │ ├── query/
│ │ │ │ ├── lucene/
│ │ │ │ │ ├── indexing_config1.xml
│ │ │ │ │ ├── indexing_config2.xml
│ │ │ │ │ ├── indexing_config3.xml
│ │ │ │ │ ├── indexing_config4.xml
│ │ │ │ │ ├── indexing_config5.xml
│ │ │ │ │ └── indexing_config6.xml
│ │ │ │ ├── test.rtf
│ │ │ │ └── test.txt
│ │ │ ├── repository-oracle-compat.xml
│ │ │ ├── repository-oracle.xml
│ │ │ └── security/
│ │ │ ├── simple/
│ │ │ │ └── simple_repository.xml
│ │ │ └── user/
│ │ │ ├── repository-membersplit.xml
│ │ │ └── repository.xml
│ │ └── tika/
│ │ └── mime/
│ │ └── custom-mimetypes.xml
│ ├── repositoryHelperPool.properties
│ ├── repositoryStubImpl.properties
│ ├── xsd-converter-model-output.cnd
│ └── xsd-converter-test-input.xsd
├── jackrabbit-data/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ ├── core/
│ │ │ │ ├── config/
│ │ │ │ │ ├── ConfigurationException.java
│ │ │ │ │ ├── DataSourceConfig.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── data/
│ │ │ │ │ ├── AbstractBackend.java
│ │ │ │ │ ├── AbstractDataRecord.java
│ │ │ │ │ ├── AbstractDataStore.java
│ │ │ │ │ ├── AsyncTouchCallback.java
│ │ │ │ │ ├── AsyncTouchResult.java
│ │ │ │ │ ├── AsyncUploadCache.java
│ │ │ │ │ ├── AsyncUploadCacheResult.java
│ │ │ │ │ ├── AsyncUploadCallback.java
│ │ │ │ │ ├── AsyncUploadResult.java
│ │ │ │ │ ├── Backend.java
│ │ │ │ │ ├── BackendResourceAbortable.java
│ │ │ │ │ ├── CachingDataRecord.java
│ │ │ │ │ ├── CachingDataStore.java
│ │ │ │ │ ├── CachingFDS.java
│ │ │ │ │ ├── DataIdentifier.java
│ │ │ │ │ ├── DataRecord.java
│ │ │ │ │ ├── DataStore.java
│ │ │ │ │ ├── DataStoreException.java
│ │ │ │ │ ├── DataStoreFactory.java
│ │ │ │ │ ├── FSBackend.java
│ │ │ │ │ ├── FileDataRecord.java
│ │ │ │ │ ├── FileDataStore.java
│ │ │ │ │ ├── LazyFileInputStream.java
│ │ │ │ │ ├── LocalCache.java
│ │ │ │ │ ├── MultiDataStore.java
│ │ │ │ │ ├── MultiDataStoreAware.java
│ │ │ │ │ ├── ScanEventListener.java
│ │ │ │ │ ├── db/
│ │ │ │ │ │ ├── DbDataRecord.java
│ │ │ │ │ │ ├── DbDataStore.java
│ │ │ │ │ │ ├── DbInputStream.java
│ │ │ │ │ │ ├── DerbyDataStore.java
│ │ │ │ │ │ ├── ResettableTempFileInputStream.java
│ │ │ │ │ │ ├── TempFileInputStream.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ └── util/
│ │ │ │ │ ├── NamedThreadFactory.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── fs/
│ │ │ │ │ ├── BasedFileSystem.java
│ │ │ │ │ ├── FileSystem.java
│ │ │ │ │ ├── FileSystemException.java
│ │ │ │ │ ├── FileSystemFactory.java
│ │ │ │ │ ├── FileSystemPathUtil.java
│ │ │ │ │ ├── FileSystemResource.java
│ │ │ │ │ ├── RandomAccessOutputStream.java
│ │ │ │ │ ├── local/
│ │ │ │ │ │ ├── FileUtil.java
│ │ │ │ │ │ ├── HandleMonitor.java
│ │ │ │ │ │ ├── LocalFileSystem.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── util/
│ │ │ │ └── db/
│ │ │ │ ├── CheckSchemaOperation.java
│ │ │ │ ├── ConnectionFactory.java
│ │ │ │ ├── ConnectionHelper.java
│ │ │ │ ├── DataSourceWrapper.java
│ │ │ │ ├── DatabaseAware.java
│ │ │ │ ├── DbUtility.java
│ │ │ │ ├── DerbyConnectionHelper.java
│ │ │ │ ├── Oracle10R1ConnectionHelper.java
│ │ │ │ ├── OracleConnectionHelper.java
│ │ │ │ ├── PostgreSQLConnectionHelper.java
│ │ │ │ ├── ResultSetWrapper.java
│ │ │ │ ├── StreamWrapper.java
│ │ │ │ └── package-info.java
│ │ │ └── data/
│ │ │ └── core/
│ │ │ ├── InternalXAResource.java
│ │ │ ├── TransactionContext.java
│ │ │ ├── TransactionException.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── core/
│ │ └── data/
│ │ └── db/
│ │ ├── azure.properties
│ │ ├── db2.properties
│ │ ├── derby.properties
│ │ ├── h2.properties
│ │ ├── ingres.properties
│ │ ├── mssql.properties
│ │ ├── mysql.properties
│ │ ├── oracle.properties
│ │ ├── postgresql.properties
│ │ └── sqlserver.properties
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── core/
│ │ └── data/
│ │ ├── InMemoryBackend.java
│ │ ├── InMemoryDataStore.java
│ │ ├── RandomInputStream.java
│ │ ├── TestCachingFDS.java
│ │ ├── TestCachingFDSCacheOff.java
│ │ ├── TestCaseBase.java
│ │ ├── TestFileDataStore.java
│ │ ├── TestInMemDs.java
│ │ ├── TestInMemDsCacheOff.java
│ │ ├── TestLocalCache.java
│ │ └── db/
│ │ ├── ResettableTempFileInputStreamTest.java
│ │ └── TempFileInputStreamTest.java
│ └── resources/
│ ├── fs.properties
│ └── log4j.properties
├── jackrabbit-it-osgi/
│ ├── README.md
│ ├── pom.xml
│ ├── src/
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── osgi/
│ │ │ ├── OSGiIT.java
│ │ │ └── slf4j2/
│ │ │ ├── Slf4j_v2_Tika_v2_4_OSGiIT.java
│ │ │ └── Slf4j_v2_Tika_v2_9_OSGiIT.java
│ │ └── resources/
│ │ ├── exam.properties
│ │ └── logback-test.xml
│ └── test-bundles.xml
├── jackrabbit-jca/
│ ├── HEADER.txt
│ ├── README.txt
│ ├── deploy/
│ │ ├── geronimo/
│ │ │ └── geronimo-ra.xml
│ │ ├── jboss/
│ │ │ └── jcr-ds.xml
│ │ └── weblogic/
│ │ └── weblogic-ra.xml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── jca/
│ │ │ ├── AnonymousConnection.java
│ │ │ ├── JCAConnectionManager.java
│ │ │ ├── JCAConnectionRequestInfo.java
│ │ │ ├── JCAManagedConnection.java
│ │ │ ├── JCAManagedConnectionFactory.java
│ │ │ ├── JCARepositoryHandle.java
│ │ │ ├── JCARepositoryManager.java
│ │ │ ├── JCAResourceAdapter.java
│ │ │ ├── JCASessionHandle.java
│ │ │ └── TransactionBoundXAResource.java
│ │ ├── rar/
│ │ │ └── META-INF/
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ └── ra.xml
│ │ ├── rar10/
│ │ │ └── META-INF/
│ │ │ └── ra.xml
│ │ └── resources/
│ │ └── logback.xml
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── jca/
│ │ └── test/
│ │ ├── AbstractTestCase.java
│ │ ├── ConnectionFactoryTest.java
│ │ └── ConnectionRequestInfoTest.java
│ └── resources/
│ └── logback-test.xml
├── jackrabbit-jcr-client/
│ ├── README.txt
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── client/
│ │ │ └── RepositoryFactoryImpl.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── javax.jcr.RepositoryFactory
│ └── test/
│ └── java/
│ └── org/
│ └── apache/
│ └── jackrabbit/
│ └── client/
│ ├── RepositoryFactoryImplTest.java
│ └── RepositoryFactoryTest.java
├── jackrabbit-jcr-commons/
│ ├── README.txt
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── appended-resources/
│ │ │ └── META-INF/
│ │ │ └── NOTICE
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ ├── JcrConstants.java
│ │ │ ├── commons/
│ │ │ │ ├── AbstractItem.java
│ │ │ │ ├── AbstractNode.java
│ │ │ │ ├── AbstractProperty.java
│ │ │ │ ├── AbstractRepository.java
│ │ │ │ ├── AbstractSession.java
│ │ │ │ ├── AbstractWorkspace.java
│ │ │ │ ├── GenericRepositoryFactory.java
│ │ │ │ ├── ItemNameMatcher.java
│ │ │ │ ├── JcrUtils.java
│ │ │ │ ├── JndiRepositoryFactory.java
│ │ │ │ ├── NamespaceHelper.java
│ │ │ │ ├── SimpleValueFactory.java
│ │ │ │ ├── cnd/
│ │ │ │ │ ├── CndImporter.java
│ │ │ │ │ ├── CompactNodeTypeDefReader.java
│ │ │ │ │ ├── CompactNodeTypeDefWriter.java
│ │ │ │ │ ├── DefinitionBuilderFactory.java
│ │ │ │ │ ├── Lexer.java
│ │ │ │ │ ├── ParseException.java
│ │ │ │ │ ├── TemplateBuilderFactory.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── flat/
│ │ │ │ │ ├── BTreeManager.java
│ │ │ │ │ ├── FilterIterator.java
│ │ │ │ │ ├── ItemSequence.java
│ │ │ │ │ ├── NodeSequence.java
│ │ │ │ │ ├── PropertySequence.java
│ │ │ │ │ ├── Rank.java
│ │ │ │ │ ├── Sequence.java
│ │ │ │ │ ├── SizedIterator.java
│ │ │ │ │ ├── TreeManager.java
│ │ │ │ │ ├── TreeTraverser.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── iterator/
│ │ │ │ │ ├── AbstractLazyIterator.java
│ │ │ │ │ ├── AccessControlPolicyIteratorAdapter.java
│ │ │ │ │ ├── EventIteratorAdapter.java
│ │ │ │ │ ├── EventListenerIteratorAdapter.java
│ │ │ │ │ ├── FilterIterator.java
│ │ │ │ │ ├── FilteredRangeIterator.java
│ │ │ │ │ ├── FilteringNodeIterator.java
│ │ │ │ │ ├── FrozenNodeIteratorAdapter.java
│ │ │ │ │ ├── LazyIteratorChain.java
│ │ │ │ │ ├── NodeIterable.java
│ │ │ │ │ ├── NodeIteratorAdapter.java
│ │ │ │ │ ├── NodeTypeIteratorAdapter.java
│ │ │ │ │ ├── PropertyIterable.java
│ │ │ │ │ ├── PropertyIteratorAdapter.java
│ │ │ │ │ ├── RangeIteratorAdapter.java
│ │ │ │ │ ├── RangeIteratorDecorator.java
│ │ │ │ │ ├── RowIterable.java
│ │ │ │ │ ├── RowIteratorAdapter.java
│ │ │ │ │ ├── SizedIterator.java
│ │ │ │ │ ├── VersionIteratorAdapter.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── jackrabbit/
│ │ │ │ │ ├── SimpleReferenceBinary.java
│ │ │ │ │ ├── authorization/
│ │ │ │ │ │ ├── AccessControlUtils.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ └── user/
│ │ │ │ │ ├── AuthorizableQueryManager.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── json/
│ │ │ │ │ ├── JsonHandler.java
│ │ │ │ │ ├── JsonParser.java
│ │ │ │ │ ├── JsonUtil.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── observation/
│ │ │ │ │ ├── EventTracker.java
│ │ │ │ │ ├── JackrabbitEventTracker.java
│ │ │ │ │ ├── ListenerTracker.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── packaging/
│ │ │ │ │ ├── ContentPackage.java
│ │ │ │ │ ├── ContentPackageExporter.java
│ │ │ │ │ ├── FilterContentPackage.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── predicate/
│ │ │ │ │ ├── DeclaringTypePredicate.java
│ │ │ │ │ ├── DepthPredicate.java
│ │ │ │ │ ├── IsMandatoryPredicate.java
│ │ │ │ │ ├── IsNodePredicate.java
│ │ │ │ │ ├── NamePredicate.java
│ │ │ │ │ ├── NodeTypePredicate.java
│ │ │ │ │ ├── NtFilePredicate.java
│ │ │ │ │ ├── PathPredicate.java
│ │ │ │ │ ├── Predicate.java
│ │ │ │ │ ├── Predicates.java
│ │ │ │ │ ├── RowPredicate.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── query/
│ │ │ │ │ ├── GQL.java
│ │ │ │ │ ├── QueryObjectModelBuilder.java
│ │ │ │ │ ├── QueryObjectModelBuilderRegistry.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── qom/
│ │ │ │ │ │ ├── JoinType.java
│ │ │ │ │ │ ├── OperandEvaluator.java
│ │ │ │ │ │ ├── Operator.java
│ │ │ │ │ │ ├── Order.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── sql2/
│ │ │ │ │ ├── Parser.java
│ │ │ │ │ ├── QOMFormatter.java
│ │ │ │ │ ├── SQL2QOMBuilder.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── repository/
│ │ │ │ │ ├── EmptyRepository.java
│ │ │ │ │ ├── JNDIRepository.java
│ │ │ │ │ ├── JNDIRepositoryFactory.java
│ │ │ │ │ ├── ProxyRepository.java
│ │ │ │ │ ├── RepositoryFactory.java
│ │ │ │ │ ├── SingletonRepositoryFactory.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── visitor/
│ │ │ │ │ ├── FilteringItemVisitor.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── webdav/
│ │ │ │ │ ├── AtomFeedConstants.java
│ │ │ │ │ ├── EventUtil.java
│ │ │ │ │ ├── JcrRemotingConstants.java
│ │ │ │ │ ├── JcrValueType.java
│ │ │ │ │ ├── NodeTypeConstants.java
│ │ │ │ │ ├── NodeTypeUtil.java
│ │ │ │ │ ├── QueryUtil.java
│ │ │ │ │ ├── ValueUtil.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── xml/
│ │ │ │ ├── DefaultContentHandler.java
│ │ │ │ ├── DocumentViewExporter.java
│ │ │ │ ├── Exporter.java
│ │ │ │ ├── ParsingContentHandler.java
│ │ │ │ ├── ProxyContentHandler.java
│ │ │ │ ├── SerializingContentHandler.java
│ │ │ │ ├── SystemViewExporter.java
│ │ │ │ ├── ToXmlContentHandler.java
│ │ │ │ ├── XMLFactories.java
│ │ │ │ ├── XmlnsContentHandler.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── stats/
│ │ │ │ ├── QueryStatCore.java
│ │ │ │ ├── QueryStatDtoComparator.java
│ │ │ │ ├── QueryStatDtoImpl.java
│ │ │ │ ├── QueryStatDtoOccurrenceComparator.java
│ │ │ │ ├── QueryStatImpl.java
│ │ │ │ ├── RepositoryStatisticsImpl.java
│ │ │ │ ├── TimeSeriesAverage.java
│ │ │ │ ├── TimeSeriesMax.java
│ │ │ │ ├── TimeSeriesRecorder.java
│ │ │ │ ├── TimeSeriesStatsUtil.java
│ │ │ │ ├── jmx/
│ │ │ │ │ ├── QueryStatManager.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── util/
│ │ │ │ ├── Base64.java
│ │ │ │ ├── ChildrenCollector.java
│ │ │ │ ├── ChildrenCollectorFilter.java
│ │ │ │ ├── ISO8601.java
│ │ │ │ ├── ISO9075.java
│ │ │ │ ├── LazyFileInputStream.java
│ │ │ │ ├── Locked.java
│ │ │ │ ├── LockedWrapper.java
│ │ │ │ ├── Text.java
│ │ │ │ ├── Timer.java
│ │ │ │ ├── TransientFileFactory.java
│ │ │ │ ├── WeakIdentityCollection.java
│ │ │ │ ├── XMLChar.java
│ │ │ │ ├── XMLUtil.java
│ │ │ │ └── package-info.java
│ │ │ └── value/
│ │ │ ├── AbstractValueFactory.java
│ │ │ ├── BaseValue.java
│ │ │ ├── BinaryImpl.java
│ │ │ ├── BinaryValue.java
│ │ │ ├── BooleanValue.java
│ │ │ ├── DateValue.java
│ │ │ ├── DecimalValue.java
│ │ │ ├── DoubleValue.java
│ │ │ ├── LongValue.java
│ │ │ ├── NameValue.java
│ │ │ ├── PathValue.java
│ │ │ ├── ReferenceValue.java
│ │ │ ├── StringValue.java
│ │ │ ├── URIValue.java
│ │ │ ├── ValueFactoryImpl.java
│ │ │ ├── ValueHelper.java
│ │ │ ├── WeakReferenceValue.java
│ │ │ └── package-info.java
│ │ ├── javadoc/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── uuid/
│ │ │ └── package.html
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ ├── javax.jcr.RepositoryFactory
│ │ └── org.apache.jackrabbit.commons.query.QueryObjectModelBuilder
│ └── test/
│ └── java/
│ └── org/
│ └── apache/
│ └── jackrabbit/
│ ├── commons/
│ │ ├── AbstractRepositoryTest.java
│ │ ├── JcrUtilsTest.java
│ │ ├── NamespaceHelperTest.java
│ │ ├── SimpleValueFactoryTest.java
│ │ ├── flat/
│ │ │ └── RankTest.java
│ │ ├── iterator/
│ │ │ └── FilteredRangeIteratorTest.java
│ │ ├── json/
│ │ │ ├── JsonParserTest.java
│ │ │ ├── JsonUtilTest.java
│ │ │ └── TestAll.java
│ │ ├── query/
│ │ │ └── GQLTest.java
│ │ └── xml/
│ │ ├── ParsingContentHandlerTest.java
│ │ ├── SerializingContentHandlerTest.java
│ │ ├── ToXmlContentHandlerTest.java
│ │ └── XmlnsContentHandlerTest.java
│ ├── stats/
│ │ ├── RepositoryStatisticsImplTest.java
│ │ ├── TimeSeriesAverageTest.java
│ │ ├── TimeSeriesMaxTest.java
│ │ └── TimeSeriesRecorderTest.java
│ ├── util/
│ │ ├── Base64Test.java
│ │ ├── ISO8601Test.java
│ │ ├── ISO9075Test.java
│ │ ├── JcrUtilsTest.java
│ │ ├── TextTest.java
│ │ └── TimerTest.java
│ ├── value/
│ │ └── BinaryValueTest.java
│ └── xml/
│ └── XMLFactoriesTest.java
├── jackrabbit-jcr-server/
│ ├── README.txt
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── appended-resources/
│ │ │ └── META-INF/
│ │ │ └── NOTICE
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ ├── server/
│ │ │ │ ├── BasicCredentialsProvider.java
│ │ │ │ ├── CredentialsProvider.java
│ │ │ │ ├── SessionProvider.java
│ │ │ │ ├── SessionProviderImpl.java
│ │ │ │ ├── io/
│ │ │ │ │ ├── AbstractExportContext.java
│ │ │ │ │ ├── BoundedInputStream.java
│ │ │ │ │ ├── CopyMoveContext.java
│ │ │ │ │ ├── CopyMoveContextImpl.java
│ │ │ │ │ ├── CopyMoveHandler.java
│ │ │ │ │ ├── CopyMoveManager.java
│ │ │ │ │ ├── CopyMoveManagerImpl.java
│ │ │ │ │ ├── DefaultHandler.java
│ │ │ │ │ ├── DefaultIOListener.java
│ │ │ │ │ ├── DefaultIOManager.java
│ │ │ │ │ ├── DeleteContext.java
│ │ │ │ │ ├── DeleteContextImpl.java
│ │ │ │ │ ├── DeleteHandler.java
│ │ │ │ │ ├── DeleteManager.java
│ │ │ │ │ ├── DeleteManagerImpl.java
│ │ │ │ │ ├── DirListingExportHandler.java
│ │ │ │ │ ├── ExportContext.java
│ │ │ │ │ ├── ExportContextImpl.java
│ │ │ │ │ ├── IOContext.java
│ │ │ │ │ ├── IOHandler.java
│ │ │ │ │ ├── IOListener.java
│ │ │ │ │ ├── IOManager.java
│ │ │ │ │ ├── IOManagerImpl.java
│ │ │ │ │ ├── IOUtil.java
│ │ │ │ │ ├── ImportContext.java
│ │ │ │ │ ├── ImportContextImpl.java
│ │ │ │ │ ├── PropertyExportContext.java
│ │ │ │ │ ├── PropertyHandler.java
│ │ │ │ │ ├── PropertyImportContext.java
│ │ │ │ │ ├── PropertyManager.java
│ │ │ │ │ ├── PropertyManagerImpl.java
│ │ │ │ │ ├── VersionHandler.java
│ │ │ │ │ ├── VersionHistoryHandler.java
│ │ │ │ │ ├── XmlHandler.java
│ │ │ │ │ └── ZipHandler.java
│ │ │ │ ├── jcr/
│ │ │ │ │ └── JCRWebdavServer.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── remoting/
│ │ │ │ │ └── davex/
│ │ │ │ │ ├── AclRemoveHandler.java
│ │ │ │ │ ├── BatchReadConfig.java
│ │ │ │ │ ├── DavexServletService.java
│ │ │ │ │ ├── DiffException.java
│ │ │ │ │ ├── DiffHandler.java
│ │ │ │ │ ├── DiffParser.java
│ │ │ │ │ ├── JcrRemotingServlet.java
│ │ │ │ │ ├── JsonDiffHandler.java
│ │ │ │ │ ├── JsonWriter.java
│ │ │ │ │ ├── ProtectedItemRemoveHandler.java
│ │ │ │ │ ├── ProtectedRemoveConfig.java
│ │ │ │ │ └── ProtectedRemoveManager.java
│ │ │ │ └── util/
│ │ │ │ ├── HttpMultipartPost.java
│ │ │ │ └── RequestData.java
│ │ │ └── webdav/
│ │ │ ├── jcr/
│ │ │ │ ├── AbstractItemResource.java
│ │ │ │ ├── AbstractResource.java
│ │ │ │ ├── DavLocatorFactoryImpl.java
│ │ │ │ ├── DavResourceFactoryImpl.java
│ │ │ │ ├── DefaultItemCollection.java
│ │ │ │ ├── DefaultItemResource.java
│ │ │ │ ├── EventJournalResourceImpl.java
│ │ │ │ ├── ItemResourceConstants.java
│ │ │ │ ├── JCRWebdavServerServlet.java
│ │ │ │ ├── JcrDavException.java
│ │ │ │ ├── JcrDavSession.java
│ │ │ │ ├── JcrValueType.java
│ │ │ │ ├── RootCollection.java
│ │ │ │ ├── VersionControlledItemCollection.java
│ │ │ │ ├── WorkspaceResourceImpl.java
│ │ │ │ ├── lock/
│ │ │ │ │ ├── JcrActiveLock.java
│ │ │ │ │ ├── LockTokenMapper.java
│ │ │ │ │ └── SessionScopedLockEntry.java
│ │ │ │ ├── nodetype/
│ │ │ │ │ ├── ItemDefinitionImpl.java
│ │ │ │ │ ├── NodeDefinitionImpl.java
│ │ │ │ │ ├── NodeTypeProperty.java
│ │ │ │ │ └── PropertyDefinitionImpl.java
│ │ │ │ ├── observation/
│ │ │ │ │ ├── SubscriptionImpl.java
│ │ │ │ │ └── SubscriptionManagerImpl.java
│ │ │ │ ├── property/
│ │ │ │ │ ├── JcrDavPropertyNameSet.java
│ │ │ │ │ ├── LengthsProperty.java
│ │ │ │ │ ├── NamespacesProperty.java
│ │ │ │ │ └── ValuesProperty.java
│ │ │ │ ├── search/
│ │ │ │ │ ├── SearchResourceImpl.java
│ │ │ │ │ └── SearchResultProperty.java
│ │ │ │ ├── security/
│ │ │ │ │ ├── JcrSupportedPrivilegesProperty.java
│ │ │ │ │ ├── JcrUserPrivilegesProperty.java
│ │ │ │ │ └── SecurityUtils.java
│ │ │ │ ├── transaction/
│ │ │ │ │ ├── TransactionListener.java
│ │ │ │ │ └── TxLockManagerImpl.java
│ │ │ │ └── version/
│ │ │ │ ├── VersionHistoryItemCollection.java
│ │ │ │ ├── VersionItemCollection.java
│ │ │ │ └── report/
│ │ │ │ ├── AbstractJcrReport.java
│ │ │ │ ├── ExportViewReport.java
│ │ │ │ ├── JcrPrivilegeReport.java
│ │ │ │ ├── LocateByUuidReport.java
│ │ │ │ ├── LocateCorrespondingNodeReport.java
│ │ │ │ ├── NodeTypesReport.java
│ │ │ │ ├── RegisteredNamespacesReport.java
│ │ │ │ └── RepositoryDescriptorsReport.java
│ │ │ └── simple/
│ │ │ ├── DavResourceImpl.java
│ │ │ ├── DavSessionImpl.java
│ │ │ ├── DavSessionProviderImpl.java
│ │ │ ├── DefaultItemFilter.java
│ │ │ ├── DeltaVResourceImpl.java
│ │ │ ├── ItemFilter.java
│ │ │ ├── LocatorFactoryImpl.java
│ │ │ ├── LocatorFactoryImplEx.java
│ │ │ ├── ResourceConfig.java
│ │ │ ├── ResourceFactoryImpl.java
│ │ │ ├── SimpleWebdavServlet.java
│ │ │ ├── VersionControlledResourceImpl.java
│ │ │ ├── VersionHistoryResourceImpl.java
│ │ │ └── VersionResourceImpl.java
│ │ ├── javadoc/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ ├── server/
│ │ │ │ └── io/
│ │ │ │ └── package.html
│ │ │ └── webdav/
│ │ │ └── jcr/
│ │ │ ├── package.html
│ │ │ └── version/
│ │ │ ├── package.html
│ │ │ └── report/
│ │ │ └── package.html
│ │ └── resources/
│ │ └── OSGI-INF/
│ │ └── l10n/
│ │ └── metatype.properties
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ ├── server/
│ │ │ ├── BasicCredentialsProviderTest.java
│ │ │ ├── TestAll.java
│ │ │ └── remoting/
│ │ │ └── davex/
│ │ │ ├── BatchReadConfigTest.java
│ │ │ ├── DiffParserTest.java
│ │ │ ├── JsonDiffHandlerImportTest.java
│ │ │ ├── JsonDiffHandlerTest.java
│ │ │ ├── JsonWriterTest.java
│ │ │ └── TestAll.java
│ │ └── webdav/
│ │ ├── jcr/
│ │ │ ├── JcrDavExceptionTest.java
│ │ │ ├── JcrValueTypeTest.java
│ │ │ ├── LockTimeOutFormatTest.java
│ │ │ ├── LockTokenMappingTest.java
│ │ │ ├── observation/
│ │ │ │ └── InfoMapTest.java
│ │ │ └── security/
│ │ │ ├── AbstractSecurityTest.java
│ │ │ ├── JcrSupportedPrivilegePropertyTest.java
│ │ │ └── JcrUserPrivilegesPropertyTest.java
│ │ ├── server/
│ │ │ ├── BindTest.java
│ │ │ ├── ConditionalsTest.java
│ │ │ ├── ContentCodingTest.java
│ │ │ ├── HttpsSelfSignedTest.java
│ │ │ ├── ProppatchTest.java
│ │ │ ├── PutTest.java
│ │ │ ├── RFC4918DestinationHeaderTest.java
│ │ │ ├── RFC4918IfHeaderTest.java
│ │ │ ├── RFC4918PropfindTest.java
│ │ │ ├── RemotingTest.java
│ │ │ └── WebDAVTestBase.java
│ │ └── simple/
│ │ ├── LitmusTest.java
│ │ ├── LocatorFactoryImplExTest.java
│ │ └── ResourceConfigTest.java
│ └── resources/
│ ├── config.xml
│ ├── keystore
│ ├── logback-test.xml
│ ├── protectedHandlers.properties
│ ├── protectedHandlersConfig.xml
│ ├── repository.xml
│ └── repositoryStubImpl.properties
├── jackrabbit-jcr-servlet/
│ ├── README.txt
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── org/
│ └── apache/
│ └── jackrabbit/
│ └── servlet/
│ ├── AbstractRepositoryServlet.java
│ ├── ContextRepositoryServlet.java
│ ├── FilterRepositoryFactory.java
│ ├── JNDIBindingServlet.java
│ ├── JNDIRepositoryServlet.java
│ ├── ServletRepository.java
│ ├── ServletRepositoryFactory.java
│ ├── jackrabbit/
│ │ ├── JackrabbitRepositoryServlet.java
│ │ └── StatisticsServlet.java
│ └── login/
│ ├── AbstractLoginFilter.java
│ ├── BasicLoginFilter.java
│ ├── ContainerLoginFilter.java
│ └── NullLoginFilter.java
├── jackrabbit-jcr-tests/
│ ├── README.txt
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── appended-resources/
│ │ └── META-INF/
│ │ └── NOTICE
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── test/
│ │ ├── AbstractJCRTest.java
│ │ ├── ConcurrentTestSuite.java
│ │ ├── ISO8601.java
│ │ ├── JCRTestResult.java
│ │ ├── JCRTestSuite.java
│ │ ├── JNDIRepositoryStub.java
│ │ ├── JUnitTest.java
│ │ ├── LogPrintWriter.java
│ │ ├── NotExecutableException.java
│ │ ├── RepositoryHelper.java
│ │ ├── RepositoryHelperPool.java
│ │ ├── RepositoryHelperPoolImpl.java
│ │ ├── RepositoryStub.java
│ │ ├── RepositoryStubException.java
│ │ ├── TestAll.java
│ │ ├── XMLChar.java
│ │ └── api/
│ │ ├── AbstractImportXmlTest.java
│ │ ├── AbstractPropertyTest.java
│ │ ├── AbstractWorkspaceCopyBetweenTest.java
│ │ ├── AbstractWorkspaceCopyTest.java
│ │ ├── AbstractWorkspaceReferenceableTest.java
│ │ ├── AbstractWorkspaceSameNameSibsTest.java
│ │ ├── AbstractWorkspaceVersionableTest.java
│ │ ├── AddNodeTest.java
│ │ ├── Base64.java
│ │ ├── BinaryPropertyTest.java
│ │ ├── BooleanPropertyTest.java
│ │ ├── CheckPermissionTest.java
│ │ ├── DatePropertyTest.java
│ │ ├── DocumentViewImportTest.java
│ │ ├── DoublePropertyTest.java
│ │ ├── EscapeJCRUtil.java
│ │ ├── ExportDocViewTest.java
│ │ ├── ExportSysViewTest.java
│ │ ├── GetWeakReferencesTest.java
│ │ ├── HasPermissionTest.java
│ │ ├── ImpersonateTest.java
│ │ ├── LifecycleTest.java
│ │ ├── LongPropertyTest.java
│ │ ├── NamePropertyTest.java
│ │ ├── NameTest.java
│ │ ├── NamespaceRegistryReadMethodsTest.java
│ │ ├── NamespaceRegistryTest.java
│ │ ├── NamespaceRemappingTest.java
│ │ ├── NodeAddMixinTest.java
│ │ ├── NodeCanAddMixinTest.java
│ │ ├── NodeDiscoveringNodeTypesTest.java
│ │ ├── NodeItemIsModifiedTest.java
│ │ ├── NodeItemIsNewTest.java
│ │ ├── NodeIteratorTest.java
│ │ ├── NodeMixinUtil.java
│ │ ├── NodeOrderableChildNodesTest.java
│ │ ├── NodeReadMethodsTest.java
│ │ ├── NodeRemoveMixinTest.java
│ │ ├── NodeSetPrimaryTypeTest.java
│ │ ├── NodeTest.java
│ │ ├── NodeUUIDTest.java
│ │ ├── PathPropertyTest.java
│ │ ├── PathTest.java
│ │ ├── PropertyItemIsModifiedTest.java
│ │ ├── PropertyItemIsNewTest.java
│ │ ├── PropertyReadMethodsTest.java
│ │ ├── PropertyTest.java
│ │ ├── PropertyTypeTest.java
│ │ ├── PropertyUtil.java
│ │ ├── ReferencePropertyTest.java
│ │ ├── ReferenceableRootNodesTest.java
│ │ ├── ReferencesTest.java
│ │ ├── RepositoryDescriptorTest.java
│ │ ├── RepositoryFactoryTest.java
│ │ ├── RepositoryLoginTest.java
│ │ ├── RootNodeTest.java
│ │ ├── SerializationContext.java
│ │ ├── SerializationTest.java
│ │ ├── SessionReadMethodsTest.java
│ │ ├── SessionRemoveItemTest.java
│ │ ├── SessionTest.java
│ │ ├── SessionUUIDTest.java
│ │ ├── SetPropertyAssumeTypeTest.java
│ │ ├── SetPropertyBooleanTest.java
│ │ ├── SetPropertyCalendarTest.java
│ │ ├── SetPropertyConstraintViolationExceptionTest.java
│ │ ├── SetPropertyDecimalTest.java
│ │ ├── SetPropertyDoubleTest.java
│ │ ├── SetPropertyInputStreamTest.java
│ │ ├── SetPropertyLongTest.java
│ │ ├── SetPropertyNodeTest.java
│ │ ├── SetPropertyStringTest.java
│ │ ├── SetPropertyValueTest.java
│ │ ├── SetValueBinaryTest.java
│ │ ├── SetValueBooleanTest.java
│ │ ├── SetValueConstraintViolationExceptionTest.java
│ │ ├── SetValueDateTest.java
│ │ ├── SetValueDecimalTest.java
│ │ ├── SetValueDoubleTest.java
│ │ ├── SetValueInputStreamTest.java
│ │ ├── SetValueLongTest.java
│ │ ├── SetValueReferenceTest.java
│ │ ├── SetValueStringTest.java
│ │ ├── SetValueValueFormatExceptionTest.java
│ │ ├── SetValueVersionExceptionTest.java
│ │ ├── ShareableNodeTest.java
│ │ ├── StringPropertyTest.java
│ │ ├── SysViewContentHandler.java
│ │ ├── TestAll.java
│ │ ├── TreeComparator.java
│ │ ├── UndefinedPropertyTest.java
│ │ ├── ValueFactoryTest.java
│ │ ├── WorkspaceCloneReferenceableTest.java
│ │ ├── WorkspaceCloneSameNameSibsTest.java
│ │ ├── WorkspaceCloneTest.java
│ │ ├── WorkspaceCloneVersionableTest.java
│ │ ├── WorkspaceCopyBetweenWorkspacesReferenceableTest.java
│ │ ├── WorkspaceCopyBetweenWorkspacesSameNameSibsTest.java
│ │ ├── WorkspaceCopyBetweenWorkspacesTest.java
│ │ ├── WorkspaceCopyBetweenWorkspacesVersionableTest.java
│ │ ├── WorkspaceCopyReferenceableTest.java
│ │ ├── WorkspaceCopySameNameSibsTest.java
│ │ ├── WorkspaceCopyTest.java
│ │ ├── WorkspaceCopyVersionableTest.java
│ │ ├── WorkspaceManagementTest.java
│ │ ├── WorkspaceMoveReferenceableTest.java
│ │ ├── WorkspaceMoveSameNameSibsTest.java
│ │ ├── WorkspaceMoveTest.java
│ │ ├── WorkspaceMoveVersionableTest.java
│ │ ├── WorkspaceReadMethodsTest.java
│ │ ├── WorkspaceTest.java
│ │ ├── lock/
│ │ │ ├── AbstractLockTest.java
│ │ │ ├── DeepLockTest.java
│ │ │ ├── LockManagerTest.java
│ │ │ ├── LockTest.java
│ │ │ ├── OpenScopedLockTest.java
│ │ │ ├── SessionScopedLockTest.java
│ │ │ ├── SetValueLockExceptionTest.java
│ │ │ └── TestAll.java
│ │ ├── nodetype/
│ │ │ ├── CanAddChildNodeCallWithNodeTypeTest.java
│ │ │ ├── CanAddChildNodeCallWithoutNodeTypeTest.java
│ │ │ ├── CanRemoveItemTest.java
│ │ │ ├── CanSetPropertyBinaryTest.java
│ │ │ ├── CanSetPropertyBooleanTest.java
│ │ │ ├── CanSetPropertyDateTest.java
│ │ │ ├── CanSetPropertyDoubleTest.java
│ │ │ ├── CanSetPropertyLongTest.java
│ │ │ ├── CanSetPropertyMultipleTest.java
│ │ │ ├── CanSetPropertyNameTest.java
│ │ │ ├── CanSetPropertyPathTest.java
│ │ │ ├── CanSetPropertyStringTest.java
│ │ │ ├── CanSetPropertyTest.java
│ │ │ ├── NodeDefTest.java
│ │ │ ├── NodeTypeCreationTest.java
│ │ │ ├── NodeTypeManagerTest.java
│ │ │ ├── NodeTypeTest.java
│ │ │ ├── NodeTypeUtil.java
│ │ │ ├── PredefinedNodeTypeTest.java
│ │ │ ├── PropertyDefTest.java
│ │ │ └── TestAll.java
│ │ ├── observation/
│ │ │ ├── AbstractObservationTest.java
│ │ │ ├── AddEventListenerTest.java
│ │ │ ├── EventIteratorTest.java
│ │ │ ├── EventJournalTest.java
│ │ │ ├── EventResult.java
│ │ │ ├── EventTest.java
│ │ │ ├── GetDateTest.java
│ │ │ ├── GetIdentifierTest.java
│ │ │ ├── GetInfoTest.java
│ │ │ ├── GetRegisteredEventListenersTest.java
│ │ │ ├── GetUserDataTest.java
│ │ │ ├── LockingTest.java
│ │ │ ├── NodeAddedTest.java
│ │ │ ├── NodeMovedTest.java
│ │ │ ├── NodeRemovedTest.java
│ │ │ ├── NodeReorderTest.java
│ │ │ ├── PropertyAddedTest.java
│ │ │ ├── PropertyChangedTest.java
│ │ │ ├── PropertyRemovedTest.java
│ │ │ ├── TestAll.java
│ │ │ └── WorkspaceOperationTest.java
│ │ ├── query/
│ │ │ ├── AbstractOrderByTest.java
│ │ │ ├── AbstractQueryLevel2Test.java
│ │ │ ├── AbstractQueryTest.java
│ │ │ ├── CreateQueryTest.java
│ │ │ ├── DerefQueryLevel1Test.java
│ │ │ ├── ElementTest.java
│ │ │ ├── GetLanguageTest.java
│ │ │ ├── GetPersistentQueryPathLevel1Test.java
│ │ │ ├── GetPersistentQueryPathTest.java
│ │ │ ├── GetPropertyNamesTest.java
│ │ │ ├── GetStatementTest.java
│ │ │ ├── GetSupportedQueryLanguagesTest.java
│ │ │ ├── OrderByDateTest.java
│ │ │ ├── OrderByDecimalTest.java
│ │ │ ├── OrderByDoubleTest.java
│ │ │ ├── OrderByLengthTest.java
│ │ │ ├── OrderByLocalNameTest.java
│ │ │ ├── OrderByLongTest.java
│ │ │ ├── OrderByLowerCaseTest.java
│ │ │ ├── OrderByMultiTypeTest.java
│ │ │ ├── OrderByNameTest.java
│ │ │ ├── OrderByStringTest.java
│ │ │ ├── OrderByURITest.java
│ │ │ ├── OrderByUpperCaseTest.java
│ │ │ ├── PredicatesTest.java
│ │ │ ├── QueryResultNodeIteratorTest.java
│ │ │ ├── SQLJcrPathTest.java
│ │ │ ├── SQLJoinTest.java
│ │ │ ├── SQLOrderByTest.java
│ │ │ ├── SQLPathTest.java
│ │ │ ├── SQLQueryLevel2Test.java
│ │ │ ├── SaveTest.java
│ │ │ ├── SetLimitTest.java
│ │ │ ├── SetOffsetTest.java
│ │ │ ├── SimpleSelectionTest.java
│ │ │ ├── Statement.java
│ │ │ ├── TestAll.java
│ │ │ ├── TextNodeTest.java
│ │ │ ├── XPathDocOrderTest.java
│ │ │ ├── XPathJcrPathTest.java
│ │ │ ├── XPathOrderByTest.java
│ │ │ ├── XPathPosIndexTest.java
│ │ │ ├── XPathQueryLevel2Test.java
│ │ │ └── qom/
│ │ │ ├── AbstractJoinTest.java
│ │ │ ├── AbstractQOMTest.java
│ │ │ ├── AndConstraintTest.java
│ │ │ ├── BindVariableValueTest.java
│ │ │ ├── ChildNodeJoinConditionTest.java
│ │ │ ├── ChildNodeTest.java
│ │ │ ├── ColumnTest.java
│ │ │ ├── DescendantNodeJoinConditionTest.java
│ │ │ ├── DescendantNodeTest.java
│ │ │ ├── EquiJoinConditionTest.java
│ │ │ ├── FullTextSearchScoreTest.java
│ │ │ ├── GetQueryTest.java
│ │ │ ├── LengthTest.java
│ │ │ ├── NodeLocalNameTest.java
│ │ │ ├── NodeNameTest.java
│ │ │ ├── NotConstraintTest.java
│ │ │ ├── OrConstraintTest.java
│ │ │ ├── OrderingTest.java
│ │ │ ├── PropertyExistenceTest.java
│ │ │ ├── PropertyValueTest.java
│ │ │ ├── QueryObjectModelFactoryTest.java
│ │ │ ├── RowTest.java
│ │ │ ├── SameNodeJoinConditionTest.java
│ │ │ ├── SameNodeTest.java
│ │ │ ├── SelectorTest.java
│ │ │ ├── TestAll.java
│ │ │ └── UpperLowerCaseTest.java
│ │ ├── retention/
│ │ │ ├── AbstractRetentionTest.java
│ │ │ ├── HoldEffectTest.java
│ │ │ ├── HoldTest.java
│ │ │ ├── RetentionPolicyEffectTest.java
│ │ │ ├── RetentionPolicyTest.java
│ │ │ └── TestAll.java
│ │ ├── security/
│ │ │ ├── AbstractAccessControlTest.java
│ │ │ ├── AccessControlDiscoveryTest.java
│ │ │ ├── AccessControlListTest.java
│ │ │ ├── AccessControlPolicyIteratorTest.java
│ │ │ ├── AccessControlPolicyTest.java
│ │ │ ├── RSessionAccessControlDiscoveryTest.java
│ │ │ ├── RSessionAccessControlPolicyTest.java
│ │ │ ├── RSessionAccessControlTest.java
│ │ │ └── TestAll.java
│ │ ├── util/
│ │ │ ├── ISO9075.java
│ │ │ ├── InputStreamWrapper.java
│ │ │ ├── TestAll.java
│ │ │ └── Text.java
│ │ └── version/
│ │ ├── AbstractMergeTest.java
│ │ ├── AbstractOnParentVersionTest.java
│ │ ├── AbstractVersionTest.java
│ │ ├── ActivitiesTest.java
│ │ ├── CheckinTest.java
│ │ ├── CheckoutTest.java
│ │ ├── ConfigurationsTest.java
│ │ ├── CopyTest.java
│ │ ├── FrozenNodeTest.java
│ │ ├── GetContainingHistoryTest.java
│ │ ├── GetCreatedTest.java
│ │ ├── GetPredecessorsTest.java
│ │ ├── GetReferencesNodeTest.java
│ │ ├── GetVersionableUUIDTest.java
│ │ ├── MergeActivityTest.java
│ │ ├── MergeCancelMergeTest.java
│ │ ├── MergeCheckedoutSubNodeTest.java
│ │ ├── MergeDoneMergeTest.java
│ │ ├── MergeNodeIteratorTest.java
│ │ ├── MergeNodeTest.java
│ │ ├── MergeNonVersionableSubNodeTest.java
│ │ ├── MergeShallowTest.java
│ │ ├── MergeSubNodeTest.java
│ │ ├── OnParentVersionAbortTest.java
│ │ ├── OnParentVersionComputeTest.java
│ │ ├── OnParentVersionCopyTest.java
│ │ ├── OnParentVersionIgnoreTest.java
│ │ ├── OnParentVersionInitializeTest.java
│ │ ├── RemoveVersionTest.java
│ │ ├── RestoreTest.java
│ │ ├── SessionMoveVersionExceptionTest.java
│ │ ├── TestAll.java
│ │ ├── VersionGraphTest.java
│ │ ├── VersionHistoryTest.java
│ │ ├── VersionLabelTest.java
│ │ ├── VersionStorageTest.java
│ │ ├── VersionTest.java
│ │ ├── WorkspaceMoveVersionExceptionTest.java
│ │ ├── WorkspaceRestoreTest.java
│ │ └── simple/
│ │ ├── AbstractVersionTest.java
│ │ ├── BasicTest.java
│ │ ├── CheckinTest.java
│ │ ├── CheckoutTest.java
│ │ ├── CopyTest.java
│ │ ├── FrozenNodeTest.java
│ │ ├── RestoreTest.java
│ │ └── TestAll.java
│ └── resources/
│ └── org/
│ └── apache/
│ └── jackrabbit/
│ └── test/
│ └── api/
│ └── nodetype/
│ └── spec/
│ ├── mix-created.txt
│ ├── mix-etag.txt
│ ├── mix-language.txt
│ ├── mix-lastModified.txt
│ ├── mix-lifecycle.txt
│ ├── mix-lockable.txt
│ ├── mix-mimeType.txt
│ ├── mix-referenceable.txt
│ ├── mix-shareable.txt
│ ├── mix-simpleVersionable.txt
│ ├── mix-title.txt
│ ├── mix-versionable.txt
│ ├── nt-activity.txt
│ ├── nt-address.txt
│ ├── nt-base.txt
│ ├── nt-childNodeDefinition.txt
│ ├── nt-configuration.txt
│ ├── nt-file.txt
│ ├── nt-folder.txt
│ ├── nt-frozenNode.txt
│ ├── nt-hierarchyNode.txt
│ ├── nt-linkedFile.txt
│ ├── nt-nodeType.txt
│ ├── nt-propertyDefinition.txt
│ ├── nt-query.txt
│ ├── nt-resource.txt
│ ├── nt-unstructured.txt
│ ├── nt-version.txt
│ ├── nt-versionHistory.txt
│ ├── nt-versionLabels.txt
│ └── nt-versionedChild.txt
├── jackrabbit-jcr2dav/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── jcr2dav/
│ │ │ └── Jcr2davRepositoryFactory.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── services/
│ │ │ └── javax.jcr.RepositoryFactory
│ │ └── accessControlProvider.properties
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── jcr2dav/
│ │ ├── ConformanceTest.java
│ │ └── RepositoryStubImpl.java
│ └── resources/
│ ├── logback-test.xml
│ ├── protectedHandlersConfig.xml
│ ├── repository.xml
│ └── repositoryStubImpl.properties
├── jackrabbit-jcr2spi/
│ ├── README.txt
│ ├── assembly.xml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── appended-resources/
│ │ │ └── META-INF/
│ │ │ └── NOTICE
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── jcr2spi/
│ │ │ ├── ItemCache.java
│ │ │ ├── ItemCacheImpl.java
│ │ │ ├── ItemImpl.java
│ │ │ ├── ItemLifeCycleListener.java
│ │ │ ├── ItemManager.java
│ │ │ ├── ItemManagerImpl.java
│ │ │ ├── Jcr2spiRepositoryFactory.java
│ │ │ ├── JcrLockManager.java
│ │ │ ├── JcrVersionManager.java
│ │ │ ├── LazyItemIterator.java
│ │ │ ├── ManagerProvider.java
│ │ │ ├── NamespaceRegistryImpl.java
│ │ │ ├── NamespaceStorage.java
│ │ │ ├── NodeImpl.java
│ │ │ ├── PropertyImpl.java
│ │ │ ├── RepositoryImpl.java
│ │ │ ├── SessionImpl.java
│ │ │ ├── SessionListener.java
│ │ │ ├── StaleProperty.java
│ │ │ ├── WorkspaceImpl.java
│ │ │ ├── WorkspaceManager.java
│ │ │ ├── XASession.java
│ │ │ ├── XASessionImpl.java
│ │ │ ├── config/
│ │ │ │ ├── CacheBehaviour.java
│ │ │ │ ├── RepositoryConfig.java
│ │ │ │ └── package-info.java
│ │ │ ├── hierarchy/
│ │ │ │ ├── ChildNodeAttic.java
│ │ │ │ ├── ChildNodeEntries.java
│ │ │ │ ├── ChildNodeEntriesImpl.java
│ │ │ │ ├── ChildPropertyEntries.java
│ │ │ │ ├── ChildPropertyEntriesImpl.java
│ │ │ │ ├── EntryFactory.java
│ │ │ │ ├── EntryValidation.java
│ │ │ │ ├── HierarchyEntry.java
│ │ │ │ ├── HierarchyEntryImpl.java
│ │ │ │ ├── HierarchyEventListener.java
│ │ │ │ ├── HierarchyManager.java
│ │ │ │ ├── HierarchyManagerImpl.java
│ │ │ │ ├── LinkedEntries.java
│ │ │ │ ├── NodeEntry.java
│ │ │ │ ├── NodeEntryImpl.java
│ │ │ │ ├── PropertyEntry.java
│ │ │ │ ├── PropertyEntryImpl.java
│ │ │ │ └── UniqueIdResolver.java
│ │ │ ├── lock/
│ │ │ │ ├── LockManagerImpl.java
│ │ │ │ └── LockStateManager.java
│ │ │ ├── nodetype/
│ │ │ │ ├── BitsetENTCacheImpl.java
│ │ │ │ ├── DefinitionValidator.java
│ │ │ │ ├── EffectiveNodeType.java
│ │ │ │ ├── EffectiveNodeTypeCache.java
│ │ │ │ ├── EffectiveNodeTypeImpl.java
│ │ │ │ ├── EffectiveNodeTypeProvider.java
│ │ │ │ ├── ItemDefinitionProvider.java
│ │ │ │ ├── ItemDefinitionProviderImpl.java
│ │ │ │ ├── NodeTypeCache.java
│ │ │ │ ├── NodeTypeDefinitionProvider.java
│ │ │ │ ├── NodeTypeImpl.java
│ │ │ │ ├── NodeTypeManagerImpl.java
│ │ │ │ ├── NodeTypeRegistry.java
│ │ │ │ ├── NodeTypeRegistryImpl.java
│ │ │ │ └── NodeTypeRegistryListener.java
│ │ │ ├── observation/
│ │ │ │ ├── EventImpl.java
│ │ │ │ ├── EventJournalImpl.java
│ │ │ │ ├── FilteredEventIterator.java
│ │ │ │ ├── InternalEventListener.java
│ │ │ │ └── ObservationManagerImpl.java
│ │ │ ├── operation/
│ │ │ │ ├── AbstractCopy.java
│ │ │ │ ├── AbstractOperation.java
│ │ │ │ ├── AbstractRemove.java
│ │ │ │ ├── AddLabel.java
│ │ │ │ ├── AddNode.java
│ │ │ │ ├── AddProperty.java
│ │ │ │ ├── Checkin.java
│ │ │ │ ├── Checkout.java
│ │ │ │ ├── Checkpoint.java
│ │ │ │ ├── Clone.java
│ │ │ │ ├── Copy.java
│ │ │ │ ├── CreateActivity.java
│ │ │ │ ├── CreateConfiguration.java
│ │ │ │ ├── IgnoreOperation.java
│ │ │ │ ├── LockOperation.java
│ │ │ │ ├── LockRefresh.java
│ │ │ │ ├── LockRelease.java
│ │ │ │ ├── Merge.java
│ │ │ │ ├── Move.java
│ │ │ │ ├── Operation.java
│ │ │ │ ├── OperationVisitor.java
│ │ │ │ ├── Remove.java
│ │ │ │ ├── RemoveActivity.java
│ │ │ │ ├── RemoveLabel.java
│ │ │ │ ├── RemoveVersion.java
│ │ │ │ ├── ReorderNodes.java
│ │ │ │ ├── ResolveMergeConflict.java
│ │ │ │ ├── Restore.java
│ │ │ │ ├── SetMixin.java
│ │ │ │ ├── SetPrimaryType.java
│ │ │ │ ├── SetPropertyValue.java
│ │ │ │ ├── SetTree.java
│ │ │ │ ├── TransientOperation.java
│ │ │ │ ├── TransientOperationVisitor.java
│ │ │ │ ├── Update.java
│ │ │ │ └── WorkspaceImport.java
│ │ │ ├── package-info.java
│ │ │ ├── query/
│ │ │ │ ├── NodeIteratorImpl.java
│ │ │ │ ├── QueryImpl.java
│ │ │ │ ├── QueryManagerImpl.java
│ │ │ │ ├── QueryObjectModelImpl.java
│ │ │ │ ├── QueryResultImpl.java
│ │ │ │ ├── RowIteratorImpl.java
│ │ │ │ └── ScoreNodeIterator.java
│ │ │ ├── security/
│ │ │ │ ├── AccessManager.java
│ │ │ │ ├── SecurityConstants.java
│ │ │ │ └── authorization/
│ │ │ │ ├── AccessControlProvider.java
│ │ │ │ ├── AccessControlProviderStub.java
│ │ │ │ ├── PrivilegeImpl.java
│ │ │ │ └── jackrabbit/
│ │ │ │ ├── AccessControlConstants.java
│ │ │ │ └── acl/
│ │ │ │ ├── AccessControlEntryImpl.java
│ │ │ │ ├── AccessControlListImpl.java
│ │ │ │ ├── AccessControlManagerImpl.java
│ │ │ │ └── AccessControlProviderImpl.java
│ │ │ ├── state/
│ │ │ │ ├── AbstractItemStateFactory.java
│ │ │ │ ├── ChangeLog.java
│ │ │ │ ├── ItemState.java
│ │ │ │ ├── ItemStateCreationListener.java
│ │ │ │ ├── ItemStateFactory.java
│ │ │ │ ├── ItemStateLifeCycleListener.java
│ │ │ │ ├── ItemStateValidator.java
│ │ │ │ ├── NodeState.java
│ │ │ │ ├── PropertyState.java
│ │ │ │ ├── SessionItemStateManager.java
│ │ │ │ ├── Status.java
│ │ │ │ ├── TransientISFactory.java
│ │ │ │ ├── TransientItemStateFactory.java
│ │ │ │ ├── TransientItemStateManager.java
│ │ │ │ ├── UpdatableItemStateManager.java
│ │ │ │ └── WorkspaceItemStateFactory.java
│ │ │ ├── util/
│ │ │ │ ├── LogUtil.java
│ │ │ │ ├── ReferenceChangeTracker.java
│ │ │ │ └── StateUtility.java
│ │ │ ├── version/
│ │ │ │ ├── VersionHistoryImpl.java
│ │ │ │ ├── VersionImpl.java
│ │ │ │ ├── VersionManager.java
│ │ │ │ └── VersionManagerImpl.java
│ │ │ └── xml/
│ │ │ ├── DocViewImportHandler.java
│ │ │ ├── ImportHandler.java
│ │ │ ├── Importer.java
│ │ │ ├── SessionImporter.java
│ │ │ ├── SysViewImportHandler.java
│ │ │ ├── TargetImportHandler.java
│ │ │ └── WorkspaceContentHandler.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── javax.jcr.RepositoryFactory
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── jcr2spi/
│ │ ├── AbstractJCR2SPITest.java
│ │ ├── AbstractMoveTest.java
│ │ ├── AbstractMoveTreeTest.java
│ │ ├── AbstractRepositoryConfig.java
│ │ ├── AccessByRelativePathTest.java
│ │ ├── AddNewPropertyTest.java
│ │ ├── AddNodeTest.java
│ │ ├── AddPropertyTest.java
│ │ ├── BinaryTest.java
│ │ ├── CopyMoveToJsonTest.java
│ │ ├── ExternalModificationTest.java
│ │ ├── GetItemsTest.java
│ │ ├── GetPropertyTest.java
│ │ ├── HierarchyNodeTest.java
│ │ ├── IsSameTest.java
│ │ ├── ItemInfoStore.java
│ │ ├── Jcr2SpiTestSuite.java
│ │ ├── LazyItemIteratorTest.java
│ │ ├── LoginTest.java
│ │ ├── MixinModificationTest.java
│ │ ├── MoveCombinedTest.java
│ │ ├── MoveMultipleTest.java
│ │ ├── MoveNewTreeTest.java
│ │ ├── MoveReferenceableTest.java
│ │ ├── MoveSNSTest.java
│ │ ├── MoveTest.java
│ │ ├── MoveToNewTest.java
│ │ ├── MoveTreeTest.java
│ │ ├── MultiValuedPropertyTest.java
│ │ ├── NodeOrderTest.java
│ │ ├── PropertyLengthTest.java
│ │ ├── RefreshFalseTest.java
│ │ ├── RefreshMovedTest.java
│ │ ├── RefreshTrueTest.java
│ │ ├── RemoveItemTest.java
│ │ ├── RemoveMovedNodeTest.java
│ │ ├── RemoveNewNodeTest.java
│ │ ├── RemoveNodeTest.java
│ │ ├── RemovePropertyTest.java
│ │ ├── RemoveReferenceableNodeTest.java
│ │ ├── RemoveSNSTest.java
│ │ ├── RenameTest.java
│ │ ├── ReorderMixedTest.java
│ │ ├── ReorderMoveTest.java
│ │ ├── ReorderNewAndSavedTest.java
│ │ ├── ReorderNewSNSTest.java
│ │ ├── ReorderNewTest.java
│ │ ├── ReorderReferenceableSNSTest.java
│ │ ├── ReorderSNSTest.java
│ │ ├── ReorderTest.java
│ │ ├── ReplaceNodeTest.java
│ │ ├── RevertMoveTest.java
│ │ ├── SNSIndexTest.java
│ │ ├── SingleValuedPropertyTest.java
│ │ ├── TestAll.java
│ │ ├── TestConnect.java
│ │ ├── UpdateTest.java
│ │ ├── WorkspaceMoveTest.java
│ │ ├── WorkspaceTest.java
│ │ ├── benchmark/
│ │ │ └── ReadPerformanceTest.java
│ │ ├── hierarchy/
│ │ │ └── LinkedEntriesTest.java
│ │ ├── lock/
│ │ │ ├── AbstractLockTest.java
│ │ │ ├── DeepLockTest.java
│ │ │ ├── OpenScopedLockTest.java
│ │ │ ├── SessionScopedLockTest.java
│ │ │ └── TestAll.java
│ │ ├── name/
│ │ │ ├── NamespaceRegistryTest.java
│ │ │ └── TestAll.java
│ │ ├── nodetype/
│ │ │ ├── AddMixinTest.java
│ │ │ ├── MandatoryItemTest.java
│ │ │ ├── NodeTypeImplTest.java
│ │ │ ├── NodeTypeManagerImplTest.java
│ │ │ ├── RemoveMixinTest.java
│ │ │ └── TestAll.java
│ │ ├── observation/
│ │ │ ├── ObservationTest.java
│ │ │ └── TestAll.java
│ │ ├── query/
│ │ │ ├── QueryTest.java
│ │ │ └── TestAll.java
│ │ ├── security/
│ │ │ ├── Jcr2SpiSecurityTestSuite.java
│ │ │ └── authorization/
│ │ │ └── jackrabbit/
│ │ │ └── acl/
│ │ │ ├── AccessControlListImplTest.java
│ │ │ ├── AccessControlManagerImplTest.java
│ │ │ └── TestAll.java
│ │ ├── version/
│ │ │ ├── LabelTest.java
│ │ │ └── TestAll.java
│ │ └── xml/
│ │ ├── SessionImportTest.java
│ │ └── TestAll.java
│ └── resources/
│ ├── accessControlProvider.properties
│ ├── logback-test.xml
│ └── org/
│ └── apache/
│ └── jackrabbit/
│ └── jcr2spi/
│ └── default-nodetypes.cnd
├── jackrabbit-parent/
│ └── pom.xml
├── jackrabbit-spi/
│ ├── README.txt
│ ├── assembly.xml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── appended-resources/
│ │ │ └── META-INF/
│ │ │ └── NOTICE
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── spi/
│ │ ├── Batch.java
│ │ ├── ChildInfo.java
│ │ ├── Event.java
│ │ ├── EventBundle.java
│ │ ├── EventFilter.java
│ │ ├── IdFactory.java
│ │ ├── ItemId.java
│ │ ├── ItemInfo.java
│ │ ├── ItemInfoCache.java
│ │ ├── LockInfo.java
│ │ ├── Name.java
│ │ ├── NameFactory.java
│ │ ├── NodeId.java
│ │ ├── NodeInfo.java
│ │ ├── Path.java
│ │ ├── PathFactory.java
│ │ ├── PrivilegeDefinition.java
│ │ ├── PropertyId.java
│ │ ├── PropertyInfo.java
│ │ ├── QItemDefinition.java
│ │ ├── QNodeDefinition.java
│ │ ├── QNodeTypeDefinition.java
│ │ ├── QPropertyDefinition.java
│ │ ├── QValue.java
│ │ ├── QValueConstraint.java
│ │ ├── QValueFactory.java
│ │ ├── QueryInfo.java
│ │ ├── QueryResultRow.java
│ │ ├── RepositoryService.java
│ │ ├── RepositoryServiceFactory.java
│ │ ├── SessionInfo.java
│ │ ├── Subscription.java
│ │ ├── Tree.java
│ │ ├── XASessionInfo.java
│ │ └── package-info.java
│ └── test/
│ └── java/
│ └── org/
│ └── apache/
│ └── jackrabbit/
│ └── spi/
│ ├── AbstractSPITest.java
│ ├── Helper.java
│ ├── QValueFactoryTest.java
│ ├── QValueTest.java
│ ├── RepositoryServiceStub.java
│ ├── RepositoryServiceTest.java
│ ├── SessionInfoTest.java
│ └── TestAll.java
├── jackrabbit-spi-commons/
│ ├── README.txt
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── appended-resources/
│ │ │ └── META-INF/
│ │ │ ├── LICENSE
│ │ │ └── NOTICE
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── jackrabbit/
│ │ │ └── spi/
│ │ │ └── commons/
│ │ │ ├── AbstractReadableRepositoryService.java
│ │ │ ├── AbstractRepositoryService.java
│ │ │ ├── AdditionalEventInfo.java
│ │ │ ├── ChildInfoImpl.java
│ │ │ ├── EventBundleImpl.java
│ │ │ ├── EventFilterImpl.java
│ │ │ ├── EventImpl.java
│ │ │ ├── ItemInfoBuilder.java
│ │ │ ├── ItemInfoCacheImpl.java
│ │ │ ├── ItemInfoImpl.java
│ │ │ ├── LockInfoImpl.java
│ │ │ ├── NodeInfoImpl.java
│ │ │ ├── PropertyInfoImpl.java
│ │ │ ├── QItemDefinitionImpl.java
│ │ │ ├── QNodeDefinitionImpl.java
│ │ │ ├── QNodeTypeDefinitionImpl.java
│ │ │ ├── QPropertyDefinitionImpl.java
│ │ │ ├── SerializableBatch.java
│ │ │ ├── SessionExtensions.java
│ │ │ ├── SessionInfoImpl.java
│ │ │ ├── batch/
│ │ │ │ ├── AbstractChangeLog.java
│ │ │ │ ├── ChangeLog.java
│ │ │ │ ├── ChangeLogImpl.java
│ │ │ │ ├── ConsolidatingChangeLog.java
│ │ │ │ ├── Operation.java
│ │ │ │ ├── Operations.java
│ │ │ │ └── package-info.java
│ │ │ ├── conversion/
│ │ │ │ ├── CachingNameResolver.java
│ │ │ │ ├── CachingPathResolver.java
│ │ │ │ ├── DefaultNamePathResolver.java
│ │ │ │ ├── GenerationalCache.java
│ │ │ │ ├── IdentifierResolver.java
│ │ │ │ ├── IllegalNameException.java
│ │ │ │ ├── MalformedPathException.java
│ │ │ │ ├── NameException.java
│ │ │ │ ├── NameParser.java
│ │ │ │ ├── NamePathResolver.java
│ │ │ │ ├── NameResolver.java
│ │ │ │ ├── ParsingNameResolver.java
│ │ │ │ ├── ParsingPathResolver.java
│ │ │ │ ├── PathParser.java
│ │ │ │ ├── PathResolver.java
│ │ │ │ └── package-info.java
│ │ │ ├── identifier/
│ │ │ │ ├── AbstractIdFactory.java
│ │ │ │ ├── IdFactoryImpl.java
│ │ │ │ └── package-info.java
│ │ │ ├── iterator/
│ │ │ │ ├── BoundedIterator.java
│ │ │ │ ├── Iterators.java
│ │ │ │ ├── Predicate.java
│ │ │ │ ├── Predicates.java
│ │ │ │ ├── Transformer.java
│ │ │ │ └── package-info.java
│ │ │ ├── lock/
│ │ │ │ ├── Locked.java
│ │ │ │ └── package-info.java
│ │ │ ├── logging/
│ │ │ │ ├── AbstractLogger.java
│ │ │ │ ├── BatchLogger.java
│ │ │ │ ├── IdFactoryLogger.java
│ │ │ │ ├── LogWriter.java
│ │ │ │ ├── LogWriterProvider.java
│ │ │ │ ├── NameFactoryLogger.java
│ │ │ │ ├── PathFactoryLogger.java
│ │ │ │ ├── QValueFactoryLogger.java
│ │ │ │ ├── RepositoryServiceLogger.java
│ │ │ │ ├── SessionInfoLogger.java
│ │ │ │ ├── Slf4jLogWriter.java
│ │ │ │ ├── Slf4jLogWriterProvider.java
│ │ │ │ ├── SpiLoggerFactory.java
│ │ │ │ ├── WriterLogWriter.java
│ │ │ │ ├── WriterLogWriterProvider.java
│ │ │ │ └── package-info.java
│ │ │ ├── name/
│ │ │ │ ├── AbstractPath.java
│ │ │ │ ├── CurrentPath.java
│ │ │ │ ├── HashCache.java
│ │ │ │ ├── IdentifierPath.java
│ │ │ │ ├── MatchResult.java
│ │ │ │ ├── Matcher.java
│ │ │ │ ├── NameConstants.java
│ │ │ │ ├── NameFactoryImpl.java
│ │ │ │ ├── NamePath.java
│ │ │ │ ├── ParentPath.java
│ │ │ │ ├── PathBuilder.java
│ │ │ │ ├── PathFactoryImpl.java
│ │ │ │ ├── PathMap.java
│ │ │ │ ├── Pattern.java
│ │ │ │ ├── RelativePath.java
│ │ │ │ ├── RootPath.java
│ │ │ │ └── package-info.java
│ │ │ ├── namespace/
│ │ │ │ ├── AbstractNamespaceResolver.java
│ │ │ │ ├── NamespaceAdder.java
│ │ │ │ ├── NamespaceExtractor.java
│ │ │ │ ├── NamespaceListener.java
│ │ │ │ ├── NamespaceMapping.java
│ │ │ │ ├── NamespaceResolver.java
│ │ │ │ ├── RegistryNamespaceResolver.java
│ │ │ │ ├── SessionNamespaceResolver.java
│ │ │ │ └── package-info.java
│ │ │ ├── nodetype/
│ │ │ │ ├── AbstractItemDefinitionTemplate.java
│ │ │ │ ├── AbstractNodeType.java
│ │ │ │ ├── AbstractNodeTypeManager.java
│ │ │ │ ├── InvalidConstraintException.java
│ │ │ │ ├── ItemDefinitionImpl.java
│ │ │ │ ├── NodeDefinitionImpl.java
│ │ │ │ ├── NodeDefinitionTemplateImpl.java
│ │ │ │ ├── NodeTypeConflictException.java
│ │ │ │ ├── NodeTypeDefDiff.java
│ │ │ │ ├── NodeTypeDefinitionFactory.java
│ │ │ │ ├── NodeTypeDefinitionImpl.java
│ │ │ │ ├── NodeTypeStorage.java
│ │ │ │ ├── NodeTypeStorageImpl.java
│ │ │ │ ├── NodeTypeTemplateImpl.java
│ │ │ │ ├── PropertyDefinitionImpl.java
│ │ │ │ ├── PropertyDefinitionTemplateImpl.java
│ │ │ │ ├── QDefinitionBuilderFactory.java
│ │ │ │ ├── QItemDefinitionBuilder.java
│ │ │ │ ├── QNodeDefinitionBuilder.java
│ │ │ │ ├── QNodeTypeDefinitionBuilder.java
│ │ │ │ ├── QPropertyDefinitionBuilder.java
│ │ │ │ ├── compact/
│ │ │ │ │ ├── CompactNodeTypeDefWriter.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── constraint/
│ │ │ │ │ ├── BooleanConstraint.java
│ │ │ │ │ ├── DateConstraint.java
│ │ │ │ │ ├── NameConstraint.java
│ │ │ │ │ ├── NumericConstraint.java
│ │ │ │ │ ├── PathConstraint.java
│ │ │ │ │ ├── ReferenceConstraint.java
│ │ │ │ │ ├── StringConstraint.java
│ │ │ │ │ ├── ValueConstraint.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── privilege/
│ │ │ │ ├── ParseException.java
│ │ │ │ ├── PrivilegeDefinitionImpl.java
│ │ │ │ ├── PrivilegeDefinitionReader.java
│ │ │ │ ├── PrivilegeDefinitionWriter.java
│ │ │ │ ├── PrivilegeHandler.java
│ │ │ │ ├── PrivilegeXmlHandler.java
│ │ │ │ └── package-info.java
│ │ │ ├── query/
│ │ │ │ ├── AndQueryNode.java
│ │ │ │ ├── ConstantNameProvider.java
│ │ │ │ ├── DefaultQueryNodeFactory.java
│ │ │ │ ├── DefaultQueryNodeVisitor.java
│ │ │ │ ├── DerefQueryNode.java
│ │ │ │ ├── ExactQueryNode.java
│ │ │ │ ├── LocationStepQueryNode.java
│ │ │ │ ├── NAryQueryNode.java
│ │ │ │ ├── NodeTypeQueryNode.java
│ │ │ │ ├── NotQueryNode.java
│ │ │ │ ├── OrQueryNode.java
│ │ │ │ ├── OrderQueryNode.java
│ │ │ │ ├── PathQueryNode.java
│ │ │ │ ├── PropertyFunctionQueryNode.java
│ │ │ │ ├── QueryConstants.java
│ │ │ │ ├── QueryNode.java
│ │ │ │ ├── QueryNodeFactory.java
│ │ │ │ ├── QueryNodeVisitor.java
│ │ │ │ ├── QueryParser.java
│ │ │ │ ├── QueryRootNode.java
│ │ │ │ ├── QueryTreeBuilder.java
│ │ │ │ ├── QueryTreeBuilderRegistry.java
│ │ │ │ ├── QueryTreeDump.java
│ │ │ │ ├── RelationQueryNode.java
│ │ │ │ ├── TextsearchQueryNode.java
│ │ │ │ ├── TraversingQueryNodeVisitor.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── qom/
│ │ │ │ │ ├── AbstractQOMNode.java
│ │ │ │ │ ├── AndImpl.java
│ │ │ │ │ ├── BindVariableValueImpl.java
│ │ │ │ │ ├── ChildNodeImpl.java
│ │ │ │ │ ├── ChildNodeJoinConditionImpl.java
│ │ │ │ │ ├── ColumnImpl.java
│ │ │ │ │ ├── ComparisonImpl.java
│ │ │ │ │ ├── ConstraintImpl.java
│ │ │ │ │ ├── DefaultQOMTreeVisitor.java
│ │ │ │ │ ├── DefaultTraversingQOMTreeVisitor.java
│ │ │ │ │ ├── DescendantNodeImpl.java
│ │ │ │ │ ├── DescendantNodeJoinConditionImpl.java
│ │ │ │ │ ├── DynamicOperandImpl.java
│ │ │ │ │ ├── EquiJoinConditionImpl.java
│ │ │ │ │ ├── FullTextSearchImpl.java
│ │ │ │ │ ├── FullTextSearchScoreImpl.java
│ │ │ │ │ ├── JoinConditionImpl.java
│ │ │ │ │ ├── JoinImpl.java
│ │ │ │ │ ├── LengthImpl.java
│ │ │ │ │ ├── LiteralImpl.java
│ │ │ │ │ ├── LowerCaseImpl.java
│ │ │ │ │ ├── NodeLocalNameImpl.java
│ │ │ │ │ ├── NodeNameImpl.java
│ │ │ │ │ ├── NotImpl.java
│ │ │ │ │ ├── OrImpl.java
│ │ │ │ │ ├── OrderingImpl.java
│ │ │ │ │ ├── PropertyExistenceImpl.java
│ │ │ │ │ ├── PropertyValueImpl.java
│ │ │ │ │ ├── QOMTreeVisitor.java
│ │ │ │ │ ├── QueryObjectModelFactoryImpl.java
│ │ │ │ │ ├── QueryObjectModelTree.java
│ │ │ │ │ ├── SameNodeImpl.java
│ │ │ │ │ ├── SameNodeJoinConditionImpl.java
│ │ │ │ │ ├── SelectorImpl.java
│ │ │ │ │ ├── SourceImpl.java
│ │ │ │ │ ├── StaticOperandImpl.java
│ │ │ │ │ ├── UpperCaseImpl.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── sql/
│ │ │ │ │ ├── ASTAndExpression.java
│ │ │ │ │ ├── ASTAscendingOrderSpec.java
│ │ │ │ │ ├── ASTBracketExpression.java
│ │ │ │ │ ├── ASTContainsExpression.java
│ │ │ │ │ ├── ASTDescendingOrderSpec.java
│ │ │ │ │ ├── ASTExcerptFunction.java
│ │ │ │ │ ├── ASTFromClause.java
│ │ │ │ │ ├── ASTIdentifier.java
│ │ │ │ │ ├── ASTLiteral.java
│ │ │ │ │ ├── ASTLowerFunction.java
│ │ │ │ │ ├── ASTNotExpression.java
│ │ │ │ │ ├── ASTOrExpression.java
│ │ │ │ │ ├── ASTOrderByClause.java
│ │ │ │ │ ├── ASTOrderSpec.java
│ │ │ │ │ ├── ASTPredicate.java
│ │ │ │ │ ├── ASTQuery.java
│ │ │ │ │ ├── ASTSelectList.java
│ │ │ │ │ ├── ASTUpperFunction.java
│ │ │ │ │ ├── ASTWhereClause.java
│ │ │ │ │ ├── DefaultParserVisitor.java
│ │ │ │ │ ├── JCRSQLParser.java
│ │ │ │ │ ├── JCRSQLParserConstants.java
│ │ │ │ │ ├── JCRSQLParserTokenManager.java
│ │ │ │ │ ├── JCRSQLParserTreeConstants.java
│ │ │ │ │ ├── JCRSQLParserVisitor.java
│ │ │ │ │ ├── JCRSQLQueryBuilder.java
│ │ │ │ │ ├── JJTJCRSQLParserState.java
│ │ │ │ │ ├── Node.java
│ │ │ │ │ ├── ParseException.java
│ │ │ │ │ ├── QueryBuilder.java
│ │ │ │ │ ├── QueryFormat.java
│ │ │ │ │ ├── SimpleCharStream.java
│ │ │ │ │ ├── SimpleNode.java
│ │ │ │ │ ├── Token.java
│ │ │ │ │ ├── TokenMgrError.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── sql2/
│ │ │ │ │ ├── Parser.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── xpath/
│ │ │ │ ├── JJTXPathState.java
│ │ │ │ ├── Node.java
│ │ │ │ ├── ParseException.java
│ │ │ │ ├── QueryBuilder.java
│ │ │ │ ├── QueryFormat.java
│ │ │ │ ├── SimpleCharStream.java
│ │ │ │ ├── SimpleNode.java
│ │ │ │ ├── Token.java
│ │ │ │ ├── TokenMgrError.java
│ │ │ │ ├── XPath.java
│ │ │ │ ├── XPathConstants.java
│ │ │ │ ├── XPathQueryBuilder.java
│ │ │ │ ├── XPathTokenManager.java
│ │ │ │ ├── XPathTreeConstants.java
│ │ │ │ ├── XPathVisitor.java
│ │ │ │ └── package-info.java
│ │ │ ├── tree/
│ │ │ │ ├── AbstractTree.java
│ │ │ │ └── package-info.java
│ │ │ ├── util/
│ │ │ │ ├── StringCache.java
│ │ │ │ └── package-info.java
│ │ │ └── value/
│ │ │ ├── AbstractQValue.java
│ │ │ ├── AbstractQValueFactory.java
│ │ │ ├── DefaultQValue.java
│ │ │ ├── QValueFactoryImpl.java
│ │ │ ├── QValueValue.java
│ │ │ ├── ValueFactoryQImpl.java
│ │ │ ├── ValueFormat.java
│ │ │ └── package-info.java
│ │ ├── javacc/
│ │ │ ├── sql/
│ │ │ │ └── JCRSQL.jjt
│ │ │ └── xpath/
│ │ │ ├── XPath.jjt
│ │ │ ├── javacc.xsl
│ │ │ ├── jjtree-jackrabbit.xsl
│ │ │ ├── jjtree.xsl
│ │ │ ├── strip.xsl
│ │ │ └── xpath-grammar.xml
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── org.apache.jackrabbit.spi.commons.query.QueryTreeBuilder
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── jackrabbit/
│ │ └── spi/
│ │ └── commons/
│ │ ├── batch/
│ │ │ └── ConsolidatedBatchTest.java
│ │ ├── conversion/
│ │ │ ├── DummyIdentifierResolver.java
│ │ │ ├── DummyNamespaceResolver.java
│ │ │ ├── NameParserTest.java
│ │ │ ├── ParsingNameResolverTest.java
│ │ │ ├── ParsingPathResolverTest.java
│ │ │ └── PathParserTest.java
│ │ ├── identifier/
│ │ │ └── SerializationTest.java
│ │ ├── name/
│ │ │ ├── ElementTest.java
│ │ │ ├── JcrName.java
│ │ │ ├── JcrPath.java
│ │ │ ├── MatcherTest.java
│ │ │ ├── NameFactoryTest.java
│ │ │ ├── PathBuilderTest.java
│ │ │ ├── PathFactoryTest.java
│ │ │ ├── PathTest.java
│ │ │ └── PatternTest.java
│ │ ├── nodetype/
│ │ │ ├── NodeDefinitionTemplateImplTest.java
│ │ │ ├── NodeTypeDefDiffTest.java
│ │ │ ├── PropertyDefinitionTemplateImplTest.java
│ │ │ ├── TestAll.java
│ │ │ ├── compact/
│ │ │ │ └── CompactNodeTypeDefTest.java
│ │ │ └── constraint/
│ │ │ ├── BooleanConstraintTest.java
│ │ │ ├── DateConstraintTest.java
│ │ │ ├── NameConstraintTest.java
│ │ │ ├── NumericConstraintTest.java
│ │ │ ├── PathConstraintTest.java
│ │ │ ├── ReferenceConstraintTest.java
│ │ │ ├── StringConstraintTest.java
│ │ │ └── ValueConstraintTest.java
│ │ ├── privilege/
│ │ │ ├── PrivilegeHandlerTest.java
│ │ │ └── TestAll.java
│ │ ├── query/
│ │ │ ├── sql2/
│ │ │ │ └── ParserTest.java
│ │ │ └── xpath/
│ │ │ ├── QueryFormatTest.java
│ │ │ └── XPathOrderByTest.java
│ │ └── value/
│ │ ├── QValueTest.java
│ │ └── ValueFormatTest.java
│ └── resources/
│ ├── cnd-reader-test-input.cnd
│ ├── logback-test.xml
│ └── org/
│ └── apache/
│ └── jackrabbit/
│ └── spi/
│ └── commons/
│ ├── privilege/
│
================================================
FILE CONTENTS
================================================
================================================
FILE: .asf.yaml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# https://cwiki.apache.org/confluence/x/7guYBw
github:
description: "Apache Jackrabbit"
homepage: "https://jackrabbit.apache.org/"
labels:
- java
- jackrabbit
- jcr
- repository
- database
autolink_jira:
- OAK
- JCR
- JCRVLT
- SLING
- FELIX
protected_branches:
trunk: {}
================================================
FILE: .github/workflows/build.yml
================================================
# ~ Licensed to the Apache Software Foundation (ASF) under one
# ~ or more contributor license agreements. See the NOTICE file
# ~ distributed with this work for additional information
# ~ regarding copyright ownership. The ASF licenses this file
# ~ to you under the Apache License, Version 2.0 (the
# ~ "License"); you may not use this file except in compliance
# ~ with the License. You may obtain a copy of the License at
# ~
# ~ http://www.apache.org/licenses/LICENSE-2.0
# ~
# ~ Unless required by applicable law or agreed to in writing,
# ~ software distributed under the License is distributed on an
# ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# ~ KIND, either express or implied. See the License for the
# ~ specific language governing permissions and limitations
# ~ under the License.
name: Build
on:
push:
branches:
- trunk
pull_request:
types: [opened, synchronize, reopened]
jobs:
build:
name: Maven Build
runs-on: ubuntu-latest
steps:
- name: Git clone
uses: actions/checkout@v6
- name: Set up JDK 11
uses: actions/setup-java@v5
with:
java-version: 11
distribution: temurin
cache: maven
server-id: apache.snapshots.https # Value of the distributionManagement/repository/id field of the pom.xml
server-username: MAVEN_APACHE_NEXUS_USERNAME # env variable for username in deploy
server-password: MAVEN_APACHE_NEXUS_PASSWORD # env variable for token in deploy
# sets environment variables to be used in subsequent steps: https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable
- name: Set environment variables
shell: bash
run: |
if [ "${{github.ref}}" = "refs/heads/trunk" ] && [ "${{github.event_name}}" = "push" ] && [ "${{github.repository_owner}}" = "apache" ]; then
echo 'Running on main branch of the canonical repo'
echo "MVN_ADDITIONAL_OPTS=-DdeployAtEnd=true" >> $GITHUB_ENV
echo "MVN_GOAL=deploy" >> $GITHUB_ENV
echo "MAVEN_APACHE_NEXUS_USERNAME=${{ secrets.NEXUS_USER }}" >> $GITHUB_ENV
echo "MAVEN_APACHE_NEXUS_PASSWORD=${{ secrets.NEXUS_PW }}" >> $GITHUB_ENV
else
echo 'Running outside main branch/canonical repo'
echo "MVN_ADDITIONAL_OPTS=" >> $GITHUB_ENV
echo "MVN_GOAL=install" >> $GITHUB_ENV
fi
- name: Build
# executing ITs requires installing artifacts to the local repository
run: mvn -B ${{ env.MVN_GOAL }} ${{ env.MVN_ADDITIONAL_OPTS }} -Pcoverage,integrationTesting,javadoc -Dorg.ops4j.pax.url.mvn.repositories="https://repo1.maven.org/maven2@id=central"
- name: Upload build result
uses: actions/upload-artifact@v6
with:
name: compiled-classes-and-coverage
# compare with https://docs.sonarsource.com/sonarqube-cloud/advanced-setup/languages/java/#java-analysis-and-bytecode
path: |
**/target/**/*.class
**/target/site/jacoco*/*.xml
# execute analysis in a separate job for better visualization and usage of matrix builds
# https://docs.sonarsource.com/sonarcloud/advanced-setup/ci-based-analysis/sonarscanner-for-maven/#invoking-the-goal
sonar:
name: SonarQube Analysis
runs-on: ubuntu-latest
needs: build
# not supported on forks, https://portal.productboard.com/sonarsource/1-sonarqube-cloud/c/50-sonarcloud-analyzes-external-pull-request
if: ${{ github.repository == 'apache/jackrabbit' }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
java-version: 21
distribution: temurin
cache: maven
- name: Download compiled classes
uses: actions/download-artifact@v4
with:
name: compiled-classes-and-coverage
- name: Cache SonarQube packages
uses: actions/cache@v5
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Analyze with SonarQube
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
run: SONAR_SCANNER_JAVA_OPTS="-Xmx8g" mvn -B org.sonarsource.scanner.maven:sonar-maven-plugin:5.5.0.6356:sonar -Dsonar.projectKey=apache_jackrabbit -Dsonar.organization=apache -Dsonar.scanner.skipJreProvisioning=true
================================================
FILE: .gitignore
================================================
target
.classpath
.project
.settings
*.iml
*.ipr
*.iws
.idea
================================================
FILE: .mvn/README.md
================================================
Used for determining [`maven.multiModuleProjectDirectory`](https://issues.apache.org/jira/browse/MNG-5786).
================================================
FILE: LICENSE.txt
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
APACHE JACKRABBIT SUBCOMPONENTS
Apache Jackrabbit includes parts with separate copyright notices and license
terms. Your use of these subcomponents is subject to the terms and conditions
of the following licenses:
XPath 2.0/XQuery 1.0 Parser:
http://www.w3.org/2002/11/xquery-xpath-applets/xgrammar.zip
Copyright (C) 2002 World Wide Web Consortium, (Massachusetts Institute of
Technology, European Research Consortium for Informatics and Mathematics,
Keio University). All Rights Reserved.
This work is distributed under the W3C(R) Software License 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.
W3C(R) SOFTWARE NOTICE AND LICENSE
http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
This work (and included software, documentation such as READMEs, or
other related items) is being provided by the copyright holders under
the following license. By obtaining, using and/or copying this work,
you (the licensee) agree that you have read, understood, and will comply
with the following terms and conditions.
Permission to copy, modify, and distribute this software and its
documentation, with or without modification, for any purpose and
without fee or royalty is hereby granted, provided that you include
the following on ALL copies of the software and documentation or
portions thereof, including modifications:
1. The full text of this NOTICE in a location viewable to users
of the redistributed or derivative work.
2. Any pre-existing intellectual property disclaimers, notices,
or terms and conditions. If none exist, the W3C Software Short
Notice should be included (hypertext is preferred, text is
permitted) within the body of any redistributed or derivative code.
3. Notice of any changes or modifications to the files, including
the date changes were made. (We recommend you provide URIs to the
location from which the code is derived.)
THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
DOCUMENTATION.
The name and trademarks of copyright holders may NOT be used in
advertising or publicity pertaining to the software without specific,
written prior permission. Title to copyright in this software and
any associated documentation will at all times remain with
copyright holders.
================================================
FILE: NOTICE.txt
================================================
Apache Jackrabbit
Copyright 2014 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
Based on source code originally developed by
Day Software (http://www.day.com/).
================================================
FILE: README.txt
================================================
=============================================================
Welcome to Apache Jackrabbit <http://jackrabbit.apache.org/>
=============================================================
Apache Jackrabbit is a fully conforming implementation of the
Content Repository for Java Technology API (JCR, specified in
JSR 170 and 283).
A content repository is a hierarchical content store with support
for structured and unstructured content, full text search,
versioning, transactions, observation, and more.
Apache Jackrabbit is a project of the Apache Software Foundation.
Building Jackrabbit
===================
You can build Jackrabbit like this:
mvn clean install
You need Maven 3 (or higher) with Java 11 (or higher) for the
build. For more instructions, please see the documentation at:
http://jackrabbit.apache.org/building-jackrabbit.html
License (see also LICENSE.txt)
==============================
Collective work: Copyright 2014 The Apache Software Foundation.
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Mailing Lists
=============
To get involved with the Apache Jackrabbit project, start by having a
look at our website and joining our mailing lists. For more details about
Jackrabbit mailing lists as well as links to list archives, please see:
http://jackrabbit.apache.org/mailing-lists.html
Latest development
==================
The latest Jackrabbit source code is available at
https://github.com/apache/jackrabbit
Credits
=======
See http://jackrabbit.apache.org/jackrabbit-team.html for the list of
Jackrabbit committers and main contributors.
SonarQube Cloud
===========
The CI builds automatically checks the code with SonarQube Cloud. The results
are accessible at
https://sonarcloud.io/project/overview?id=apache_jackrabbit
================================================
FILE: RELEASE-NOTES.txt
================================================
Release Notes -- Apache Jackrabbit -- Version 2.23.4-beta
Introduction
------------
This is Apache Jackrabbit(TM) 2.23.4-beta, a fully compliant implementation of the
Content Repository for Java(TM) Technology API, version 2.0 (JCR 2.0) as
specified in the Java Specification Request 283 (JSR 283).
Apache Jackrabbit 2.23.4-beta is an unstable release cut directly from
Jackrabbit trunk, with a focus on new features and other
improvements. For production use we recommend the latest stable 2.20.x
release.
Changes in Jackrabbit 2.23.4-beta
----------------------------------
Bug
[JCR-5226] - Base64 decoder does not handle input without padding correctly
[JCR-5229] - LockedWrapperTest.testSequenceWithSessionRefresh() may fail due to race conditions
Improvement
[JCR-4521] - upgrade to commons-dbcp2
Test
[JCR-4945] - Ensure OSGi-enabled Jackrabbit bundles deploy in environments featuring only Slf4j v2 or even Tika v2.9
Task
[JCR-5211] - package-version jcr2spi
[JCR-5216] - Update Jackrabbit Trunk to Oak 1.90.0
[JCR-5217] - Update Mockito dependency to 5.23.0
[JCR-5218] - webapp: bump htmlunit to 4.21.0
[JCR-5219] - set baseline comparisonVersion to latest stable (2.22.3)
[JCR-5223] - update Apache parent pom to version 37
[JCR-5224] - remove jackrabbit 2.0 compatibility and performance tests
[JCR-5230] - improve diagnostics in IndexingQueueTest
[JCR-5232] - Update Jackrabbit Trunk to Oak 1.92.0
For more detailed information about all the changes in this and other
Jackrabbit releases, please see the Jackrabbit issue tracker at
https://issues.apache.org/jira/browse/JCR
Release Contents
----------------
This release consists of a single source archive packaged as a zip file.
The archive can be unpacked with the jar tool from your JDK installation.
See the README.txt file for instructions on how to build this release.
The source archive is accompanied by an SHA512 checksum and a
PGP signature that you can use to verify the authenticity of your
download. The public key used for the PGP signature can be found at
https://www.apache.org/dist/jackrabbit/KEYS.
About Apache Jackrabbit
-----------------------
Apache Jackrabbit is a fully conforming implementation of the Content
Repository for Java Technology API (JCR). A content repository is a
hierarchical content store with support for structured and unstructured
content, full text search, versioning, transactions, observation, and
more.
For more information, visit http://jackrabbit.apache.org/
About The Apache Software Foundation
------------------------------------
Established in 1999, The Apache Software Foundation provides organizational,
legal, and financial support for more than 140 freely-available,
collaboratively-developed Open Source projects. The pragmatic Apache License
enables individual and commercial users to easily deploy Apache software;
the Foundation's intellectual property framework limits the legal exposure
of its 3,800+ contributors.
For more information, visit http://www.apache.org/
Trademarks
----------
Apache Jackrabbit, Jackrabbit, Apache, the Apache feather logo, and the Apache
Jackrabbit project logo are trademarks of The Apache Software Foundation.
================================================
FILE: assembly.xml
================================================
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<assembly>
<id>src</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory></outputDirectory>
<excludes>
<exclude>**/target/**</exclude>
<exclude>**/.*/**</exclude>
</excludes>
</fileSet>
</fileSets>
</assembly>
================================================
FILE: examples/jackrabbit-firsthops/pom.xml
================================================
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-firsthops</artifactId>
<version>0.1-SNAPSHOT</version>
<name>First Hops</name>
<description>First Hops Example Page</description>
<url>http://jackrabbit.apache.org/first-hops.html</url>
<dependencies>
<!-- The JCR API -->
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
<version>2.0</version>
</dependency>
<!-- Jackrabbit content repository -->
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-core</artifactId>
<version>2.12.1</version>
</dependency>
<!-- Jackrabbit Oak content repository -->
<!--
Comment out above jackrabbit-core and uncomment
below oak-jcr dependency if you want to run the
examples with Jackrabbit Oak.
-->
<!--
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>oak-jcr</artifactId>
<version>1.4.1</version>
</dependency>
-->
<!-- Use Log4J for logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<compilerVersion>1.5</compilerVersion>
<source>1.5</source>
<target>1.5</target>
<debug>true</debug>
<showDeprecation>false</showDeprecation>
<showWarnings>true</showWarnings>
<optimize>false</optimize>
</configuration>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: examples/jackrabbit-firsthops/src/main/java/org/apache/jackrabbit/firsthops/FirstHop.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.firsthops;
import javax.jcr.GuestCredentials;
import javax.jcr.Repository;
import javax.jcr.Session;
import org.apache.jackrabbit.commons.JcrUtils;
/**
* First hop example. Logs in to a content repository and prints a status
* message.
*/
public class FirstHop {
/**
* The main entry point of the example application.
*
* @param args
* command line arguments (ignored)
* @throws Exception
* if an error occurs
*/
public static void main(String[] args) throws Exception {
Repository repository = JcrUtils.getRepository();
Session session = repository.login(new GuestCredentials());
try {
String user = session.getUserID();
String name = repository.getDescriptor(Repository.REP_NAME_DESC);
System.out.println("Logged in as " + user + " to a " + name
+ " repository.");
} finally {
session.logout();
}
}
}
================================================
FILE: examples/jackrabbit-firsthops/src/main/java/org/apache/jackrabbit/firsthops/SecondHop.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.firsthops;
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.Node;
import org.apache.jackrabbit.commons.JcrUtils;
/**
* Second hop example. Stores, retrieves, and removes example content.
*/
public class SecondHop {
/**
* The main entry point of the example application.
*
* @param args
* command line arguments (ignored)
* @throws Exception
* if an error occurs
*/
public static void main(String[] args) throws Exception {
Repository repository = JcrUtils.getRepository();
Session session = repository.login(new SimpleCredentials("admin",
"admin".toCharArray()));
try {
Node root = session.getRootNode();
// Store content
Node hello = root.addNode("hello");
Node world = hello.addNode("world");
world.setProperty("message", "Hello, World!");
session.save();
// Retrieve content
Node node = root.getNode("hello/world");
System.out.println(node.getPath());
System.out.println(node.getProperty("message").getString());
// Remove content
root.getNode("hello").remove();
session.save();
} finally {
session.logout();
}
}
}
================================================
FILE: examples/jackrabbit-firsthops/src/main/java/org/apache/jackrabbit/firsthops/ThirdHop.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.firsthops;
import javax.jcr.*;
import java.io.FileInputStream;
import org.apache.jackrabbit.commons.JcrUtils;
/**
* Third Jackrabbit example application. Imports an example XML file and outputs
* the contents of the entire workspace.
*/
public class ThirdHop {
/**
* The main entry point of the example application.
*
* @param args
* command line arguments (ignored)
* @throws Exception
* if an error occurs
*/
public static void main(String[] args) throws Exception {
Repository repository = JcrUtils.getRepository();
Session session = repository.login(new SimpleCredentials("admin",
"admin".toCharArray()));
FileInputStream xml = new FileInputStream("src/main/resources/test.xml");
try {
Node root = session.getRootNode();
// Import the XML file unless already imported
if (!root.hasNode("importxml")) {
System.out.print("Importing xml... ");
// Create an unstructured node under which to import the XML
Node node = root.addNode("importxml", "nt:unstructured");
// Import the file "test.xml" under the created node
session.importXML(node.getPath(), xml,
ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
session.save();
System.out.println("done.");
}
dump(root);
} finally {
session.logout();
}
}
/** Recursively outputs the contents of the given node. */
private static void dump(Node node) throws RepositoryException {
// First output the node path
System.out.println(node.getPath());
// Skip the virtual (and large!) jcr:system subtree
if (node.getName().equals("jcr:system")) {
return;
}
// Then output the properties
PropertyIterator properties = node.getProperties();
while (properties.hasNext()) {
Property property = properties.nextProperty();
if (property.getDefinition().isMultiple()) {
// A multi-valued property, print all values
Value[] values = property.getValues();
for (int i = 0; i < values.length; i++) {
System.out.println(property.getPath() + " = "
+ values[i].getString());
}
} else {
// A single-valued property
System.out.println(property.getPath() + " = "
+ property.getString());
}
}
// Finally output all the child nodes recursively
NodeIterator nodes = node.getNodes();
while (nodes.hasNext()) {
dump(nodes.nextNode());
}
}
}
================================================
FILE: examples/jackrabbit-firsthops/src/main/resources/log4j.properties
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
log4j.rootLogger=ERROR, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d %p %c - %m%n
================================================
FILE: examples/jackrabbit-firsthops/src/main/resources/test.xml
================================================
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:mathml="http://www.w3.org/1998/Math/MathML">
<xhtml:head>
<xhtml:title>Three Namespaces</xhtml:title>
</xhtml:head>
<xhtml:body>
<xhtml:h1 align="center">An Ellipse and a Rectangle</xhtml:h1>
<svg:svg xmlns:svg="http://www.w3.org/2000/svg" width="12cm"
height="10cm">
<svg:ellipse rx="110" ry="130" />
<svg:rect x="4cm" y="1cm" width="3cm" height="6cm" />
</svg:svg>
<xhtml:p>The equation for ellipses</xhtml:p>
<mathml:math>
<mathml:apply>
<mathml:eq />
<mathml:cn> 1 </mathml:cn>
<mathml:apply>
<mathml:plus />
<mathml:apply>
<mathml:divide />
<mathml:apply>
<mathml:power />
<mathml:ci> x </mathml:ci>
<mathml:cn> 2 </mathml:cn>
</mathml:apply>
<mathml:apply>
<mathml:power />
<mathml:ci> a </mathml:ci>
<mathml:cn> 2 </mathml:cn>
</mathml:apply>
</mathml:apply>
<mathml:apply>
<mathml:divide />
<mathml:apply>
<mathml:power />
<mathml:ci> y </mathml:ci>
<mathml:cn> 2 </mathml:cn>
</mathml:apply>
<mathml:apply>
<mathml:power />
<mathml:ci> b </mathml:ci>
<mathml:cn> 2 </mathml:cn>
</mathml:apply>
</mathml:apply>
</mathml:apply>
</mathml:apply>
</mathml:math>
<xhtml:hr />
<xhtml:p>Last Modified January 10, 2002</xhtml:p>
</xhtml:body>
</xhtml:html>
================================================
FILE: jackrabbit-aws-ext/README.txt
================================================
====================================================
Welcome to Jackrabbit Amazon WebServices Extension
====================================================
This is the Amazon Webservices Extension component of the Apache Jackrabbit project.
This component contains S3 Datastore which stores binaries on Amazon S3 (http://aws.amazon.com/s3).
====================================================
Build Instructions
====================================================
To build the latest SNAPSHOT versions of all the components
included here, run the following command with Maven 3:
mvn clean install
To run testcases which stores in S3 bucket, please pass aws config file via system property. For e.g.
mvn clean install -DargLine="-Dconfig=/opt/cq/aws.properties"
Sample aws properties located at src/test/resources/aws.properties
====================================================
Configuration Instructions
====================================================
It require to configure aws.properties to configure S3 Datastore.
<DataStore class="org.apache.jackrabbit.aws.ext.ds.S3DataStore">
<param name="config" value="${rep.home}/aws.properties"/>
</DataStore>
================================================
FILE: jackrabbit-aws-ext/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for additional
information regarding copyright ownership. The ASF licenses this file to
You under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License. -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
<modelVersion>4.0.0</modelVersion>
<!-- ====================================================================== -->
<!-- P R O J E C T D E S C R I P T I O N -->
<!-- ====================================================================== -->
<parent>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-parent</artifactId>
<version>2.23.5-beta-SNAPSHOT</version>
<relativePath>../jackrabbit-parent/pom.xml</relativePath>
</parent>
<artifactId>jackrabbit-aws-ext</artifactId>
<name>Jackrabbit AWS Extension</name>
<description>Jackrabbit extenstion to Amazon Webservices</description>
<packaging>bundle</packaging>
<!-- ====================================================================== -->
<!-- D E P E N D E N C I E S -->
<!-- ====================================================================== -->
<dependencies>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.annotation</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.12.791</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-data</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-data</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/aws/**/TestAll.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Export-Package>org.apache.jackrabbit.aws.ext.ds</Export-Package>
<DynamicImport-Package>sun.io</DynamicImport-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes>
<exclude>.checkstyle</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3Constants.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext;
/**
* Defined Amazon S3 constants.
*/
public final class S3Constants {
/**
* Amazon aws access key.
*/
public static final String ACCESS_KEY = "accessKey";
/**
* Amazon aws secret key.
*/
public static final String SECRET_KEY = "secretKey";
/**
* Amazon S3 Http connection timeout.
*/
public static final String S3_CONN_TIMEOUT = "connectionTimeout";
/**
* Amazon S3 socket timeout.
*/
public static final String S3_SOCK_TIMEOUT = "socketTimeout";
/**
* Amazon S3 maximum connections to be used.
*/
public static final String S3_MAX_CONNS = "maxConnections";
/**
* Amazon S3 maximum retries.
*/
public static final String S3_MAX_ERR_RETRY = "maxErrorRetry";
/**
* Amazon aws S3 bucket.
*/
public static final String S3_BUCKET = "s3Bucket";
/**
* Amazon aws S3 region.
*/
public static final String S3_REGION = "s3Region";
/**
* Amazon aws S3 region.
*/
public static final String S3_END_POINT = "s3EndPoint";
/**
* Constant for S3 Connector Protocol
*/
public static final String S3_CONN_PROTOCOL = "s3ConnProtocol";
/**
* Constant to rename keys
*/
public static final String S3_RENAME_KEYS = "s3RenameKeys";
/**
* Constant to rename keys
*/
public static final String S3_WRITE_THREADS = "writeThreads";
/**
* Constant to enable encryption in S3.
*/
public static final String S3_ENCRYPTION = "s3Encryption";
/**
* Constant for no encryption. it is default.
*/
public static final String S3_ENCRYPTION_NONE = "NONE";
/**
* Constant to set SSE_S3 encryption.
*/
public static final String S3_ENCRYPTION_SSE_S3 = "SSE_S3";
/**
* Constant to set proxy host.
*/
public static final String PROXY_HOST = "proxyHost";
/**
* Constant to set proxy port.
*/
public static final String PROXY_PORT = "proxyPort";
/**
* Path style access flag true/false
*/
public static final String S3_PATH_STYLE_ACCESS = "pathStyleAccess";
/**
* private constructor so that class cannot initialized from outside.
*/
private S3Constants() {
}
}
================================================
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3RequestDecorator.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext;
import java.util.Properties;
import com.amazonaws.services.s3.model.CopyObjectRequest;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
/**
* This class to sets encrption mode in S3 request.
*
*/
public class S3RequestDecorator {
DataEncryption dataEncryption = DataEncryption.NONE;
public S3RequestDecorator(Properties props) {
if (props.getProperty(S3Constants.S3_ENCRYPTION) != null) {
this.dataEncryption = dataEncryption.valueOf(props.getProperty(S3Constants.S3_ENCRYPTION));
}
}
/**
* Set encryption in {@link PutObjectRequest}
*/
public PutObjectRequest decorate(PutObjectRequest request) {
switch (getDataEncryption()) {
case SSE_S3:
ObjectMetadata metadata = request.getMetadata() == null
? new ObjectMetadata()
: request.getMetadata();
metadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
request.setMetadata(metadata);
break;
case NONE:
break;
}
return request;
}
/**
* Set encryption in {@link CopyObjectRequest}
*/
public CopyObjectRequest decorate(CopyObjectRequest request) {
switch (getDataEncryption()) {
case SSE_S3:
ObjectMetadata metadata = request.getNewObjectMetadata() == null
? new ObjectMetadata()
: request.getNewObjectMetadata();
metadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
request.setNewObjectMetadata(metadata);
break;
case NONE:
break;
}
return request;
}
private DataEncryption getDataEncryption() {
return this.dataEncryption;
}
/**
* Enum to indicate S3 encryption mode
*
*/
private enum DataEncryption {
SSE_S3, NONE;
}
}
================================================
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/Utils.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.amazonaws.AmazonClientException;
import com.amazonaws.ClientConfiguration;
import com.amazonaws.Protocol;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.S3ClientOptions;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.Region;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import com.amazonaws.util.StringUtils;
/**
* Amazon S3 utilities.
*/
public final class Utils {
private static final Logger LOG = LoggerFactory.getLogger(Utils.class);
public static final String DEFAULT_CONFIG_FILE = "aws.properties";
private static final String DELETE_CONFIG_SUFFIX = ";burn";
/**
* The default value AWS bucket region.
*/
public static final String DEFAULT_AWS_BUCKET_REGION = "us-standard";
/**
* constants to define endpoint to various AWS region
*/
public static final String AWSDOTCOM = "amazonaws.com";
public static final String S3 = "s3";
public static final String DOT = ".";
public static final String DASH = "-";
/**
* private constructor so that class cannot initialized from outside.
*/
private Utils() {
}
/**
* Create AmazonS3Client from properties.
*
* @param prop properties to configure @link {@link AmazonS3Client}
* @return {@link AmazonS3Client}
*/
public static AmazonS3Client openService(final Properties prop) {
String accessKey = prop.getProperty(S3Constants.ACCESS_KEY);
String secretKey = prop.getProperty(S3Constants.SECRET_KEY);
AmazonS3Client s3service = null;
if (StringUtils.isNullOrEmpty(accessKey)
|| StringUtils.isNullOrEmpty(secretKey)) {
LOG.info("Configuring Amazon Client from environment");
s3service = new AmazonS3Client(getClientConfiguration(prop));
} else {
LOG.info("Configuring Amazon Client from property file.");
AWSCredentials credentials = new BasicAWSCredentials(accessKey,
secretKey);
s3service = new AmazonS3Client(credentials,
getClientConfiguration(prop));
}
String region = prop.getProperty(S3Constants.S3_REGION);
String endpoint = null;
String propEndPoint = prop.getProperty(S3Constants.S3_END_POINT);
if ((propEndPoint != null) && !"".equals(propEndPoint)) {
endpoint = propEndPoint;
} else {
if (StringUtils.isNullOrEmpty(region)) {
com.amazonaws.regions.Region s3Region = Regions.getCurrentRegion();
if (s3Region != null) {
region = s3Region.getName();
} else {
throw new AmazonClientException(
"parameter ["
+ S3Constants.S3_REGION
+ "] not configured and cannot be derived from environment");
}
}
if (DEFAULT_AWS_BUCKET_REGION.equals(region)) {
endpoint = S3 + DOT + AWSDOTCOM;
} else if (Region.EU_Ireland.toString().equals(region)) {
endpoint = "s3-eu-west-1" + DOT + AWSDOTCOM;
} else {
endpoint = S3 + DASH + region + DOT + AWSDOTCOM;
}
}
/*
* setting endpoint to remove latency of redirection. If endpoint is
* not set, invocation first goes us standard region, which
* redirects it to correct location.
*/
s3service.setEndpoint(endpoint);
LOG.info("S3 service endpoint [{}] ", endpoint);
s3service.setS3ClientOptions(getS3ClientOptions(prop));
return s3service;
}
/**
* Delete S3 bucket. This method first deletes all objects from bucket and
* then delete empty bucket.
*
* @param bucketName the bucket name.
*/
public static void deleteBucket(final String bucketName) throws IOException {
Properties prop = readConfig(DEFAULT_CONFIG_FILE);
AmazonS3 s3service = openService(prop);
ObjectListing prevObjectListing = s3service.listObjects(bucketName);
while (true) {
for (S3ObjectSummary s3ObjSumm : prevObjectListing.getObjectSummaries()) {
s3service.deleteObject(bucketName, s3ObjSumm.getKey());
}
if (!prevObjectListing.isTruncated()) {
break;
}
prevObjectListing = s3service.listNextBatchOfObjects(prevObjectListing);
}
s3service.deleteBucket(bucketName);
}
/**
* Read a configuration properties file. If the file name ends with ";burn",
* the file is deleted after reading.
*
* @param fileName the properties file name
* @return the properties
* @throws IOException if the file doesn't exist
*/
public static Properties readConfig(String fileName) throws IOException {
boolean delete = false;
if (fileName.endsWith(DELETE_CONFIG_SUFFIX)) {
delete = true;
fileName = fileName.substring(0, fileName.length()
- DELETE_CONFIG_SUFFIX.length());
}
if (!new File(fileName).exists()) {
throw new IOException("Config file not found: " + fileName);
}
Properties prop = new Properties();
InputStream in = null;
try {
in = new FileInputStream(fileName);
prop.load(in);
} finally {
if (in != null) {
in.close();
}
if (delete) {
deleteIfPossible(new File(fileName));
}
}
return prop;
}
private static void deleteIfPossible(final File file) {
boolean deleted = file.delete();
if (!deleted) {
LOG.warn("Could not delete " + file.getAbsolutePath());
}
}
private static ClientConfiguration getClientConfiguration(Properties prop) {
int connectionTimeOut = Integer.parseInt(prop.getProperty(S3Constants.S3_CONN_TIMEOUT));
int socketTimeOut = Integer.parseInt(prop.getProperty(S3Constants.S3_SOCK_TIMEOUT));
int maxConnections = Integer.parseInt(prop.getProperty(S3Constants.S3_MAX_CONNS));
int maxErrorRetry = Integer.parseInt(prop.getProperty(S3Constants.S3_MAX_ERR_RETRY));
String protocol = prop.getProperty(S3Constants.S3_CONN_PROTOCOL);
String proxyHost = prop.getProperty(S3Constants.PROXY_HOST);
String proxyPort = prop.getProperty(S3Constants.PROXY_PORT);
ClientConfiguration cc = new ClientConfiguration();
if (protocol != null && protocol.equalsIgnoreCase("http")) {
cc.setProtocol(Protocol.HTTP);
}
if (proxyHost != null && !proxyHost.isEmpty()) {
cc.setProxyHost(proxyHost);
}
if (proxyPort != null && !proxyPort.isEmpty()) {
cc.setProxyPort(Integer.parseInt(proxyPort));
}
cc.setConnectionTimeout(connectionTimeOut);
cc.setSocketTimeout(socketTimeOut);
cc.setMaxConnections(maxConnections);
cc.setMaxErrorRetry(maxErrorRetry);
return cc;
}
private static S3ClientOptions getS3ClientOptions(Properties prop) {
boolean pathStyleAccess = Boolean.parseBoolean(prop.getProperty(S3Constants.S3_PATH_STYLE_ACCESS));
return S3ClientOptions.builder().setPathStyleAccess(pathStyleAccess).build();
}
}
================================================
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/S3Backend.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext.ds;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.jackrabbit.aws.ext.S3Constants;
import org.apache.jackrabbit.aws.ext.S3RequestDecorator;
import org.apache.jackrabbit.aws.ext.Utils;
import org.apache.jackrabbit.core.data.AbstractBackend;
import org.apache.jackrabbit.core.data.AsyncTouchCallback;
import org.apache.jackrabbit.core.data.AsyncTouchResult;
import org.apache.jackrabbit.core.data.AsyncUploadCallback;
import org.apache.jackrabbit.core.data.AsyncUploadResult;
import org.apache.jackrabbit.core.data.CachingDataStore;
import org.apache.jackrabbit.core.data.DataIdentifier;
import org.apache.jackrabbit.core.data.DataStoreException;
import org.apache.jackrabbit.core.data.util.NamedThreadFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.event.ProgressEvent;
import com.amazonaws.event.ProgressListener;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.CopyObjectRequest;
import com.amazonaws.services.s3.model.DeleteObjectsRequest;
import com.amazonaws.services.s3.model.DeleteObjectsResult;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.services.s3.model.Region;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectInputStream;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import com.amazonaws.services.s3.transfer.Copy;
import com.amazonaws.services.s3.transfer.TransferManager;
import com.amazonaws.services.s3.transfer.Upload;
import com.amazonaws.util.StringUtils;
/**
* A data store backend that stores data on Amazon S3.
*/
public class S3Backend extends AbstractBackend {
/**
* Logger instance.
*/
private static final Logger LOG = LoggerFactory.getLogger(S3Backend.class);
private static final String KEY_PREFIX = "dataStore_";
private AmazonS3Client s3service;
private String bucket;
private TransferManager tmx;
private Properties properties;
private Date startTime;
private S3RequestDecorator s3ReqDecorator;
/**
* Initialize S3Backend. It creates AmazonS3Client and TransferManager from
* aws.properties. It creates S3 bucket if it doesn't pre-exist in S3.
*/
@Override
public void init(CachingDataStore store, String homeDir, String config)
throws DataStoreException {
super.init(store, homeDir, config);
Properties initProps = null;
//Check is configuration is already provided. That takes precedence
//over config provided via file based config
if(this.properties != null){
initProps = this.properties;
} else {
if(config == null){
config = Utils.DEFAULT_CONFIG_FILE;
}
try{
initProps = Utils.readConfig(config);
}catch(IOException e){
throw new DataStoreException("Could not initialize S3 from "
+ config, e);
}
this.properties = initProps;
}
init(store, homeDir, initProps);
}
public void init(CachingDataStore store, String homeDir, Properties prop)
throws DataStoreException {
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
startTime = new Date();
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
LOG.debug("init");
setDataStore(store);
s3ReqDecorator = new S3RequestDecorator(prop);
s3service = Utils.openService(prop);
if (bucket == null || "".equals(bucket.trim())) {
bucket = prop.getProperty(S3Constants.S3_BUCKET);
}
String region = prop.getProperty(S3Constants.S3_REGION);
Region s3Region = null;
if (StringUtils.isNullOrEmpty(region)) {
com.amazonaws.regions.Region ec2Region = Regions.getCurrentRegion();
if (ec2Region != null) {
s3Region = Region.fromValue(ec2Region.getName());
} else {
throw new AmazonClientException(
"parameter ["
+ S3Constants.S3_REGION
+ "] not configured and cannot be derived from environment");
}
} else {
if (Utils.DEFAULT_AWS_BUCKET_REGION.equals(region)) {
s3Region = Region.US_Standard;
} else if (Region.EU_Ireland.toString().equals(region)) {
s3Region = Region.EU_Ireland;
} else {
s3Region = Region.fromValue(region);
}
}
if (!s3service.doesBucketExist(bucket)) {
s3service.createBucket(bucket, s3Region);
LOG.info("Created bucket [{}] in [{}] ", bucket, region);
} else {
LOG.info("Using bucket [{}] in [{}] ", bucket, region);
}
int writeThreads = 10;
String writeThreadsStr = prop.getProperty(S3Constants.S3_WRITE_THREADS);
if (writeThreadsStr != null) {
writeThreads = Integer.parseInt(writeThreadsStr);
}
LOG.info("Using thread pool of [{}] threads in S3 transfer manager.", writeThreads);
tmx = new TransferManager(s3service,
(ThreadPoolExecutor) Executors.newFixedThreadPool(writeThreads,
new NamedThreadFactory("s3-transfer-manager-worker")));
int asyncWritePoolSize = 10;
String maxConnsStr = prop.getProperty(S3Constants.S3_MAX_CONNS);
if (maxConnsStr != null) {
asyncWritePoolSize = Integer.parseInt(maxConnsStr)
- writeThreads;
}
setAsyncWritePoolSize(asyncWritePoolSize);
String renameKeyProp = prop.getProperty(S3Constants.S3_RENAME_KEYS);
boolean renameKeyBool = (renameKeyProp == null || "".equals(renameKeyProp))
? false
: Boolean.parseBoolean(renameKeyProp);
LOG.info("Rename keys [{}]", renameKeyBool);
if (renameKeyBool) {
renameKeys();
}
LOG.debug("S3 Backend initialized in [{}] ms",
+(System.currentTimeMillis() - startTime.getTime()));
} catch (Exception e) {
LOG.debug(" error ", e);
throw new DataStoreException("Could not initialize S3 from "
+ prop, e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
/**
* It uploads file to Amazon S3. If file size is greater than 5MB, this
* method uses parallel concurrent connections to upload.
*/
@Override
public void write(DataIdentifier identifier, File file)
throws DataStoreException {
this.write(identifier, file, false, null);
}
@Override
public void writeAsync(DataIdentifier identifier, File file,
AsyncUploadCallback callback) throws DataStoreException {
if (callback == null) {
throw new IllegalArgumentException(
"callback parameter cannot be null in asyncUpload");
}
getAsyncWriteExecutor().execute(new AsyncUploadJob(identifier, file,
callback));
}
/**
* Check if record identified by identifier exists in Amazon S3.
*/
@Override
public boolean exists(DataIdentifier identifier) throws DataStoreException {
long start = System.currentTimeMillis();
String key = getKeyName(identifier);
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
ObjectMetadata objectMetaData = s3service.getObjectMetadata(bucket,
key);
if (objectMetaData != null) {
LOG.trace("exists [{}]: [true] took [{}] ms.",
identifier, (System.currentTimeMillis() - start) );
return true;
}
return false;
} catch (AmazonServiceException e) {
if (e.getStatusCode() == 404 || e.getStatusCode() == 403) {
LOG.debug("exists [{}]: [false] took [{}] ms.",
identifier, (System.currentTimeMillis() - start) );
return false;
}
throw new DataStoreException(
"Error occured to getObjectMetadata for key ["
+ identifier.toString() + "]", e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
@Override
public boolean exists(DataIdentifier identifier, boolean touch)
throws DataStoreException {
long start = System.currentTimeMillis();
String key = getKeyName(identifier);
ObjectMetadata objectMetaData = null;
boolean retVal = false;
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
objectMetaData = s3service.getObjectMetadata(bucket, key);
if (objectMetaData != null) {
retVal = true;
if (touch) {
CopyObjectRequest copReq = new CopyObjectRequest(bucket,
key, bucket, key);
copReq.setNewObjectMetadata(objectMetaData);
Copy copy = tmx.copy(s3ReqDecorator.decorate(copReq));
copy.waitForCopyResult();
LOG.debug("[{}] touched took [{}] ms. ", identifier,
(System.currentTimeMillis() - start));
}
} else {
retVal = false;
}
} catch (AmazonServiceException e) {
if (e.getStatusCode() == 404 || e.getStatusCode() == 403) {
retVal = false;
} else {
throw new DataStoreException(
"Error occured to find exists for key ["
+ identifier.toString() + "]", e);
}
} catch (Exception e) {
throw new DataStoreException(
"Error occured to find exists for key "
+ identifier.toString(), e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
LOG.debug("exists [{}]: [{}] took [{}] ms.", new Object[] { identifier,
retVal, (System.currentTimeMillis() - start) });
return retVal;
}
@Override
public void touchAsync(final DataIdentifier identifier,
final long minModifiedDate, final AsyncTouchCallback callback)
throws DataStoreException {
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
if (callback == null) {
throw new IllegalArgumentException(
"callback parameter cannot be null in touchAsync");
}
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
getAsyncWriteExecutor().execute(new Runnable() {
@Override
public void run() {
try {
touch(identifier, minModifiedDate);
callback.onSuccess(new AsyncTouchResult(identifier));
} catch (DataStoreException e) {
AsyncTouchResult result = new AsyncTouchResult(
identifier);
result.setException(e);
callback.onFailure(result);
}
}
});
} catch (Exception e) {
callback.onAbort(new AsyncTouchResult(identifier));
throw new DataStoreException("Cannot touch the record "
+ identifier.toString(), e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
@Override
public void touch(DataIdentifier identifier, long minModifiedDate)
throws DataStoreException {
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
final long start = System.currentTimeMillis();
final String key = getKeyName(identifier);
if (minModifiedDate > 0
&& minModifiedDate > getLastModified(identifier)) {
CopyObjectRequest copReq = new CopyObjectRequest(bucket, key,
bucket, key);
copReq.setNewObjectMetadata(new ObjectMetadata());
Copy copy = tmx.copy(s3ReqDecorator.decorate(copReq));
copy.waitForCompletion();
LOG.debug("[{}] touched. time taken [{}] ms ", new Object[] {
identifier, (System.currentTimeMillis() - start) });
} else {
LOG.trace("[{}] touch not required. time taken [{}] ms ",
new Object[] { identifier,
(System.currentTimeMillis() - start) });
}
} catch (Exception e) {
throw new DataStoreException("Error occured in touching key ["
+ identifier.toString() + "]", e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
@Override
public InputStream read(DataIdentifier identifier)
throws DataStoreException {
long start = System.currentTimeMillis();
String key = getKeyName(identifier);
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
S3Object object = s3service.getObject(bucket, key);
S3ObjectInputStream s3in = object.getObjectContent();
InputStream in = new S3BackendResourceAbortableInputStream(s3in);
LOG.debug("[{}] read took [{}]ms", identifier,
(System.currentTimeMillis() - start));
return in;
} catch (AmazonServiceException e) {
throw new DataStoreException("Object not found: " + key, e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
@Override
public Iterator<DataIdentifier> getAllIdentifiers()
throws DataStoreException {
long start = System.currentTimeMillis();
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
Set<DataIdentifier> ids = new HashSet<DataIdentifier>();
ObjectListing prevObjectListing = s3service.listObjects(bucket);
while (true) {
for (S3ObjectSummary s3ObjSumm : prevObjectListing.getObjectSummaries()) {
String id = getIdentifierName(s3ObjSumm.getKey());
if (id != null) {
ids.add(new DataIdentifier(id));
}
}
if (!prevObjectListing.isTruncated()) break;
prevObjectListing = s3service.listNextBatchOfObjects(prevObjectListing);
}
LOG.debug("getAllIdentifiers returned size [{}] took [{}] ms.",
ids.size(), (System.currentTimeMillis() - start));
return ids.iterator();
} catch (AmazonServiceException e) {
throw new DataStoreException("Could not list objects", e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
@Override
public long getLastModified(DataIdentifier identifier)
throws DataStoreException {
long start = System.currentTimeMillis();
String key = getKeyName(identifier);
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
ObjectMetadata object = s3service.getObjectMetadata(bucket, key);
long lastModified = object.getLastModified().getTime();
LOG.debug(
"Identifier [{}]'s lastModified = [{}] took [{}]ms.",
new Object[] { identifier, lastModified,
(System.currentTimeMillis() - start) });
return lastModified;
} catch (AmazonServiceException e) {
if (e.getStatusCode() == 404 || e.getStatusCode() == 403) {
LOG.info(
"getLastModified:Identifier [{}] not found. Took [{}] ms.",
identifier, (System.currentTimeMillis() - start));
}
throw new DataStoreException(e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
@Override
public long getLength(DataIdentifier identifier) throws DataStoreException {
long start = System.currentTimeMillis();
String key = getKeyName(identifier);
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
ObjectMetadata object = s3service.getObjectMetadata(bucket, key);
long length = object.getContentLength();
LOG.debug("Identifier [{}]'s length = [{}] took [{}]ms.",
new Object[] { identifier, length,
(System.currentTimeMillis() - start) });
return length;
} catch (AmazonServiceException e) {
throw new DataStoreException("Could not length of dataIdentifier "
+ identifier, e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
@Override
public void deleteRecord(DataIdentifier identifier)
throws DataStoreException {
long start = System.currentTimeMillis();
String key = getKeyName(identifier);
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
s3service.deleteObject(bucket, key);
LOG.debug("Identifier [{}] deleted. It took [{}]ms.", new Object[] {
identifier, (System.currentTimeMillis() - start) });
} catch (AmazonServiceException e) {
throw new DataStoreException(
"Could not getLastModified of dataIdentifier " + identifier, e);
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
@Override
public Set<DataIdentifier> deleteAllOlderThan(long min)
throws DataStoreException {
long start = System.currentTimeMillis();
// S3 stores lastModified to lower boundary of timestamp in ms.
// and hence min is reduced by 1000ms.
min = min - 1000;
Set<DataIdentifier> deleteIdSet = new HashSet<DataIdentifier>(30);
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
ObjectListing prevObjectListing = s3service.listObjects(bucket);
while (true) {
List<DeleteObjectsRequest.KeyVersion> deleteList = new ArrayList<DeleteObjectsRequest.KeyVersion>();
for (S3ObjectSummary s3ObjSumm : prevObjectListing.getObjectSummaries()) {
DataIdentifier identifier = new DataIdentifier(
getIdentifierName(s3ObjSumm.getKey()));
long lastModified = s3ObjSumm.getLastModified().getTime();
LOG.debug("Identifier [{}]'s lastModified = [{}]", identifier, lastModified);
if (lastModified < min
&& getDataStore().confirmDelete(identifier)
// confirm once more that record's lastModified < min
// order is important here
&& s3service.getObjectMetadata(bucket,
s3ObjSumm.getKey()).getLastModified().getTime() < min) {
getDataStore().deleteFromCache(identifier);
LOG.debug("add id [{}] to delete lists",
s3ObjSumm.getKey());
deleteList.add(new DeleteObjectsRequest.KeyVersion(
s3ObjSumm.getKey()));
deleteIdSet.add(identifier);
}
}
if (deleteList.size() > 0) {
DeleteObjectsRequest delObjsReq = new DeleteObjectsRequest(
bucket);
delObjsReq.setKeys(deleteList);
DeleteObjectsResult dobjs = s3service.deleteObjects(delObjsReq);
if (dobjs.getDeletedObjects().size() != deleteList.size()) {
throw new DataStoreException(
"Incomplete delete object request. only "
+ dobjs.getDeletedObjects().size() + " out of "
+ deleteList.size() + " are deleted");
} else {
LOG.debug("[{}] records deleted from datastore",
deleteList);
}
}
if (!prevObjectListing.isTruncated()) {
break;
}
prevObjectListing = s3service.listNextBatchOfObjects(prevObjectListing);
}
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
LOG.info(
"deleteAllOlderThan: min=[{}] exit. Deleted[{}] records. Number of records deleted [{}] took [{}]ms",
new Object[] { min, deleteIdSet, deleteIdSet.size(),
(System.currentTimeMillis() - start) });
return deleteIdSet;
}
@Override
public void close() throws DataStoreException {
super.close();
// backend is closing. abort all mulitpart uploads from start.
if(s3service.doesBucketExist(bucket)) {
tmx.abortMultipartUploads(bucket, startTime);
}
tmx.shutdownNow();
s3service.shutdown();
LOG.info("S3Backend closed.");
}
public String getBucket() {
return bucket;
}
public void setBucket(String bucket) {
this.bucket = bucket;
}
/**
* Properties used to configure the backend. If provided explicitly
* before init is invoked then these take precedence
*
* @param properties to configure S3Backend
*/
public void setProperties(Properties properties) {
this.properties = properties;
}
private void write(DataIdentifier identifier, File file,
boolean asyncUpload, AsyncUploadCallback callback)
throws DataStoreException {
String key = getKeyName(identifier);
ObjectMetadata objectMetaData = null;
long start = System.currentTimeMillis();
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
// check if the same record already exists
try {
objectMetaData = s3service.getObjectMetadata(bucket, key);
} catch (AmazonServiceException ase) {
if (!(ase.getStatusCode() == 404 || ase.getStatusCode() == 403)) {
throw ase;
}
}
if (objectMetaData != null) {
long l = objectMetaData.getContentLength();
if (l != file.length()) {
throw new DataStoreException("Collision: " + key
+ " new length: " + file.length() + " old length: " + l);
}
LOG.debug("[{}]'s exists, lastmodified = [{}]", key,
objectMetaData.getLastModified().getTime());
CopyObjectRequest copReq = new CopyObjectRequest(bucket, key,
bucket, key);
copReq.setNewObjectMetadata(objectMetaData);
Copy copy = tmx.copy(s3ReqDecorator.decorate(copReq));
try {
copy.waitForCopyResult();
LOG.debug("lastModified of [{}] updated successfully.", identifier);
if (callback != null) {
callback.onSuccess(new AsyncUploadResult(identifier, file));
}
}catch (Exception e2) {
AsyncUploadResult asyncUpRes= new AsyncUploadResult(identifier, file);
asyncUpRes.setException(e2);
if (callback != null) {
callback.onAbort(asyncUpRes);
}
throw new DataStoreException("Could not upload " + key, e2);
}
}
if (objectMetaData == null) {
try {
// start multipart parallel upload using amazon sdk
Upload up = tmx.upload(s3ReqDecorator.decorate(new PutObjectRequest(
bucket, key, file)));
// wait for upload to finish
if (asyncUpload) {
up.addProgressListener(new S3UploadProgressListener(up,
identifier, file, callback));
LOG.debug(
"added upload progress listener to identifier [{}]",
identifier);
} else {
up.waitForUploadResult();
LOG.debug("synchronous upload to identifier [{}] completed.", identifier);
if (callback != null) {
callback.onSuccess(new AsyncUploadResult(
identifier, file));
}
}
} catch (Exception e2 ) {
AsyncUploadResult asyncUpRes= new AsyncUploadResult(identifier, file);
asyncUpRes.setException(e2);
if (callback != null) {
callback.onAbort(asyncUpRes);
}
throw new DataStoreException("Could not upload " + key, e2);
}
}
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
LOG.debug(
"write of [{}], length=[{}], in async mode [{}], in [{}]ms",
new Object[] { identifier, file.length(), asyncUpload,
(System.currentTimeMillis() - start) });
}
/**
* This method rename object keys in S3 concurrently. The number of
* concurrent threads is defined by 'maxConnections' property in
* aws.properties. As S3 doesn't have "move" command, this method simulate
* move as copy object object to new key and then delete older key.
*/
private void renameKeys() throws DataStoreException {
long startTime = System.currentTimeMillis();
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
long count = 0;
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
ObjectListing prevObjectListing = s3service.listObjects(bucket);
List<DeleteObjectsRequest.KeyVersion> deleteList = new ArrayList<DeleteObjectsRequest.KeyVersion>();
int nThreads = Integer.parseInt(properties.getProperty("maxConnections"));
ExecutorService executor = Executors.newFixedThreadPool(nThreads,
new NamedThreadFactory("s3-object-rename-worker"));
boolean taskAdded = false;
while (true) {
for (S3ObjectSummary s3ObjSumm : prevObjectListing.getObjectSummaries()) {
executor.execute(new KeyRenameThread(s3ObjSumm.getKey()));
taskAdded = true;
count++;
// delete the object if it follows old key name format
if( s3ObjSumm.getKey().startsWith(KEY_PREFIX)) {
deleteList.add(new DeleteObjectsRequest.KeyVersion(
s3ObjSumm.getKey()));
}
}
if (!prevObjectListing.isTruncated()) break;
prevObjectListing = s3service.listNextBatchOfObjects(prevObjectListing);
}
// This will make the executor accept no new threads
// and finish all existing threads in the queue
executor.shutdown();
try {
// Wait until all threads are finish
while (taskAdded
&& !executor.awaitTermination(10, TimeUnit.SECONDS)) {
LOG.info("Rename S3 keys tasks timedout. Waiting again");
}
} catch (InterruptedException ie) {
}
LOG.info("Renamed [{}] keys, time taken [{}]sec", count,
((System.currentTimeMillis() - startTime) / 1000));
// Delete older keys.
if (deleteList.size() > 0) {
DeleteObjectsRequest delObjsReq = new DeleteObjectsRequest(
bucket);
int batchSize = 500, startIndex = 0, size = deleteList.size();
int endIndex = batchSize < size ? batchSize : size;
while (endIndex <= size) {
delObjsReq.setKeys(Collections.unmodifiableList(deleteList.subList(
startIndex, endIndex)));
DeleteObjectsResult dobjs = s3service.deleteObjects(delObjsReq);
LOG.info(
"Records[{}] deleted in datastore from index [{}] to [{}]",
new Object[] { dobjs.getDeletedObjects().size(),
startIndex, (endIndex - 1) });
if (endIndex == size) {
break;
} else {
startIndex = endIndex;
endIndex = (startIndex + batchSize) < size
? (startIndex + batchSize)
: size;
}
}
}
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
}
/**
* The method convert old key format to new format. For e.g. this method
* converts old key dataStore_004cb70c8f87d78f04da41e7547cb434094089ea to
* 004c-b70c8f87d78f04da41e7547cb434094089ea.
*/
private static String convertKey(String oldKey)
throws IllegalArgumentException {
if (!oldKey.startsWith(KEY_PREFIX)) {
return oldKey;
}
String key = oldKey.substring(KEY_PREFIX.length());
return key.substring(0, 4) + Utils.DASH + key.substring(4);
}
/**
* Get key from data identifier. Object is stored with key in S3.
*/
private static String getKeyName(DataIdentifier identifier) {
String key = identifier.toString();
return key.substring(0, 4) + Utils.DASH + key.substring(4);
}
/**
* Get data identifier from key.
*/
private static String getIdentifierName(String key) {
if (!key.contains(Utils.DASH)) {
return null;
}
return key.substring(0, 4) + key.substring(5);
}
/**
* The class renames object key in S3 in a thread.
*/
private class KeyRenameThread implements Runnable {
private String oldKey;
public void run() {
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
String newS3Key = convertKey(oldKey);
CopyObjectRequest copReq = new CopyObjectRequest(bucket,
oldKey, bucket, newS3Key);
Copy copy = tmx.copy(s3ReqDecorator.decorate(copReq));
try {
copy.waitForCopyResult();
LOG.debug("[{}] renamed to [{}] ", oldKey, newS3Key);
} catch (InterruptedException ie) {
LOG.error(" Exception in renaming [{}] to [{}] ",
new Object[] { ie, oldKey, newS3Key });
}
} finally {
if (contextClassLoader != null) {
Thread.currentThread().setContextClassLoader(
contextClassLoader);
}
}
}
public KeyRenameThread(String oldKey) {
this.oldKey = oldKey;
}
}
/**
* Listener which receives callback on status of S3 upload.
*/
private class S3UploadProgressListener implements ProgressListener {
private File file;
private DataIdentifier identifier;
private AsyncUploadCallback callback;
private Upload upload;
public S3UploadProgressListener(Upload upload, DataIdentifier identifier, File file,
AsyncUploadCallback callback) {
super();
this.identifier = identifier;
this.file = file;
this.callback = callback;
this.upload = upload;
}
public void progressChanged(ProgressEvent progressEvent) {
switch (progressEvent.getEventCode()) {
case ProgressEvent.COMPLETED_EVENT_CODE:
callback.onSuccess(new AsyncUploadResult(identifier, file));
break;
case ProgressEvent.FAILED_EVENT_CODE:
AsyncUploadResult result = new AsyncUploadResult(
identifier, file);
try {
AmazonClientException e = upload.waitForException();
if (e != null) {
result.setException(e);
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
callback.onFailure(result);
break;
default:
break;
}
}
}
/**
* This class implements {@link Runnable} interface to upload {@link File}
* to S3 asynchronously.
*/
private class AsyncUploadJob implements Runnable {
private DataIdentifier identifier;
private File file;
private AsyncUploadCallback callback;
public AsyncUploadJob(DataIdentifier identifier, File file,
AsyncUploadCallback callback) {
super();
this.identifier = identifier;
this.file = file;
this.callback = callback;
}
public void run() {
try {
write(identifier, file, true, callback);
} catch (DataStoreException e) {
LOG.error("Could not upload [" + identifier + "], file[" + file
+ "]", e);
}
}
}
}
================================================
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/S3BackendResourceAbortableInputStream.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext.ds;
import org.apache.commons.io.input.ProxyInputStream;
import org.apache.jackrabbit.core.data.BackendResourceAbortable;
import com.amazonaws.services.s3.model.S3ObjectInputStream;
/**
* S3 Backend based <code>InputStream</code> wrapper to implement {@link BackendResourceAbortable}.
*/
public class S3BackendResourceAbortableInputStream extends ProxyInputStream implements BackendResourceAbortable {
/**
* Underlying backend {@link S3ObjectInputStream} instance.
*/
private final S3ObjectInputStream s3input;
/**
* Construct with the given backend {@link S3ObjectInputStream} instance.
* @param s3input
*/
public S3BackendResourceAbortableInputStream(final S3ObjectInputStream s3input) {
super(s3input);
this.s3input = s3input;
}
@Override
public void abort() {
s3input.abort();
}
}
================================================
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/S3DataStore.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext.ds;
import java.util.Properties;
import org.apache.jackrabbit.core.data.Backend;
import org.apache.jackrabbit.core.data.CachingDataStore;
/**
* An Amazon S3 data store.
*/
public class S3DataStore extends CachingDataStore {
private Properties properties;
@Override
protected Backend createBackend() {
S3Backend backend = new S3Backend();
if(properties != null){
backend.setProperties(properties);
}
return backend;
}
@Override
protected String getMarkerFile() {
return "s3.init.done";
}
/**
* Properties required to configure the S3Backend
*/
public void setProperties(Properties properties) {
this.properties = properties;
}
}
================================================
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/package-info.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* see JCR-4060 */
@org.osgi.annotation.versioning.Version("2.14.0")
package org.apache.jackrabbit.aws.ext.ds;
================================================
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/TestAll.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.jackrabbit.aws.ext.ds.TestS3Ds;
import org.apache.jackrabbit.aws.ext.ds.TestS3DSAsyncTouch;
import org.apache.jackrabbit.aws.ext.ds.TestS3DsCacheOff;
import org.apache.jackrabbit.aws.ext.ds.TestS3DSWithSSES3;
import org.apache.jackrabbit.aws.ext.ds.TestS3DSWithSmallCache;
import org.apache.jackrabbit.core.data.TestCaseBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Test suite that includes all test cases for the this module.
*/
public class TestAll extends TestCase {
private static final Logger LOG = LoggerFactory.getLogger(TestAll.class);
/**
* <code>TestAll</code> suite that executes all tests inside this module. To
* run test cases against Amazon S3 pass AWS configuration properties file as
* system property -Dconfig=/opt/cq/aws.properties. Sample aws properties
* located at src/test/resources/aws.properties.
*/
public static Test suite() {
TestSuite suite = new TestSuite("S3 tests");
String config = System.getProperty(TestCaseBase.CONFIG);
LOG.info("config= " + config);
if (config != null && !"".equals(config.trim())) {
suite.addTestSuite(TestS3Ds.class);
suite.addTestSuite(TestS3DSAsyncTouch.class);
suite.addTestSuite(TestS3DSWithSmallCache.class);
suite.addTestSuite(TestS3DsCacheOff.class);
suite.addTestSuite(TestS3DSWithSSES3.class);
}
return suite;
}
}
================================================
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/S3TestDataStore.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext.ds;
import java.util.Properties;
import org.apache.jackrabbit.core.data.Backend;
/**
* This class intialize {@link S3DataStore} with the give bucket. The other
* configuration are taken from configuration file. This class is implemented so
* that each test case run in its own bucket. It was required as deletions in
* bucket are not immediately reflected in the next test case.
*/
public class S3TestDataStore extends S3DataStore {
Properties props;
public S3TestDataStore() {
super();
}
public S3TestDataStore(Properties props) {
super();
this.props = props;
}
protected Backend createBackend() {
Backend backend = new S3Backend();
((S3Backend) backend).setProperties(props);
return backend;
}
}
================================================
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DSAsyncTouch.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext.ds;
import java.io.IOException;
import javax.jcr.RepositoryException;
import org.apache.jackrabbit.core.data.CachingDataStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Test {@link CachingDataStore} with
* {@link CachingDataStore#setTouchAsync(boolean) set to true. It requires to
* pass aws config file via system property. For e.g.
* -Dconfig=/opt/cq/aws.properties. Sample aws properties located at
* src/test/resources/aws.properties
*/
public class TestS3DSAsyncTouch extends TestS3Ds {
protected static final Logger LOG = LoggerFactory.getLogger(TestS3DSAsyncTouch.class);
public TestS3DSAsyncTouch() throws IOException {
}
@Override
protected CachingDataStore createDataStore() throws RepositoryException {
S3DataStore s3ds = new S3DataStore();
s3ds.setProperties(props);
s3ds.setTouchAsync(true);
s3ds.setSecret("123456");
s3ds.init(dataStoreDir);
s3ds.updateModifiedDateOnAccess(System.currentTimeMillis() + 50 * 1000);
sleep(1000);
return s3ds;
}
}
================================================
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DSWithSSES3.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext.ds;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import javax.jcr.RepositoryException;
import org.apache.jackrabbit.aws.ext.S3Constants;
import org.apache.jackrabbit.core.data.CachingDataStore;
import org.apache.jackrabbit.core.data.DataRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Test S3DataStore operation with SSE_S3 encryption.
*/
public class TestS3DSWithSSES3 extends TestS3Ds {
protected static final Logger LOG = LoggerFactory.getLogger(TestS3DSWithSSES3.class);
public TestS3DSWithSSES3() throws IOException {
}
@Override
protected CachingDataStore createDataStore() throws RepositoryException {
props.setProperty(S3Constants.S3_ENCRYPTION,
S3Constants.S3_ENCRYPTION_SSE_S3);
S3DataStore s3ds = new S3DataStore();
s3ds.setProperties(props);
s3ds.setSecret("123456");
s3ds.init(dataStoreDir);
sleep(1000);
return s3ds;
}
/**
* Test data migration enabling SSE_S3 encryption.
*/
public void testDataMigration() {
try {
String bucket = props.getProperty(S3Constants.S3_BUCKET);
S3DataStore s3ds = new S3DataStore();
s3ds.setProperties(props);
s3ds.setCacheSize(0);
s3ds.init(dataStoreDir);
byte[] data = new byte[dataLength];
randomGen.nextBytes(data);
DataRecord rec = s3ds.addRecord(new ByteArrayInputStream(data));
assertEquals(data.length, rec.getLength());
assertRecord(data, rec);
s3ds.close();
// turn encryption now.
props.setProperty(S3Constants.S3_BUCKET, bucket);
props.setProperty(S3Constants.S3_ENCRYPTION,
S3Constants.S3_ENCRYPTION_SSE_S3);
props.setProperty(S3Constants.S3_RENAME_KEYS, "true");
s3ds = new S3DataStore();
s3ds.setProperties(props);
s3ds.setCacheSize(0);
s3ds.init(dataStoreDir);
rec = s3ds.getRecord(rec.getIdentifier());
assertEquals(data.length, rec.getLength());
assertRecord(data, rec);
randomGen.nextBytes(data);
rec = s3ds.addRecord(new ByteArrayInputStream(data));
s3ds.close();
} catch (Exception e) {
LOG.error("error:", e);
fail(e.getMessage());
}
}
}
================================================
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DSWithSmallCache.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext.ds;
import java.io.IOException;
import javax.jcr.RepositoryException;
import org.apache.jackrabbit.core.data.CachingDataStore;
import org.apache.jackrabbit.core.data.LocalCache;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Test {@link CachingDataStore} with S3Backend and with very small size (@link
* {@link LocalCache}. It requires to pass aws config file via system property.
* For e.g. -Dconfig=/opt/cq/aws.properties. Sample aws properties located at
* src/test/resources/aws.properties
*/
public class TestS3DSWithSmallCache extends TestS3Ds {
protected static final Logger LOG = LoggerFactory.getLogger(TestS3DSWithSmallCache.class);
public TestS3DSWithSmallCache() throws IOException {
}
@Override
protected CachingDataStore createDataStore() throws RepositoryException {
S3DataStore s3ds = new S3DataStore();
s3ds.setProperties(props);
s3ds.setCacheSize(dataLength * 10);
s3ds.setCachePurgeTrigFactor(0.5d);
s3ds.setCachePurgeResizeFactor(0.4d);
s3ds.setSecret("123456");
s3ds.init(dataStoreDir);
sleep(1000);
return s3ds;
}
}
================================================
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3Ds.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext.ds;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.jcr.RepositoryException;
import org.apache.jackrabbit.aws.ext.S3Constants;
import org.apache.jackrabbit.aws.ext.Utils;
import org.apache.jackrabbit.core.data.Backend;
import org.apache.jackrabbit.core.data.CachingDataStore;
import org.apache.jackrabbit.core.data.TestCaseBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.DeleteObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import com.amazonaws.services.s3.transfer.TransferManager;
/**
* Test {@link CachingDataStore} with S3Backend and local cache on. It requires
* to pass aws config file via system property. For e.g.
* -Dconfig=/opt/cq/aws.properties. Sample aws properties located at
* src/test/resources/aws.properties
*/
public class TestS3Ds extends TestCaseBase {
protected static final Logger LOG = LoggerFactory.getLogger(TestS3Ds.class);
private Date startTime = null;
protected Properties props;
protected String config;
public TestS3Ds() throws IOException {
config = System.getProperty(CONFIG);
props = Utils.readConfig(System.getProperty(CONFIG));
}
@Override
protected void setUp() throws Exception {
startTime = new Date();
super.setUp();
String bucket = String.valueOf(randomGen.nextInt(9999)) + "-"
+ String.valueOf(randomGen.nextInt(9999)) + "-test";
props.setProperty(S3Constants.S3_BUCKET, bucket);
// delete bucket if exists
deleteBucket(bucket);
}
@Override
protected void tearDown() {
try {
deleteBucket();
super.tearDown();
} catch (Exception ignore) {
}
}
@Override
protected CachingDataStore createDataStore() throws RepositoryException {
S3DataStore s3ds = new S3DataStore();
s3ds.setProperties(props);
s3ds.setSecret("123456");
s3ds.init(dataStoreDir);
sleep(1000);
return s3ds;
}
/**
* Cleaning of bucket after test run.
*/
/**
* Cleaning of bucket after test run.
*/
public void deleteBucket() throws Exception {
Backend backend = ((S3DataStore) ds).getBackend();
String bucket = ((S3Backend) backend).getBucket();
deleteBucket(bucket);
}
public void deleteBucket(String bucket) throws Exception {
LOG.info("deleting bucket [" + bucket + "]");
Properties props = Utils.readConfig(config);
AmazonS3Client s3service = Utils.openService(props);
TransferManager tmx = new TransferManager(s3service);
if (s3service.doesBucketExist(bucket)) {
for (int i = 0; i < 4; i++) {
tmx.abortMultipartUploads(bucket, startTime);
ObjectListing prevObjectListing = s3service.listObjects(bucket);
while (prevObjectListing != null) {
List<DeleteObjectsRequest.KeyVersion> deleteList = new ArrayList<DeleteObjectsRequest.KeyVersion>();
for (S3ObjectSummary s3ObjSumm : prevObjectListing.getObjectSummaries()) {
deleteList.add(new DeleteObjectsRequest.KeyVersion(
s3ObjSumm.getKey()));
}
if (deleteList.size() > 0) {
DeleteObjectsRequest delObjsReq = new DeleteObjectsRequest(
bucket);
delObjsReq.setKeys(deleteList);
s3service.deleteObjects(delObjsReq);
}
if (!prevObjectListing.isTruncated()) break;
prevObjectListing = s3service.listNextBatchOfObjects(prevObjectListing);
}
}
s3service.deleteBucket(bucket);
LOG.info("bucket [ " + bucket + "] deleted");
} else {
LOG.info("bucket [" + bucket + "] doesn't exists");
}
tmx.shutdownNow();
s3service.shutdown();
}
}
================================================
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DsCacheOff.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.aws.ext.ds;
import java.io.IOException;
import javax.jcr.RepositoryException;
import org.apache.jackrabbit.core.data.CachingDataStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Test {@link CachingDataStore} with S3Backend and local cache Off. It requires
* to pass aws config file via system property. For e.g.
* -Dconfig=/opt/cq/aws.properties. Sample aws properties located at
* src/test/resources/aws.properties
*/
public class TestS3DsCacheOff extends TestS3Ds {
protected static final Logger LOG = LoggerFactory.getLogger(TestS3DsCacheOff.class);
public TestS3DsCacheOff() throws IOException {
}
@Override
protected CachingDataStore createDataStore() throws RepositoryException {
S3DataStore s3ds = new S3DataStore();
s3ds.setProperties(props);
s3ds.setCacheSize(0);
s3ds.setSecret("123456");
s3ds.init(dataStoreDir);
sleep(1000);
return s3ds;
}
}
================================================
FILE: jackrabbit-aws-ext/src/test/resources/aws.properties
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# AWS account ID
accessKey=
# AWS secret key
secretKey=
# AWS bucket name
s3Bucket=
# AWS bucket region
# Mapping of S3 regions to their constants
# US Standard us-standard
# US West us-west-2
# US West (Northern California) us-west-1
# EU (Ireland) EU
# Asia Pacific (Singapore) ap-southeast-1
# Asia Pacific (Sydney) ap-southeast-2
# Asia Pacific (Tokyo) ap-northeast-1
# South America (Sao Paulo) sa-east-1
s3Region=
# S3 endpoint to be used. This parameter is optional
# and has a higher precedence over endpoint derived
# via S3 region.
s3EndPoint=
connectionTimeout=120000
socketTimeout=120000
maxConnections=20
maxErrorRetry=10
# maximum concurrent threads to write to S3.
writeThreads=10
# proxy configurations (optional)
proxyHost=
proxyPort=
================================================
FILE: jackrabbit-aws-ext/src/test/resources/log4j.properties
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# this is the log4j configuration for the JCR API tests
log4j.rootLogger=INFO, file
log4j.logger.org.apache.jackrabbit.core.data.CachingDataStore=ERROR
log4j.logger.org.apache.jackrabbit.aws.ext.ds=INFO
#log4j.logger.org.apache.jackrabbit.test=DEBUG
# 'file' is set to be a FileAppender.
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=target/debug.log
# 'file' uses PatternLayout.
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L)\n
================================================
FILE: jackrabbit-aws-ext/src/test/resources/repository_sample.xml
================================================
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
"http://jackrabbit.apache.org/dtd/repository-1.6.dtd">
<!-- Example Repository Configuration File -->
<Repository>
<!--
virtual file system where the repository stores global state
(e.g. registered namespaces, custom node types, etc.)
-->
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository"/>
</FileSystem>
<!--
data store configuration
-->
<!--
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>
-->
<DataStore class="org.apache.jackrabbit.aws.ext.ds.S3DataStore">
<param name="config" value="${rep.home}/aws.properties"/>
<param name="secret" value="123456789"/>
<param name="minRecordLength " value="16384"/>
<param name="cacheSize" value="68719476736"/>
<param name="cachePurgeTrigFactor" value="0.95d"/>
<param name="cachePurgeResizeFactor" value="0.85d"/>
<param name="continueOnAsyncUploadFailure" value="false"/>
<param name="concurrentUploadsThreads" value="10"/>
<param name="asyncUploadLimit" value="100"/>
<param name="uploadRetries" value="3"/>
</DataStore>
<!--
sample database data store configuration
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="url" value="jdbc:h2:~/test"/>
<param name="user" value="sa"/>
<param name="password" value="sa"/>
</DataStore>
-->
<!--
repository lock mechanism configuration
<RepositoryLockMechanism class="org.apache.jackrabbit.core.util.CooperativeFileLock"/>
-->
<!--
security configuration
-->
<Security appName="Jackrabbit">
<!--
security manager:
class: FQN of class implementing the JackrabbitSecurityManager interface
-->
<SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" workspaceName="security">
<!-- <param name="config" value="${rep.home}/security.xml"/> -->
</SecurityManager>
<!--
access manager:
class: FQN of class implementing the AccessManager interface
-->
<AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
<!-- <param name="config" value="${rep.home}/access.xml"/> -->
</AccessManager>
<LoginModule class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule">
<!--
anonymous user name ('anonymous' is the default value)
-->
<param name="anonymousId" value="anonymous"/>
<!--
administrator user id (default value if param is missing is 'admin')
-->
<param name="adminId" value="admin"/>
<!--
optional parameter 'principalProvider'.
the value refers to the class name of the PrincipalProvider implementation.
-->
<!-- <param name="principalProvider" value="..."/> -->
</LoginModule>
</Security>
<!--
location of workspaces root directory and name of default workspace
-->
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" maxIdleTime="2"/>
<!--
workspace configuration template:
used to create the initial workspace if there's no workspace yet
-->
<Workspace name="${wsp.name}">
<!--
virtual file system of the workspace:
class: FQN of class implementing the FileSystem interface
-->
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}"/>
</FileSystem>
<!--
persistence manager of the workspace:
class: FQN of class implementing the PersistenceManager interface
-->
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager">
<param name="url" value="jdbc:derby:${wsp.home}/db;create=true"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
</PersistenceManager>
<!--
Search index and the file system it uses.
class: FQN of class implementing the QueryHandler interface
-->
<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index"/>
</SearchIndex>
</Workspace>
<!--
Configures the versioning
-->
<Versioning rootPath="${rep.home}/version">
<!--
Configures the filesystem to use for versioning for the respective
persistence manager
-->
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/version" />
</FileSystem>
<!--
Configures the persistence manager to be used for persisting version state.
Please note that the current versioning implementation is based on
a 'normal' persistence manager, but this could change in future
implementations.
-->
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager">
<param name="url" value="jdbc:derby:${rep.home}/version/db;create=true"/>
<param name="schemaObjectPrefix" value="version_"/>
</PersistenceManager>
</Versioning>
<!--
Search index for content that is shared repository wide
(/jcr:system tree, contains mainly versions)
-->
<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${rep.home}/repository/index"/>
</SearchIndex>
<!--
Run with a cluster journal
-->
<Cluster id="node1">
<Journal class="org.apache.jackrabbit.core.journal.MemoryJournal"/>
</Cluster>
</Repository>
================================================
FILE: jackrabbit-core/HEADER.txt
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
================================================
FILE: jackrabbit-core/README.txt
================================================
==========================
Welcome to Jackrabbit Core
==========================
This is the Core component of the Apache Jackrabbit project.
This component contains the core of the fully JSR-170 compliant
Apache Jackrabbit content repository implementation.
================================================
FILE: jackrabbit-core/checkstyle-suppressions.xml
================================================
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.0//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
<suppressions>
<!--
Suppressions for generated JCRQL parser
-->
<suppress checks=".*" files="(JJT)?JCRSQL.*.java"/>
<!-- Suppressions for the generated XPath parser -->
<suppress checks=".*" files="(JJT)?XPath.*.java"/>
</suppressions>
================================================
FILE: jackrabbit-core/checkstyle.xml
================================================
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.1//EN"
"http://www.puppycrawl.com/dtds/configuration_1_1.dtd">
<!--
Checkstyle checks configured for Maven.
-->
<module name="Checker">
<!-- Checks that a package.html file exists for each package. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
<!-- Disabled:
<module name="PackageHtml"/>
-->
<!-- Checks whether files end with a new line. -->
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
<module name="NewlineAtEndOfFile"/>
<!-- Checks that property files contain the same keys. -->
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
<module name="Translation"/>
<module name="TreeWalker">
<property name="cacheFile" value="${checkstyle.cache.file}"/>
<!-- ************************************************************** -->
<!-- Checks that are different from the sun coding conventions ones -->
<!-- ************************************************************** -->
<module name="Header">
<property name="headerFile" value="HEADER.txt"/>
</module>
<!-- <property name="tabWidth" value="4"/> -->
<module name="LeftCurly">
<property name="option" value="eol"/>
</module>
<module name="LineLength">
<property name="max" value="132"/>
<property name="ignorePattern" value="\* \$"/>
</module>
<module name="MethodLength">
<property name="max" value="175"/>
</module>
<module name="ConstantName">
<property name="format" value="log|^[a-zA-Z][a-zA-Z0-9_]*$"/>
</module>
<!-- ************************************************************** -->
<!-- Default Sun coding conventions checks -->
<!-- ************************************************************** -->
<!-- Checks for Javadoc comments. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
<module name="JavadocType"/>
<!-- Disabled:
<module name="JavadocMethod"/>
<module name="JavadocVariable"/>
-->
<!-- Checks for Naming Conventions. -->
<!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MethodName"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>
<module name="MemberName"/>
<!-- Checks for imports -->
<!-- See http://checkstyle.sf.net/config_import.html -->
<module name="AvoidStarImport"/>
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<!-- Checks for Size Violations. -->
<!-- See http://checkstyle.sf.net/config_sizes.html -->
<module name="FileLength"/>
<module name="ParameterNumber"/>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="EmptyForIteratorPad"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"/>
<module name="TabCharacter"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<!-- Modifier Checks -->
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>
<!-- Checks for blocks. You know, those {}'s -->
<!-- See http://checkstyle.sf.net/config_blocks.html -->
<module name="AvoidNestedBlocks"/>
<module name="NeedBraces"/>
<!-- Checks for common coding problems -->
<!-- See http://checkstyle.sf.net/config_coding.html -->
<!-- <module name="AvoidInlineConditionals"/> --> <!-- DISABLED-->
<module name="DoubleCheckedLocking"/>
<module name="EqualsHashCode"/>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MissingSwitchDefault"/>
<module name="RedundantThrows">
<property name="allowUnchecked" value="true"/> <!-- DISABLED -->
<property name="allowSubclasses" value="true"/> <!-- DISABLED -->
</module>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<!-- Checks for class design -->
<!-- See http://checkstyle.sf.net/config_design.html -->
<module name="DesignForExtension">
<property name="severity" value="ignore"/> <!-- DISABLED -->
</module>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier">
<!-- Protected member variables are widely used in Jackrabbit -->
<property name="protectedAllowed" value="true"/>
</module>
<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<module name="ArrayTypeStyle"/>
<module name="FinalParameters">
<property name="severity" value="ignore"/> <!-- DISABLED -->
</module>
<module name="GenericIllegalRegexp">
<property name="format" value="\s+$"/>
<property name="message" value="Line has trailing spaces."/>
</module>
<module name="TodoComment"/>
<module name="UpperEll"/>
</module>
<module name="SuppressionFilter">
<property name="file" value="checkstyle-suppressions.xml"/>
</module>
</module>
================================================
FILE: jackrabbit-core/jdepend.properties
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
ignore.java=java.*,javax.*,org.w3c.*,org.xml.*
ignore.sun=sun.*,com.sun.*
ignore.jackrabbit=org.apache.jackrabbit.util
ignore.slf4j=org.slf4j
ignore.commons=org.apache.commons
ignore.concurrent=EDU.*
================================================
FILE: jackrabbit-core/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
<modelVersion>4.0.0</modelVersion>
<!-- ====================================================================== -->
<!-- P R O J E C T D E S C R I P T I O N -->
<!-- ====================================================================== -->
<parent>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-parent</artifactId>
<version>2.23.5-beta-SNAPSHOT</version>
<relativePath>../jackrabbit-parent/pom.xml</relativePath>
</parent>
<artifactId>jackrabbit-core</artifactId>
<name>Jackrabbit Core</name>
<description>Jackrabbit content repository implementation</description>
<properties>
<org.apache.jackrabbit.test.integration>false</org.apache.jackrabbit.test.integration>
<test.opts.memory>-Xmx512m</test.opts.memory>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>process-test-resources</id>
<phase>process-test-resources</phase>
<configuration>
<target>
<copy todir="${project.build.directory}/repository">
<fileset dir="${basedir}/src/test/repository" />
</copy>
<copy todir="${project.build.directory}/repository-2">
<fileset dir="${basedir}/src/test/repository" />
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*TestAll.java</include>
</includes>
<argLine>${test.opts}</argLine>
<systemProperties>
<property>
<name>java.awt.headless</name>
<value>true</value>
</property>
<property>
<name>derby.system.durability</name>
<value>test</value>
</property>
<property>
<name>derby.storage.fileSyncTransactionLog</name>
<value>true</value>
</property>
<property>
<name>derby.stream.error.file</name>
<value>target/derby.log</value>
</property>
<property>
<name>org.apache.jackrabbit.repository.home</name>
<value>target/repository-factory-test</value>
</property>
<property>
<name>known.issues</name>
<value>
org.apache.jackrabbit.core.ConcurrentImportTest
org.apache.jackrabbit.core.xml.DocumentViewTest#testMultiValue
org.apache.jackrabbit.core.NodeImplTest#testReferentialIntegrityCorruptionGetPath
org.apache.jackrabbit.core.integration.ConcurrentQueryTest#testConcurrentQueryWithDeletes
org.apache.jackrabbit.test.api.ShareableNodeTest#testGetName
org.apache.jackrabbit.test.api.ShareableNodeTest#testGetNode
org.apache.jackrabbit.test.api.ShareableNodeTest#testGetNodes
org.apache.jackrabbit.test.api.ShareableNodeTest#testGetNodesByPattern
org.apache.jackrabbit.test.api.ShareableNodeTest#testMoveShareableNode<!--JCR-3381-->
org.apache.jackrabbit.test.api.ShareableNodeTest#testTransientMoveShareableNode<!--JCR-3381-->
org.apache.jackrabbit.test.api.lock.OpenScopedLockTest#testLockExpiration
org.apache.jackrabbit.test.api.lock.SessionScopedLockTest#testLockExpiration
org.apache.jackrabbit.test.api.observation.NodeReorderTest#testNodeReorderMove
org.apache.jackrabbit.core.data.ConcurrentGcTest#testDatabases
org.apache.jackrabbit.core.data.GarbageCollectorTest#testCloseSessionWhileRunningGc
org.apache.jackrabbit.core.data.GarbageCollectorTest#testSimultaneousRunGC <!-- JCR-4078 -->
org.apache.jackrabbit.core.ReplacePropertyWhileOthersReadTest <!-- JCR-3835 -->
org.apache.jackrabbit.core.security.user.MembershipCachePerfTest <!-- don't run expensive test -->
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testStringLiteralInvalidName <!-- OAK-3265 -->
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testPathLiteral <!-- OAK-3265 -->
org.apache.jackrabbit.test.api.query.qom.NodeLocalNameTest#testURILiteral <!-- OAK-3265 -->
org.apache.jackrabbit.core.version.ModifyNonVersionableCheckedOutTest#testNonVersionableCheckedOut <!-- JCR-5007 -->
org.apache.jackrabbit.core.version.ModifyNonVersionableCheckedOutTest#testModifyNonVersionableNodeWithCheckedOutProperty <!-- JCR-5007 -->
org.apache.jackrabbit.core.AddMoveTest#testTopLevelAddRemove <!-- JCR-5205 -->
org.apache.jackrabbit.core.config.SecurityConfigTest#testInvalidConfig <!-- JCR-5206 -->
org.apache.jackrabbit.core.nodetype.CyclicNodeTypeRegistrationTest <!-- JCR-5208 -->
org.apache.jackrabbit.core.query.lucene.SearchIndexConsistencyCheckTest#testDoubleCheckStressTest <!-- JCR-5209 -->
org.apache.jackrabbit.core.version.RemoveAndAddVersionLabelXATest#testVersionLabel <!-- JCR-5210 -->
</value>
</property>
<property>
<name>org.apache.jackrabbit.test.integration</name>
<value>${org.apache.jackrabbit.test.integration}</value>
</property>
</systemProperties>
</configuration>
<executions>
<execution>
<id>do_test</id>
<phase>integration-test</phase>
<configuration>
<includes>
<include>**/integration/*Test.java</include>
</includes>
</configuration>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes>
<exclude>src/main/javadoc/**/*.uxf</exclude>
<exclude>src/test/repository/**</exclude>
<exclude>src/test/resources/**/*.txt</exclude>
<exclude>src/test/resources/**/*.rtf</exclude>
<exclude>src/test/resources/**/*.cnd</exclude>
<exclude>src/test/compatibility/**/target/**</exclude>
<exclude>src/test/compatibility/**/.*/**</exclude>
<exclude>src/test/compatibility/repositories.zip</exclude>
<exclude>repository/**</exclude>
<exclude>*.log</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>logback-test.xml</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/resources-filtered</directory>
<filtering>true</filtering>
</resource>
</resources>
<pluginManagement>
<plugins>
<!-- JCR-3136: Add m2e lifecycle mappings for Eclipse Indigo -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[3,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
<dependency>
<groupId>concurrent</groupId>
<artifactId>concurrent</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>oak-jackrabbit-api</artifactId>
<version>${oak-jackrabbit-api.version.implemented}</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-data</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-data</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-spi-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-spi</artifactId>
<version>${project.version}</version>
<classifier />
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-spi</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbytools</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-tests</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-benchmark</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers-standard-package</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.4.240</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>integrationTesting</id>
<properties>
<org.apache.jackrabbit.test.integration>true</org.apache.jackrabbit.test.integration>
</properties>
</profile>
<!--
These profiles can be used to run the (integration) tests against different DB backends.
For instance, if you want to run the integration tests against MySQL backend, do:
mvn clean integration-test -Pmysql,use-descriptor-overlay
Note: the ${config.db.name} database is dropped and re-created in the clean phase.
-->
<!-- JCR-5148 <profile>
<id>mysql</id>
<properties>
<config.db.name>jackrabbit</config.db.name>
<config.db.fsclass>org.apache.jackrabbit.core.fs.db.DbFileSystem</config.db.fsclass>
<config.db.dsclass>org.apache.jackrabbit.core.data.db.DbDataStore</config.db.dsclass>
<config.db.pmclass>org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager</config.db.pmclass>
<config.db.journalclass>org.apache.jackrabbit.core.journal.DatabaseJournal</config.db.journalclass>
<config.db.schema>mysql</config.db.schema>
<config.db.validation.query>select 1</config.db.validation.query>
<config.db.user>user</config.db.user>
<config.db.pwd>pwd</config.db.pwd>
<config.db.driver>com.mysql.jdbc.Driver</config.db.driver>
<config.db.url>jdbc:mysql://localhost:3306/${config.db.name}?autoReconnect=true</config.db.url>
<config.db.metaurl>jdbc:mysql://localhost:3306/mysql?autoReconnect=true</config.db.metaurl>
<config.db.dropcommand>drop database ${config.db.name}</config.db.dropcommand>
<config.db.createcommand>create database ${config.db.name}</config.db.createcommand>
</properties>
</profile> -->
<profile>
<id>mssql</id>
<properties>
<config.db.name>jackrabbit</config.db.name>
<config.db.fsclass>org.apache.jackrabbit.core.fs.db.MSSqlFileSystem</config.db.fsclass>
<config.db.dsclass>org.apache.jackrabbit.core.data.db.DbDataStore</config.db.dsclass>
<config.db.pmclass>org.apache.jackrabbit.core.persistence.pool.MSSqlPersistenceManager</config.db.pmclass>
<config.db.journalclass>org.apache.jackrabbit.core.journal.MSSqlDatabaseJournal</config.db.journalclass>
<config.db.schema>mssql</config.db.schema>
<config.db.validation.query>select 1</config.db.validation.query>
<config.db.user>user</config.db.user>
<config.db.pwd>pwd</config.db.pwd>
<config.db.driver>net.sourceforge.jtds.jdbc.Driver</config.db.driver>
<config.db.url>jdbc:jtds:sqlserver://localhost:2433/${config.db.name}</config.db.url>
<config.db.metaurl>jdbc:jtds:sqlserver://localhost:2433/master</config.db.metaurl>
<config.db.dropcommand>drop database ${config.db.name}</config.db.dropcommand>
<config.db.createcommand>create database ${config.db.name}</config.db.createcommand>
</properties>
</profile>
<profile>
<id>oracle</id>
<properties>
<config.db.name>unused</config.db.name>
<config.db.fsclass>org.apache.jackrabbit.core.fs.db.OracleFileSystem</config.db.fsclass>
<config.db.dsclass>org.apache.jackrabbit.core.data.db.DbDataStore</config.db.dsclass>
<config.db.pmclass>org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager</config.db.pmclass>
<config.db.journalclass>org.apache.jackrabbit.core.journal.OracleDatabaseJournal</config.db.journalclass>
<config.db.schema>oracle</config.db.schema>
<config.db.validation.query>select 'validationQuery' from dual</config.db.validation.query>
<config.db.user>user</config.db.user>
<config.db.pwd>password</config.db.pwd>
<config.db.driver>oracle.jdbc.driver.OracleDriver</config.db.driver>
<config.db.url>jdbc:oracle:thin:@localhost:1521:xe</config.db.url>
<config.db.metaurl>unused</config.db.metaurl>
<config.db.dropcommand>unused</config.db.dropcommand>
<config.db.createcommand>unused</config.db.createcommand>
</properties>
</profile>
<profile>
<id>h2</id>
<properties>
<config.db.name>jackrabbit</config.db.name>
<config.db.fsclass>org.apache.jackrabbit.core.fs.db.DbFileSystem</config.db.fsclass>
<config.db.dsclass>org.apache.jackrabbit.core.data.db.DbDataStore</config.db.dsclass>
<config.db.pmclass>org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager</config.db.pmclass>
<config.db.journalclass>org.apache.jackrabbit.core.journal.DatabaseJournal</config.db.journalclass>
<config.db.schema>h2</config.db.schema>
<config.db.validation.query>call 1</config.db.validation.query>
<config.db.user>sa</config.db.user>
<config.db.pwd>sa</config.db.pwd>
<config.db.driver>org.h2.Driver</config.db.driver>
<!-- <config.db.url>jdbc:h2:~/jackrabbit2;MAX_LENGTH_INPLACE_LOB=10240;DB_CLOSE_ON_EXIT=FALSE;TRACE_LEVEL_FILE=2</config.db.url> -->
<config.db.url>jdbc:h2:~/jackrabbit2;MAX_LENGTH_INPLACE_LOB=10240;DB_CLOSE_ON_EXIT=FALSE</config.db.url>
<config.db.metaurl>unused</config.db.metaurl>
<config.db.dropcommand>drop all objects delete files</config.db.dropcommand>
<config.db.createcommand>unused</config.db.createcommand>
</properties>
</profile>
<profile>
<id>use-descriptor-overlay</id>
<build>
<plugins>
<!-- Drop/create the test database on clean -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<dependencies>
<!-- JCR-5148 <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
<type>jar</type>
<scope>provided</scope>
</dependency> -->
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
<configuration>
<driver>${config.db.driver}</driver>
<url>${config.db.metaurl}</url>
<username>${config.db.user}</username>
<password>${config.db.pwd}</password>
<settingsKey>sensibleKey</settingsKey>
</configuration>
<executions>
<execution>
<id>drop-db</id>
<phase>clean</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<sqlCommand>${config.db.dropcommand}</sqlCommand>
<onError>continue</onError>
</configuration>
</execution>
<execution>
<id>create-db</id>
<phase>clean</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<sqlCommand>${config.db.createcommand}</sqlCommand>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>overlay-repository-descriptors</id>
<phase>process-test-resources</phase>
<configuration>
<target>
<copy todir="${project.build.directory}/repository" overwrite="true">
<fileset dir="${basedir}/src/test/repository-descriptor-overlay" />
<filterset>
<filter token="repo.id" value="A" />
<filter token="config.db.schema" value="${config.db.schema}" />
<filter token="config.db.validation.query" value="${config.db.validation.query}" />
<filter token="config.db.driver" value="${config.db.driver}" />
<filter token="config.db.url" value="${config.db.url}" />
<filter token="config.db.user" value="${config.db.user}" />
<filter token="config.db.pwd" value="${config.db.pwd}" />
<filter token="config.db.fsclass" value="${config.db.fsclass}" />
<filter token="config.db.dsclass" value="${config.db.dsclass}" />
<filter token="config.db.pmclass" value="${config.db.pmclass}" />
<filter token="config.db.journalclass" value="${config.db.journalclass}" />
</filterset>
</copy>
<copy todir="${project.build.directory}/repository-2" overwrite="true">
<fileset dir="${basedir}/src/test/repository-descriptor-overlay" />
<filterset>
<filter token="repo.id" value="B" />
<filter token="config.db.schema" value="${config.db.schema}" />
<filter token="config.db.validation.query" value="${config.db.validation.query}" />
<filter token="config.db.driver" value="${config.db.driver}" />
<filter token="config.db.url" value="${config.db.url}" />
<filter token="config.db.user" value="${config.db.user}" />
<filter token="config.db.pwd" value="${config.db.pwd}" />
<filter token="config.db.fsclass" value="${config.db.fsclass}" />
<filter token="config.db.dsclass" value="${config.db.dsclass}" />
<filter token="config.db.pmclass" value="${config.db.pmclass}" />
<filter token="config.db.journalclass" value="${config.db.journalclass}" />
</filterset>
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<!-- JCR-5148 <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
<type>jar</type>
<scope>test</scope>
</dependency> -->
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
================================================
FILE: jackrabbit-core/src/main/appended-resources/META-INF/NOTICE
================================================
Based on source code originally developed by
Day Software (http://www.day.com/).
================================================
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AbstractNodeData.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.core;
import javax.jcr.nodetype.NodeDefinition;
import javax.jcr.RepositoryException;
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
import org.apache.jackrabbit.core.state.NodeState;
/**
* Data object representing a node.
*/
public abstract class AbstractNodeData extends ItemData {
/** Primary parent id of a shareable node. */
private NodeId primaryParentId;
/**
* Create a new instance of this class.
*
* @param state node state
* @param itemMgr item manager
*/
protected AbstractNodeData(NodeState state, ItemManager itemMgr) {
super(state, itemMgr);
if (state.isShareable()) {
this.primaryParentId = state.getParentId();
}
}
/**
* Create a new instance of this class.
*
* @param id item id
*/
protected AbstractNodeData(ItemId id) {
super(id);
}
/**
* Return the associated node state.
*
* @return node state
*/
public NodeState getNodeState() {
return (NodeState) getState();
}
/**
* Return the associated node definition.
*
* @return node definition
* @throws RepositoryException if the definition cannot be retrieved.
*/
public NodeDefinition getNodeDefinition() throws RepositoryException {
return (NodeDefinition) getDefinition();
}
/**
* Sets the associated node definition.
*
* @param definition new node definition
*/
public void setNodeDefinition(NodeDefinition definition) {
setDefinition(definition);
}
/**
* Return the parent id of this node. Every shareable node in a shared set
* has a different parent.
*
* @return parent id
*/
@Override
public NodeId getParentId() {
if (primaryParentId != null) {
return primaryParentId;
}
return getState().getParentId();
}
/**
* Return the primary parent id of this node. Every shareable node in a
* shared set has a different primary parent. Returns <code>null</code>
* for nodes that are not shareable.
*
* @return primary parent id or <code>null</code>
*/
public NodeId getPrimaryParentId() {
return primaryParentId;
}
/**
* Set the primary parent id of this node.
*
* @param primaryParentId primary parent id
*/
protected void setPrimaryParentId(NodeId primaryParentId) {
this.primaryParentId = primaryParentId;
}
/**
* {@inheritDoc}
*/
@Override
public boolean isNode() {
return true;
}
}
================================================
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AddMixinOperation.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.core;
import static org.apache.jackrabbit.core.ItemValidator.CHECK_CHECKED_OUT;
import static org.apache.jackrabbit.core.ItemValidator.CHECK_CONSTRAINTS;
import static org.apache.jackrabbit.core.ItemValidator.CHECK_HOLD;
import static org.apache.jackrabbit.core.ItemValidator.CHECK_LOCK;
import static org.apache.jackrabbit.spi.commons.name.NameConstants.MIX_SIMPLE_VERSIONABLE;
import static org.apache.jackrabbit.spi.commons.name.NameConstants.MIX_VERSIONABLE;
import java.util.HashSet;
import java.util.Set;
import javax.jcr.RepositoryException;
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.nodetype.NodeDefinition;
import javax.jcr.nodetype.PropertyDefinition;
import org.apache.jackrabbit.core.nodetype.EffectiveNodeType;
import org.apache.jackrabbit.core.nodetype.NodeTypeConflictException;
import org.apache.jackrabbit.core.nodetype.NodeTypeImpl;
import org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl;
import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
import org.apache.jackrabbit.core.security.authorization.Permission;
import org.apache.jackrabbit.core.session.SessionContext;
import org.apache.jackrabbit.core.session.SessionWriteOperation;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.commons.nodetype.NodeDefinitionImpl;
import org.apache.jackrabbit.spi.commons.nodetype.PropertyDefinitionImpl;
/**
* Session operation for adding a mixin type to a node.
*/
class AddMixinOperation implements SessionWriteOperation<Object> {
private final NodeImpl node;
private final Name mixinName;
public AddMixinOperation(NodeImpl node, Name mixinName) {
this.node = node;
this.mixinName = mixinName;
}
public Object perform(SessionContext context) throws RepositoryException {
int permissions = Permission.NODE_TYPE_MNGMT;
// special handling of mix:(simple)versionable. since adding the
// mixin alters the version storage jcr:versionManagement privilege
// is required in addition.
if (MIX_VERSIONABLE.equals(mixinName)
|| MIX_SIMPLE_VERSIONABLE.equals(mixinName)) {
permissions |= Permission.VERSION_MNGMT;
}
context.getItemValidator().checkModify(
node,
CHECK_LOCK | CHECK_CHECKED_OUT | CHECK_CONSTRAINTS | CHECK_HOLD,
permissions);
NodeTypeManagerImpl ntMgr = context.getNodeTypeManager();
NodeTypeImpl mixin = ntMgr.getNodeType(mixinName);
if (!mixin.isMixin()) {
throw new RepositoryException(
context.getJCRName(mixinName) + " is not a mixin node type");
}
Name primaryTypeName = node.getNodeState().getNodeTypeName();
NodeTypeImpl primaryType = ntMgr.getNodeType(primaryTypeName);
if (primaryType.isDerivedFrom(mixinName)) {
// new mixin is already included in primary type
return this;
}
// build effective node type of mixin's & primary type in order
// to detect conflicts
NodeTypeRegistry ntReg = context.getNodeTypeRegistry();
EffectiveNodeType entExisting;
try {
// existing mixin's
Set<Name> mixins = new HashSet<Name>(
node.getNodeState().getMixinTypeNames());
// build effective node type representing primary type including
// existing mixin's
entExisting = ntReg.getEffectiveNodeType(primaryTypeName, mixins);
if (entExisting.includesNodeType(mixinName)) {
// new mixin is already included in existing mixin type(s)
return this;
}
// add new mixin
mixins.add(mixinName);
// try to build new effective node type (will throw in case
// of conflicts)
ntReg.getEffectiveNodeType(primaryTypeName, mixins);
} catch (NodeTypeConflictException e) {
throw new ConstraintViolationException(e.getMessage(), e);
}
// do the actual modifications implied by the new mixin;
// try to revert the changes in case an exception occurs
try {
// modify the state of this node
NodeState thisState =
(NodeState) node.getOrCreateTransientItemState();
// add mixin name
Set<Name> mixins = new HashSet<Name>(thisState.getMixinTypeNames());
mixins.add(mixinName);
thisState.setMixinTypeNames(mixins);
// set jcr:mixinTypes property
node.setMixinTypesProperty(mixins);
// add 'auto-create' properties defined in mixin type
for (PropertyDefinition aPda : mixin.getAutoCreatedPropertyDefinitions()) {
PropertyDefinitionImpl pd = (PropertyDefinitionImpl) aPda;
// make sure that the property is not already defined
// by primary type or existing mixin's
NodeTypeImpl declaringNT =
(NodeTypeImpl) pd.getDeclaringNodeType();
if (!entExisting.includesNodeType(declaringNT.getQName())) {
node.createChildProperty(
pd.unwrap().getName(), pd.getRequiredType(), pd);
}
}
// recursively add 'auto-create' child nodes defined in mixin type
for (NodeDefinition aNda : mixin.getAutoCreatedNodeDefinitions()) {
NodeDefinitionImpl nd = (NodeDefinitionImpl) aNda;
// make sure that the child node is not already defined
// by primary type or existing mixin's
NodeTypeImpl declaringNT =
(NodeTypeImpl) nd.getDeclaringNodeType();
if (!entExisting.includesNodeType(declaringNT.getQName())) {
node.createChildNode(
nd.unwrap().getName(),
(NodeTypeImpl) nd.getDefaultPrimaryType(),
null);
}
}
} catch (RepositoryException re) {
// try to undo the modifications by removing the mixin
try {
node.removeMixin(mixinName);
} catch (RepositoryException re1) {
// silently ignore & fall through
}
throw re;
}
return this;
}
//--------------------------------------------------------------< Object >
/**
* Returns a string representation of this operation.
*/
public String toString() {
return "node.addMixin(" + mixinName + ")";
}
}
================================================
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.core;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.jcr.AccessDeniedException;
import javax.jcr.ItemExistsException;
import javax.jcr.ItemNotFoundException;
import javax.jcr.PathNotFoundException;
import javax.jcr.PropertyType;
import javax.jcr.ReferentialIntegrityException;
import javax.jcr.RepositoryException;
import javax.jcr.UnsupportedRepositoryOperationException;
import javax.jcr.lock.LockException;
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.version.VersionException;
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.nodetype.EffectiveNodeType;
import org.apache.jackrabbit.core.nodetype.NodeTypeConflictException;
import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
import org.apache.jackrabbit.core.retention.RetentionRegistry;
import org.apache.jackrabbit.core.security.AccessManager;
import org.apache.jackrabbit.core.security.authorization.Permission;
import org.apache.jackrabbit.core.session.SessionContext;
import org.apache.jackrabbit.core.state.ChildNodeEntry;
import org.apache.jackrabbit.core.state.ItemState;
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.ItemStateManager;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.PropertyState;
import org.apache.jackrabbit.core.state.UpdatableItemStateManager;
import org.apache.jackrabbit.core.util.ReferenceChangeTracker;
import org.apache.jackrabbit.core.value.InternalValue;
import org.apache.jackrabbit.core.version.VersionHistoryInfo;
import org.apache.jackrabbit.core.version.InternalVersionManager;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.Path;
import org.apache.jackrabbit.spi.QPropertyDefinition;
import org.apache.jackrabbit.spi.QItemDefinition;
import org.apache.jackrabbit.spi.QNodeDefinition;
import org.apache.jackrabbit.spi.commons.conversion.MalformedPathException;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <code>BatchedItemOperations</code> is an <i>internal</i> helper class that
* provides both high- and low-level operations directly on the
* <code>ItemState</code> level.
*/
public class BatchedItemOperations extends ItemValidator {
private static Logger log = LoggerFactory.getLogger(BatchedItemOperations.class);
// flags used by the copy(...) methods
protected static final int COPY = 0;
protected static final int CLONE = 1;
protected static final int CLONE_REMOVE_EXISTING = 2;
/**
* wrapped item state manager
*/
protected final UpdatableItemStateManager stateMgr;
/**
* current session used for checking access rights
*/
protected final SessionImpl session;
private final HierarchyManager hierMgr;
/**
* Creates a new <code>BatchedItemOperations</code> instance.
*
* @param stateMgr item state manager
* @param sessionContext the session context
* @throws RepositoryException
*/
public BatchedItemOperations(
UpdatableItemStateManager stateMgr, SessionContext sessionContext)
throws RepositoryException {
super(sessionContext);
this.stateMgr = stateMgr;
this.session = sessionContext.getSessionImpl();
this.hierMgr = sessionContext.getHierarchyManager();
}
//-----------------------------------------< controlling batch operations >
/**
* Starts an edit operation on the wrapped state manager.
* At the end of this operation, either {@link #update} or {@link #cancel}
* must be invoked.
*
* @throws IllegalStateException if the state manager is already in edit mode
*/
public void edit() throws IllegalStateException {
stateMgr.edit();
}
/**
* Store an item state.
*
* @param state item state that should be stored
* @throws IllegalStateException if the manager is not in edit mode.
*/
public void store(ItemState state) throws IllegalStateException {
stateMgr.store(state);
}
/**
* Destroy an item state.
*
* @param state item state that should be destroyed
* @throws IllegalStateException if the manager is not in edit mode.
*/
public void destroy(ItemState state) throws IllegalStateException {
stateMgr.destroy(state);
}
/**
* End an update operation. This will save all changes made since
* the last invocation of {@link #edit()}. If this operation fails,
* no item will have been saved.
*
* @throws RepositoryException if the update operation failed
* @throws IllegalStateException if the state manager is not in edit mode
*/
public void update() throws RepositoryException, IllegalStateException {
try {
stateMgr.update();
} catch (ItemStateException ise) {
String msg = "update operation failed";
log.debug(msg, ise);
throw new RepositoryException(msg, ise);
}
}
/**
* Cancel an update operation. This will undo all changes made since
* the last invocation of {@link #edit()}.
*
* @throws IllegalStateException if the state manager is not in edit mode
*/
public void cancel() throws IllegalStateException {
stateMgr.cancel();
}
//-------------------------------------------< high-level item operations >
/**
* Clones the subtree at the node <code>srcAbsPath</code> in to the new
* location at <code>destAbsPath</code>. This operation is only supported:
* <ul>
* <li>If the source element has the mixin <code>mix:shareable</code> (or some
* derived node type)</li>
* <li>If the parent node of <code>destAbsPath</code> has not already a shareable
* node in the same shared set as the node at <code>srcPath</code>.</li>
* </ul>
*
* @param srcPath source path
* @param destPath destination path
* @return the node id of the destination's parent
*
* @throws ConstraintViolationException if the operation would violate a
* node-type or other implementation-specific constraint.
* @throws VersionException if the parent node of <code>destAbsPath</code> is
* versionable and checked-in, or is non-versionable but its nearest versionable ancestor is
* checked-in. This exception will also be thrown if <code>removeExisting</code> is <code>true</code>,
* and a UUID conflict occurs that would require the moving and/or altering of a node that is checked-in.
* @throws AccessDeniedException if the current session does not have
* sufficient access rights to complete the operation.
* @throws PathNotFoundException if the node at <code>srcAbsPath</code> in
* <code>srcWorkspace</code> or the parent of <code>destAbsPath</code> in this workspace does not exist.
* @throws ItemExistsException if a property already exists at
* <code>destAbsPath</code> or a node already exist there, and same name
* siblings are not allowed or if <code>removeExisting</code> is false and a
* UUID conflict occurs.
* @throws LockException if a lock prevents the clone.
* @throws RepositoryException if the last element of <code>destAbsPath</code>
* has an index or if another error occurs.
*/
public NodeId clone(Path srcPath, Path destPath)
throws ConstraintViolationException, AccessDeniedException,
VersionException, PathNotFoundException, ItemExistsException,
LockException, RepositoryException, IllegalStateException {
// check precondition
checkInEditMode();
// 1. check paths & retrieve state
NodeState srcState = getNodeState(srcPath);
Path destParentPath = destPath.getAncestor(1);
NodeState destParentState = getNodeState(destParentPath);
int ind = destPath.getIndex();
if (ind > 0) {
// subscript in name element
String msg =
"invalid destination path: " + safeGetJCRPath(destPath)
+ " (subscript in name element is not allowed)";
log.debug(msg);
throw new RepositoryException(msg);
}
return clone(srcState, destParentState, destPath.getName());
}
/**
* Implementation of {@link #clone(Path, Path)} that has already determined
* the affected <code>NodeState</code>s.
*
* @param srcState source state
* @param destParentState destination parent state
* @param destName destination name
* @return the node id of the destination's parent
*
* @throws ConstraintViolationException if the operation would violate a
* node-type or other implementation-specific constraint.
* @throws VersionException if the parent node of <code>destAbsPath</code> is
* versionable and checked-in, or is non-versionable but its nearest versionable ancestor is
* checked-in. This exception will also be thrown if <code>removeExisting</code> is <code>true</code>,
* and a UUID conflict occurs that would require the moving and/or altering of a node that is checked-in.
* @throws AccessDeniedException if the current session does not have
* sufficient access rights to complete the operation.
* @throws PathNotFoundException if the node at <code>srcAbsPath</code> in
* <code>srcWorkspace</code> or the parent of <code>destAbsPath</code> in this workspace does not exist.
* @throws ItemExistsException if a property already exists at
* <code>destAbsPath</code> or a node already exist there, and same name
* siblings are not allowed or if <code>removeExisting</code> is false and a
* UUID conflict occurs.
* @throws LockException if a lock prevents the clone.
* @throws RepositoryException if the last element of <code>destAbsPath</code>
* has an index or if another error occurs.
* @see #clone(Path, Path)
*/
public NodeId clone(NodeState srcState, NodeState destParentState, Name destName)
throws ConstraintViolationException, AccessDeniedException,
VersionException, PathNotFoundException, ItemExistsException,
LockException, RepositoryException, IllegalStateException {
// 2. check access rights, lock status, node type constraints, etc.
checkAddNode(destParentState, destName,
srcState.getNodeTypeName(), CHECK_ACCESS | CHECK_LOCK
| CHECK_CHECKED_OUT | CHECK_CONSTRAINTS | CHECK_HOLD | CHECK_RETENTION);
// 3. verify that source has mixin mix:shareable
if (!isShareable(srcState)) {
String msg =
"Cloning inside a workspace is only allowed for shareable"
+ " nodes. Node with type " + srcState.getNodeTypeName()
+ " is not shareable.";
log.debug(msg);
throw new RepositoryException(msg);
}
// 4. detect share cycle
NodeId srcId = srcState.getNodeId();
NodeId destParentId = destParentState.getNodeId();
if (destParentId.equals(srcId) || hierMgr.isAncestor(srcId, destParentId)) {
String msg =
"Cloning Node with id " + srcId
+ " to parent with id " + destParentId
+ " would create a share cycle.";
log.debug(msg);
throw new RepositoryException(msg);
}
// 5. do clone operation (modify and store affected states)
if (!srcState.addShare(destParentState.getNodeId())) {
String msg =
"Adding a shareable node with id ("
+ destParentState.getNodeId()
+ ") twice to the same parent is not supported.";
log.debug(msg);
throw new UnsupportedRepositoryOperationException(msg);
}
destParentState.addChildNodeEntry(destName, srcState.getNodeId());
// store states
stateMgr.store(srcState);
stateMgr.store(destParentState);
return destParentState.getNodeId();
}
/**
* Copies the tree at <code>srcPath</code> to the new location at
* <code>destPath</code>. Returns the id of the node at its new position.
* <p>
* <b>Precondition:</b> the state manager needs to be in edit mode.
*
* @param srcPath
* @param destPath
* @param flag one of
* <ul>
* <li><code>COPY</code></li>
* <li><code>CLONE</code></li>
* <li
Showing preview only (295K chars total). Download the full file or copy to clipboard to get everything.
gitextract_13_ffsv_/ ├── .asf.yaml ├── .github/ │ └── workflows/ │ └── build.yml ├── .gitignore ├── .mvn/ │ └── README.md ├── LICENSE.txt ├── NOTICE.txt ├── README.txt ├── RELEASE-NOTES.txt ├── assembly.xml ├── examples/ │ └── jackrabbit-firsthops/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── firsthops/ │ │ ├── FirstHop.java │ │ ├── SecondHop.java │ │ └── ThirdHop.java │ └── resources/ │ ├── log4j.properties │ └── test.xml ├── jackrabbit-aws-ext/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── aws/ │ │ └── ext/ │ │ ├── S3Constants.java │ │ ├── S3RequestDecorator.java │ │ ├── Utils.java │ │ └── ds/ │ │ ├── S3Backend.java │ │ ├── S3BackendResourceAbortableInputStream.java │ │ ├── S3DataStore.java │ │ └── package-info.java │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── aws/ │ │ └── ext/ │ │ ├── TestAll.java │ │ └── ds/ │ │ ├── S3TestDataStore.java │ │ ├── TestS3DSAsyncTouch.java │ │ ├── TestS3DSWithSSES3.java │ │ ├── TestS3DSWithSmallCache.java │ │ ├── TestS3Ds.java │ │ └── TestS3DsCacheOff.java │ └── resources/ │ ├── aws.properties │ ├── log4j.properties │ └── repository_sample.xml ├── jackrabbit-core/ │ ├── HEADER.txt │ ├── README.txt │ ├── checkstyle-suppressions.xml │ ├── checkstyle.xml │ ├── jdepend.properties │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── appended-resources/ │ │ │ └── META-INF/ │ │ │ └── NOTICE │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── core/ │ │ │ ├── AbstractNodeData.java │ │ │ ├── AddMixinOperation.java │ │ │ ├── BatchedItemOperations.java │ │ │ ├── CachingHierarchyManager.java │ │ │ ├── DefaultSecurityManager.java │ │ │ ├── HierarchyManager.java │ │ │ ├── HierarchyManagerImpl.java │ │ │ ├── ItemData.java │ │ │ ├── ItemImpl.java │ │ │ ├── ItemLifeCycleListener.java │ │ │ ├── ItemManager.java │ │ │ ├── ItemRefreshOperation.java │ │ │ ├── ItemRemoveOperation.java │ │ │ ├── ItemSaveOperation.java │ │ │ ├── ItemValidator.java │ │ │ ├── JackrabbitRepositoryStub.java │ │ │ ├── JackrabbitThreadPool.java │ │ │ ├── LazyItemIterator.java │ │ │ ├── LowPriorityTask.java │ │ │ ├── NamespaceRegistryImpl.java │ │ │ ├── NodeData.java │ │ │ ├── NodeDataRef.java │ │ │ ├── NodeImpl.java │ │ │ ├── NodeTypeInstanceHandler.java │ │ │ ├── PropertyData.java │ │ │ ├── PropertyImpl.java │ │ │ ├── ProtectedItemModifier.java │ │ │ ├── RemoveMixinOperation.java │ │ │ ├── RepositoryChecker.java │ │ │ ├── RepositoryContext.java │ │ │ ├── RepositoryCopier.java │ │ │ ├── RepositoryFactoryImpl.java │ │ │ ├── RepositoryImpl.java │ │ │ ├── RepositoryManagerImpl.java │ │ │ ├── SearchManager.java │ │ │ ├── SessionFactory.java │ │ │ ├── SessionImpl.java │ │ │ ├── SessionListener.java │ │ │ ├── SessionMoveOperation.java │ │ │ ├── SystemSession.java │ │ │ ├── TestContentLoader.java │ │ │ ├── TransientRepository.java │ │ │ ├── UserPerWorkspaceSecurityManager.java │ │ │ ├── VersionManagerImpl.java │ │ │ ├── WorkspaceImpl.java │ │ │ ├── WorkspaceManager.java │ │ │ ├── XASessionImpl.java │ │ │ ├── ZombieHierarchyManager.java │ │ │ ├── cache/ │ │ │ │ ├── AbstractCache.java │ │ │ │ ├── Cache.java │ │ │ │ ├── CacheAccessListener.java │ │ │ │ ├── CacheManager.java │ │ │ │ ├── ConcurrentCache.java │ │ │ │ └── GrowingLRUMap.java │ │ │ ├── cluster/ │ │ │ │ ├── ChangeLogRecord.java │ │ │ │ ├── ClusterContext.java │ │ │ │ ├── ClusterException.java │ │ │ │ ├── ClusterNode.java │ │ │ │ ├── ClusterOperation.java │ │ │ │ ├── ClusterRecord.java │ │ │ │ ├── ClusterRecordDeserializer.java │ │ │ │ ├── ClusterRecordProcessor.java │ │ │ │ ├── ClusterSession.java │ │ │ │ ├── DefaultClusterOperation.java │ │ │ │ ├── LockEventChannel.java │ │ │ │ ├── LockEventListener.java │ │ │ │ ├── LockRecord.java │ │ │ │ ├── NamespaceEventChannel.java │ │ │ │ ├── NamespaceEventListener.java │ │ │ │ ├── NamespaceRecord.java │ │ │ │ ├── NodeTypeEventChannel.java │ │ │ │ ├── NodeTypeEventListener.java │ │ │ │ ├── NodeTypeRecord.java │ │ │ │ ├── PrivilegeEventChannel.java │ │ │ │ ├── PrivilegeEventListener.java │ │ │ │ ├── PrivilegeRecord.java │ │ │ │ ├── Update.java │ │ │ │ ├── UpdateEventChannel.java │ │ │ │ ├── UpdateEventListener.java │ │ │ │ ├── WorkspaceEventChannel.java │ │ │ │ ├── WorkspaceListener.java │ │ │ │ └── WorkspaceRecord.java │ │ │ ├── config/ │ │ │ │ ├── AccessManagerConfig.java │ │ │ │ ├── BeanConfig.java │ │ │ │ ├── BeanConfigVisitor.java │ │ │ │ ├── BeanFactory.java │ │ │ │ ├── ClusterConfig.java │ │ │ │ ├── ConfigurationEntityResolver.java │ │ │ │ ├── ConfigurationErrorHandler.java │ │ │ │ ├── ConfigurationParser.java │ │ │ │ ├── ImportConfig.java │ │ │ │ ├── LoginModuleConfig.java │ │ │ │ ├── NoOpConfigVisitor.java │ │ │ │ ├── PersistenceManagerConfig.java │ │ │ │ ├── RepositoryConfig.java │ │ │ │ ├── RepositoryConfigurationParser.java │ │ │ │ ├── SearchConfig.java │ │ │ │ ├── SecurityConfig.java │ │ │ │ ├── SecurityManagerConfig.java │ │ │ │ ├── SimpleBeanFactory.java │ │ │ │ ├── UserManagerConfig.java │ │ │ │ ├── VersioningConfig.java │ │ │ │ ├── WorkspaceConfig.java │ │ │ │ └── WorkspaceSecurityConfig.java │ │ │ ├── fs/ │ │ │ │ ├── db/ │ │ │ │ │ ├── DB2FileSystem.java │ │ │ │ │ ├── DatabaseFileSystem.java │ │ │ │ │ ├── DbFileSystem.java │ │ │ │ │ ├── DerbyFileSystem.java │ │ │ │ │ ├── JNDIDatabaseFileSystem.java │ │ │ │ │ ├── MSSqlFileSystem.java │ │ │ │ │ ├── Oracle9FileSystem.java │ │ │ │ │ └── OracleFileSystem.java │ │ │ │ └── mem/ │ │ │ │ ├── MemoryFile.java │ │ │ │ ├── MemoryFileSystem.java │ │ │ │ ├── MemoryFileSystemEntry.java │ │ │ │ └── MemoryFolder.java │ │ │ ├── gc/ │ │ │ │ └── GarbageCollector.java │ │ │ ├── id/ │ │ │ │ ├── ItemId.java │ │ │ │ ├── NodeId.java │ │ │ │ ├── NodeIdFactory.java │ │ │ │ ├── PropertyId.java │ │ │ │ └── SeededSecureRandom.java │ │ │ ├── jdkcompat/ │ │ │ │ └── Java23Subject.java │ │ │ ├── jndi/ │ │ │ │ ├── BindableRepository.java │ │ │ │ ├── BindableRepositoryFactory.java │ │ │ │ ├── RegistryHelper.java │ │ │ │ └── provider/ │ │ │ │ ├── DummyContext.java │ │ │ │ └── DummyInitialContextFactory.java │ │ │ ├── journal/ │ │ │ │ ├── AbstractJournal.java │ │ │ │ ├── AbstractRecord.java │ │ │ │ ├── AppendRecord.java │ │ │ │ ├── DatabaseJournal.java │ │ │ │ ├── DatabaseRecordIterator.java │ │ │ │ ├── DefaultRecordProducer.java │ │ │ │ ├── FileJournal.java │ │ │ │ ├── FileRecordIterator.java │ │ │ │ ├── FileRecordLog.java │ │ │ │ ├── FileRevision.java │ │ │ │ ├── InstanceRevision.java │ │ │ │ ├── JNDIDatabaseJournal.java │ │ │ │ ├── Journal.java │ │ │ │ ├── JournalException.java │ │ │ │ ├── JournalFactory.java │ │ │ │ ├── LockableFileRevision.java │ │ │ │ ├── MSSqlDatabaseJournal.java │ │ │ │ ├── MemoryJournal.java │ │ │ │ ├── MemoryRevision.java │ │ │ │ ├── OracleDatabaseJournal.java │ │ │ │ ├── ReadRecord.java │ │ │ │ ├── Record.java │ │ │ │ ├── RecordConsumer.java │ │ │ │ ├── RecordIterator.java │ │ │ │ ├── RecordProducer.java │ │ │ │ └── RotatingLogFile.java │ │ │ ├── lock/ │ │ │ │ ├── LockImpl.java │ │ │ │ ├── LockInfo.java │ │ │ │ ├── LockManager.java │ │ │ │ ├── LockManagerImpl.java │ │ │ │ ├── SessionLockManager.java │ │ │ │ ├── XAEnvironment.java │ │ │ │ ├── XALockImpl.java │ │ │ │ └── XALockManager.java │ │ │ ├── nodetype/ │ │ │ │ ├── BitSetENTCacheImpl.java │ │ │ │ ├── EffectiveNodeType.java │ │ │ │ ├── EffectiveNodeTypeCache.java │ │ │ │ ├── EffectiveNodeTypeCacheImpl.java │ │ │ │ ├── InvalidNodeTypeDefException.java │ │ │ │ ├── NodeTypeConflictException.java │ │ │ │ ├── NodeTypeDefStore.java │ │ │ │ ├── NodeTypeDefinitionImpl.java │ │ │ │ ├── NodeTypeImpl.java │ │ │ │ ├── NodeTypeManagerImpl.java │ │ │ │ ├── NodeTypeRegistry.java │ │ │ │ ├── NodeTypeRegistryListener.java │ │ │ │ ├── virtual/ │ │ │ │ │ ├── VirtualNodeTypeStateManager.java │ │ │ │ │ └── VirtualNodeTypeStateProvider.java │ │ │ │ └── xml/ │ │ │ │ ├── AdditionalNamespaceResolver.java │ │ │ │ ├── Constants.java │ │ │ │ ├── NodeTypeReader.java │ │ │ │ └── NodeTypeWriter.java │ │ │ ├── observation/ │ │ │ │ ├── ChangeLogBasedHierarchyMgr.java │ │ │ │ ├── DelegatingObservationDispatcher.java │ │ │ │ ├── DispatchAction.java │ │ │ │ ├── EventConsumer.java │ │ │ │ ├── EventDispatcher.java │ │ │ │ ├── EventFilter.java │ │ │ │ ├── EventImpl.java │ │ │ │ ├── EventJournalImpl.java │ │ │ │ ├── EventListenerIteratorImpl.java │ │ │ │ ├── EventState.java │ │ │ │ ├── EventStateCollection.java │ │ │ │ ├── EventStateCollectionFactory.java │ │ │ │ ├── FilteredEventIterator.java │ │ │ │ ├── ObservationDispatcher.java │ │ │ │ ├── ObservationManagerImpl.java │ │ │ │ └── SynchronousEventListener.java │ │ │ ├── persistence/ │ │ │ │ ├── AbstractPersistenceManager.java │ │ │ │ ├── CachingPersistenceManager.java │ │ │ │ ├── IterablePersistenceManager.java │ │ │ │ ├── PMContext.java │ │ │ │ ├── PersistenceCopier.java │ │ │ │ ├── PersistenceManager.java │ │ │ │ ├── bundle/ │ │ │ │ │ ├── AbstractBundlePersistenceManager.java │ │ │ │ │ ├── BundleFsPersistenceManager.java │ │ │ │ │ ├── ConsistencyCheckerError.java │ │ │ │ │ └── ConsistencyCheckerImpl.java │ │ │ │ ├── check/ │ │ │ │ │ ├── ConsistencyCheckListener.java │ │ │ │ │ ├── ConsistencyChecker.java │ │ │ │ │ ├── ConsistencyReport.java │ │ │ │ │ ├── ConsistencyReportImpl.java │ │ │ │ │ ├── ReportItem.java │ │ │ │ │ └── ReportItemImpl.java │ │ │ │ ├── db/ │ │ │ │ │ ├── DatabasePersistenceManager.java │ │ │ │ │ ├── DerbyPersistenceManager.java │ │ │ │ │ ├── JNDIDatabasePersistenceManager.java │ │ │ │ │ ├── MSSqlPersistenceManager.java │ │ │ │ │ ├── OraclePersistenceManager.java │ │ │ │ │ └── SimpleDbPersistenceManager.java │ │ │ │ ├── mem/ │ │ │ │ │ ├── InMemBundlePersistenceManager.java │ │ │ │ │ └── InMemPersistenceManager.java │ │ │ │ ├── obj/ │ │ │ │ │ └── ObjectPersistenceManager.java │ │ │ │ ├── pool/ │ │ │ │ │ ├── BundleDbPersistenceManager.java │ │ │ │ │ ├── DbNameIndex.java │ │ │ │ │ ├── DerbyPersistenceManager.java │ │ │ │ │ ├── H2PersistenceManager.java │ │ │ │ │ ├── MSSqlPersistenceManager.java │ │ │ │ │ ├── MySqlPersistenceManager.java │ │ │ │ │ ├── NGKDbNameIndex.java │ │ │ │ │ ├── Oracle9PersistenceManager.java │ │ │ │ │ ├── OraclePersistenceManager.java │ │ │ │ │ ├── PostgreSQLNameIndex.java │ │ │ │ │ └── PostgreSQLPersistenceManager.java │ │ │ │ ├── util/ │ │ │ │ │ ├── BLOBStore.java │ │ │ │ │ ├── BundleBinding.java │ │ │ │ │ ├── BundleDumper.java │ │ │ │ │ ├── BundleNames.java │ │ │ │ │ ├── BundleReader.java │ │ │ │ │ ├── BundleWriter.java │ │ │ │ │ ├── ErrorHandling.java │ │ │ │ │ ├── FileBasedIndex.java │ │ │ │ │ ├── FileSystemBLOBStore.java │ │ │ │ │ ├── HashMapIndex.java │ │ │ │ │ ├── NodeInfo.java │ │ │ │ │ ├── NodePropBundle.java │ │ │ │ │ ├── ResourceBasedBLOBStore.java │ │ │ │ │ └── Serializer.java │ │ │ │ └── xml/ │ │ │ │ └── XMLPersistenceManager.java │ │ │ ├── query/ │ │ │ │ ├── AQTQueryFactory.java │ │ │ │ ├── AbstractQueryHandler.java │ │ │ │ ├── AbstractQueryImpl.java │ │ │ │ ├── CompoundQueryFactory.java │ │ │ │ ├── ExecutableQuery.java │ │ │ │ ├── OnWorkspaceInconsistency.java │ │ │ │ ├── PropertyTypeRegistry.java │ │ │ │ ├── QOMQueryFactory.java │ │ │ │ ├── QueryFactory.java │ │ │ │ ├── QueryHandler.java │ │ │ │ ├── QueryHandlerContext.java │ │ │ │ ├── QueryHandlerFactory.java │ │ │ │ ├── QueryImpl.java │ │ │ │ ├── QueryManagerImpl.java │ │ │ │ ├── QueryObjectModelImpl.java │ │ │ │ └── lucene/ │ │ │ │ ├── AbstractExcerpt.java │ │ │ │ ├── AbstractIndex.java │ │ │ │ ├── AbstractNamespaceMappings.java │ │ │ │ ├── AbstractQueryHits.java │ │ │ │ ├── AbstractQueryImpl.java │ │ │ │ ├── AbstractWeight.java │ │ │ │ ├── AggregateRule.java │ │ │ │ ├── AggregateRuleImpl.java │ │ │ │ ├── CachingIndexReader.java │ │ │ │ ├── CachingMultiIndexReader.java │ │ │ │ ├── CaseTermQuery.java │ │ │ │ ├── ChildAxisQuery.java │ │ │ │ ├── ChildNodesQueryHits.java │ │ │ │ ├── CloseableHits.java │ │ │ │ ├── CommittableIndexReader.java │ │ │ │ ├── ConsistencyCheck.java │ │ │ │ ├── ConsistencyCheckError.java │ │ │ │ ├── DateField.java │ │ │ │ ├── DecimalField.java │ │ │ │ ├── DefaultHTMLExcerpt.java │ │ │ │ ├── DefaultHighlighter.java │ │ │ │ ├── DefaultQueryHits.java │ │ │ │ ├── DefaultRedoLog.java │ │ │ │ ├── DefaultRedoLogFactory.java │ │ │ │ ├── DefaultXMLExcerpt.java │ │ │ │ ├── DerefQuery.java │ │ │ │ ├── DescendantSelfAxisQuery.java │ │ │ │ ├── DocId.java │ │ │ │ ├── DocNumberCache.java │ │ │ │ ├── DocOrderScoreNodeIterator.java │ │ │ │ ├── DoubleField.java │ │ │ │ ├── DynamicPooledExecutor.java │ │ │ │ ├── EmptyTermDocs.java │ │ │ │ ├── ExcerptProvider.java │ │ │ │ ├── FieldComparatorBase.java │ │ │ │ ├── FieldComparatorDecorator.java │ │ │ │ ├── FieldNames.java │ │ │ │ ├── FieldSelectors.java │ │ │ │ ├── FileBasedNamespaceMappings.java │ │ │ │ ├── FilterMultiColumnQuery.java │ │ │ │ ├── FilterMultiColumnQueryHits.java │ │ │ │ ├── FilterSearcher.java │ │ │ │ ├── ForeignSegmentDocId.java │ │ │ │ ├── HierarchyResolver.java │ │ │ │ ├── HighlightingExcerptProvider.java │ │ │ │ ├── IDField.java │ │ │ │ ├── IOCounters.java │ │ │ │ ├── IndexDeletionPolicyImpl.java │ │ │ │ ├── IndexFormatVersion.java │ │ │ │ ├── IndexHistory.java │ │ │ │ ├── IndexInfo.java │ │ │ │ ├── IndexInfos.java │ │ │ │ ├── IndexListener.java │ │ │ │ ├── IndexMerger.java │ │ │ │ ├── IndexMigration.java │ │ │ │ ├── IndexingConfiguration.java │ │ │ │ ├── IndexingConfigurationEntityResolver.java │ │ │ │ ├── IndexingConfigurationImpl.java │ │ │ │ ├── IndexingQueue.java │ │ │ │ ├── IndexingQueueStore.java │ │ │ │ ├── JackrabbitAnalyzer.java │ │ │ │ ├── JackrabbitIndexReader.java │ │ │ │ ├── JackrabbitIndexSearcher.java │ │ │ │ ├── JackrabbitQuery.java │ │ │ │ ├── JackrabbitQueryParser.java │ │ │ │ ├── JackrabbitTermQuery.java │ │ │ │ ├── JoinQuery.java │ │ │ │ ├── LazyTextExtractorField.java │ │ │ │ ├── LengthSortComparator.java │ │ │ │ ├── LocalNameQuery.java │ │ │ │ ├── LocalNameRangeQuery.java │ │ │ │ ├── LongField.java │ │ │ │ ├── LowerCaseSortComparator.java │ │ │ │ ├── LuceneQueryBuilder.java │ │ │ │ ├── LuceneQueryFactory.java │ │ │ │ ├── LuceneQueryHits.java │ │ │ │ ├── MatchAllDocsQuery.java │ │ │ │ ├── MatchAllQuery.java │ │ │ │ ├── MatchAllScorer.java │ │ │ │ ├── MatchAllWeight.java │ │ │ │ ├── MoreLikeThis.java │ │ │ │ ├── MultiColumnQuery.java │ │ │ │ ├── MultiColumnQueryAdapter.java │ │ │ │ ├── MultiColumnQueryHits.java │ │ │ │ ├── MultiColumnQueryResult.java │ │ │ │ ├── MultiIndex.java │ │ │ │ ├── MultiIndexReader.java │ │ │ │ ├── MultiScorer.java │ │ │ │ ├── NSRegistryBasedNamespaceMappings.java │ │ │ │ ├── NamePathResolverImpl.java │ │ │ │ ├── NameQuery.java │ │ │ │ ├── NameRangeQuery.java │ │ │ │ ├── NamespaceMappings.java │ │ │ │ ├── NodeIndexer.java │ │ │ │ ├── NodeIteratorImpl.java │ │ │ │ ├── NodeTraversingQueryHits.java │ │ │ │ ├── NormalizeSortComparator.java │ │ │ │ ├── NotQuery.java │ │ │ │ ├── OffsetCharSequence.java │ │ │ │ ├── Ordering.java │ │ │ │ ├── ParentAxisQuery.java │ │ │ │ ├── PerQueryCache.java │ │ │ │ ├── PersistentIndex.java │ │ │ │ ├── PredicateDerefQuery.java │ │ │ │ ├── PropertiesSynonymProvider.java │ │ │ │ ├── PropertyMetaData.java │ │ │ │ ├── QueryHits.java │ │ │ │ ├── QueryHitsAdapter.java │ │ │ │ ├── QueryHitsQuery.java │ │ │ │ ├── QueryImpl.java │ │ │ │ ├── QueryResultImpl.java │ │ │ │ ├── RangeQuery.java │ │ │ │ ├── RangeScan.java │ │ │ │ ├── ReadOnlyIndexReader.java │ │ │ │ ├── Recovery.java │ │ │ │ ├── RedoLog.java │ │ │ │ ├── RedoLogFactory.java │ │ │ │ ├── RefCountingIndexReader.java │ │ │ │ ├── ReleaseableIndexReader.java │ │ │ │ ├── RowIteratorImpl.java │ │ │ │ ├── ScoreNode.java │ │ │ │ ├── ScoreNodeIterator.java │ │ │ │ ├── ScoreNodeIteratorImpl.java │ │ │ │ ├── SearchIndex.java │ │ │ │ ├── SharedFieldCache.java │ │ │ │ ├── SharedFieldComparatorSource.java │ │ │ │ ├── SharedIndexReader.java │ │ │ │ ├── SimilarityQuery.java │ │ │ │ ├── SimpleExcerptProvider.java │ │ │ │ ├── SingleColumnQueryResult.java │ │ │ │ ├── SingleTermDocs.java │ │ │ │ ├── SingletonTokenStream.java │ │ │ │ ├── SortedLuceneQueryHits.java │ │ │ │ ├── SortedMultiColumnQueryHits.java │ │ │ │ ├── SpellChecker.java │ │ │ │ ├── SpellSuggestion.java │ │ │ │ ├── SynonymProvider.java │ │ │ │ ├── TermDocsCache.java │ │ │ │ ├── TermFactory.java │ │ │ │ ├── TransformConstants.java │ │ │ │ ├── Transformable.java │ │ │ │ ├── UpperCaseSortComparator.java │ │ │ │ ├── Util.java │ │ │ │ ├── VolatileIndex.java │ │ │ │ ├── WeightedHTMLExcerpt.java │ │ │ │ ├── WeightedHighlighter.java │ │ │ │ ├── WeightedXMLExcerpt.java │ │ │ │ ├── WildcardNameQuery.java │ │ │ │ ├── WildcardQuery.java │ │ │ │ ├── WildcardTermEnum.java │ │ │ │ ├── constraint/ │ │ │ │ │ ├── AndConstraint.java │ │ │ │ │ ├── ChildNodeConstraint.java │ │ │ │ │ ├── ComparisonConstraint.java │ │ │ │ │ ├── Constraint.java │ │ │ │ │ ├── ConstraintBuilder.java │ │ │ │ │ ├── DescendantNodeConstraint.java │ │ │ │ │ ├── DynamicOperand.java │ │ │ │ │ ├── EvaluationContext.java │ │ │ │ │ ├── FullTextConstraint.java │ │ │ │ │ ├── FullTextSearchScoreOperand.java │ │ │ │ │ ├── HierarchyConstraint.java │ │ │ │ │ ├── LengthOperand.java │ │ │ │ │ ├── LikeConstraint.java │ │ │ │ │ ├── LowerCaseOperand.java │ │ │ │ │ ├── NodeLocalNameOperand.java │ │ │ │ │ ├── NodeNameOperand.java │ │ │ │ │ ├── NotConstraint.java │ │ │ │ │ ├── OrConstraint.java │ │ │ │ │ ├── PropertyExistenceConstraint.java │ │ │ │ │ ├── PropertyValueOperand.java │ │ │ │ │ ├── QueryConstraint.java │ │ │ │ │ ├── SameNodeConstraint.java │ │ │ │ │ ├── SelectorBasedConstraint.java │ │ │ │ │ └── UpperCaseOperand.java │ │ │ │ ├── directory/ │ │ │ │ │ ├── DirectoryManager.java │ │ │ │ │ ├── FSDirectoryManager.java │ │ │ │ │ ├── IndexInputStream.java │ │ │ │ │ ├── IndexOutputStream.java │ │ │ │ │ └── RAMDirectoryManager.java │ │ │ │ ├── hits/ │ │ │ │ │ ├── AbstractHitCollector.java │ │ │ │ │ ├── AdaptingHits.java │ │ │ │ │ ├── ArrayHits.java │ │ │ │ │ ├── BitSetHits.java │ │ │ │ │ ├── Hits.java │ │ │ │ │ ├── HitsIntersection.java │ │ │ │ │ └── ScorerHits.java │ │ │ │ ├── join/ │ │ │ │ │ ├── AbstractCondition.java │ │ │ │ │ ├── AbstractRow.java │ │ │ │ │ ├── AncestorNodeJoin.java │ │ │ │ │ ├── AncestorPathNodeJoin.java │ │ │ │ │ ├── ChildNodeJoin.java │ │ │ │ │ ├── ChildNodeJoinMerger.java │ │ │ │ │ ├── Condition.java │ │ │ │ │ ├── ConstraintSplitInfo.java │ │ │ │ │ ├── ConstraintSplitter.java │ │ │ │ │ ├── Constraints.java │ │ │ │ │ ├── DescendantNodeJoin.java │ │ │ │ │ ├── DescendantNodeJoinMerger.java │ │ │ │ │ ├── DescendantPathNodeJoin.java │ │ │ │ │ ├── EquiJoin.java │ │ │ │ │ ├── EquiJoinMerger.java │ │ │ │ │ ├── Join.java │ │ │ │ │ ├── JoinMerger.java │ │ │ │ │ ├── JoinRow.java │ │ │ │ │ ├── ParentNodeJoin.java │ │ │ │ │ ├── QueryEngine.java │ │ │ │ │ ├── RowPathComparator.java │ │ │ │ │ ├── SameNodeJoin.java │ │ │ │ │ ├── SameNodeJoinMerger.java │ │ │ │ │ ├── ScoreNodeMap.java │ │ │ │ │ ├── SelectorRow.java │ │ │ │ │ ├── SimpleQueryResult.java │ │ │ │ │ └── ValueComparator.java │ │ │ │ └── sort/ │ │ │ │ ├── AbstractFieldComparator.java │ │ │ │ ├── DynamicOperandFieldComparator.java │ │ │ │ ├── DynamicOperandFieldComparatorSource.java │ │ │ │ ├── RowComparator.java │ │ │ │ └── ValueComparableWrapper.java │ │ │ ├── retention/ │ │ │ │ ├── HoldImpl.java │ │ │ │ ├── RetentionManagerImpl.java │ │ │ │ ├── RetentionPolicyImpl.java │ │ │ │ ├── RetentionRegistry.java │ │ │ │ └── RetentionRegistryImpl.java │ │ │ ├── security/ │ │ │ │ ├── AMContext.java │ │ │ │ ├── AbstractAccessControlManager.java │ │ │ │ ├── AccessManager.java │ │ │ │ ├── AnonymousPrincipal.java │ │ │ │ ├── DefaultAccessManager.java │ │ │ │ ├── JackrabbitSecurityManager.java │ │ │ │ ├── SecurityConstants.java │ │ │ │ ├── SystemPrincipal.java │ │ │ │ ├── UserPrincipal.java │ │ │ │ ├── authentication/ │ │ │ │ │ ├── AbstractLoginModule.java │ │ │ │ │ ├── AuthContext.java │ │ │ │ │ ├── AuthContextProvider.java │ │ │ │ │ ├── Authentication.java │ │ │ │ │ ├── CallbackHandlerImpl.java │ │ │ │ │ ├── CredentialsCallback.java │ │ │ │ │ ├── CryptedSimpleCredentials.java │ │ │ │ │ ├── DefaultLoginModule.java │ │ │ │ │ ├── ImpersonationCallback.java │ │ │ │ │ ├── JAASAuthContext.java │ │ │ │ │ ├── LocalAuthContext.java │ │ │ │ │ ├── RepositoryCallback.java │ │ │ │ │ ├── SimpleCredentialsAuthentication.java │ │ │ │ │ └── token/ │ │ │ │ │ ├── CompatTokenProvider.java │ │ │ │ │ ├── TokenBasedAuthentication.java │ │ │ │ │ ├── TokenInfo.java │ │ │ │ │ └── TokenProvider.java │ │ │ │ ├── authorization/ │ │ │ │ │ ├── AbstractACLTemplate.java │ │ │ │ │ ├── AbstractAccessControlProvider.java │ │ │ │ │ ├── AbstractCompiledPermissions.java │ │ │ │ │ ├── AccessControlConstants.java │ │ │ │ │ ├── AccessControlEditor.java │ │ │ │ │ ├── AccessControlEntryImpl.java │ │ │ │ │ ├── AccessControlListener.java │ │ │ │ │ ├── AccessControlModifications.java │ │ │ │ │ ├── AccessControlObserver.java │ │ │ │ │ ├── AccessControlProvider.java │ │ │ │ │ ├── AccessControlProviderFactory.java │ │ │ │ │ ├── AccessControlProviderFactoryImpl.java │ │ │ │ │ ├── AccessControlUtils.java │ │ │ │ │ ├── CompiledPermissions.java │ │ │ │ │ ├── GlobPattern.java │ │ │ │ │ ├── NamedAccessControlPolicyImpl.java │ │ │ │ │ ├── Permission.java │ │ │ │ │ ├── PrivilegeBits.java │ │ │ │ │ ├── PrivilegeManagerImpl.java │ │ │ │ │ ├── PrivilegeRegistry.java │ │ │ │ │ ├── UnmodifiableAccessControlList.java │ │ │ │ │ ├── WorkspaceAccessManager.java │ │ │ │ │ ├── acl/ │ │ │ │ │ │ ├── ACLEditor.java │ │ │ │ │ │ ├── ACLProvider.java │ │ │ │ │ │ ├── ACLTemplate.java │ │ │ │ │ │ ├── CachingEntryCollector.java │ │ │ │ │ │ ├── CompiledPermissionsImpl.java │ │ │ │ │ │ ├── Entry.java │ │ │ │ │ │ ├── EntryCollector.java │ │ │ │ │ │ ├── EntryFilter.java │ │ │ │ │ │ └── EntryFilterImpl.java │ │ │ │ │ ├── combined/ │ │ │ │ │ │ ├── CombinedEditor.java │ │ │ │ │ │ └── CombinedProvider.java │ │ │ │ │ └── principalbased/ │ │ │ │ │ ├── ACLEditor.java │ │ │ │ │ ├── ACLProvider.java │ │ │ │ │ ├── ACLTemplate.java │ │ │ │ │ └── EntriesCache.java │ │ │ │ ├── principal/ │ │ │ │ │ ├── AbstractPrincipalIterator.java │ │ │ │ │ ├── AbstractPrincipalProvider.java │ │ │ │ │ ├── AdminPrincipal.java │ │ │ │ │ ├── DefaultPrincipalProvider.java │ │ │ │ │ ├── EveryonePrincipal.java │ │ │ │ │ ├── FallbackPrincipalProvider.java │ │ │ │ │ ├── GroupPrincipals.java │ │ │ │ │ ├── PrincipalImpl.java │ │ │ │ │ ├── PrincipalIteratorAdapter.java │ │ │ │ │ ├── PrincipalManagerImpl.java │ │ │ │ │ ├── PrincipalProvider.java │ │ │ │ │ ├── PrincipalProviderRegistry.java │ │ │ │ │ ├── ProviderRegistryImpl.java │ │ │ │ │ └── UnknownPrincipal.java │ │ │ │ ├── simple/ │ │ │ │ │ ├── SimpleAccessManager.java │ │ │ │ │ ├── SimpleLoginModule.java │ │ │ │ │ ├── SimpleSecurityManager.java │ │ │ │ │ └── SimpleWorkspaceAccessManager.java │ │ │ │ └── user/ │ │ │ │ ├── AuthorizableImpl.java │ │ │ │ ├── GroupImpl.java │ │ │ │ ├── ImpersonationImpl.java │ │ │ │ ├── IndexNodeResolver.java │ │ │ │ ├── MembershipCache.java │ │ │ │ ├── NodeResolver.java │ │ │ │ ├── PasswordUtility.java │ │ │ │ ├── TraversingNodeResolver.java │ │ │ │ ├── UserAccessControlProvider.java │ │ │ │ ├── UserConstants.java │ │ │ │ ├── UserImpl.java │ │ │ │ ├── UserImporter.java │ │ │ │ ├── UserManagerConfig.java │ │ │ │ ├── UserManagerImpl.java │ │ │ │ ├── UserPerWorkspaceUserManager.java │ │ │ │ ├── XPathQueryBuilder.java │ │ │ │ ├── XPathQueryEvaluator.java │ │ │ │ └── action/ │ │ │ │ ├── AbstractAuthorizableAction.java │ │ │ │ ├── AccessControlAction.java │ │ │ │ ├── AuthorizableAction.java │ │ │ │ ├── ClearMembershipAction.java │ │ │ │ └── PasswordValidationAction.java │ │ │ ├── session/ │ │ │ │ ├── AddNodeOperation.java │ │ │ │ ├── NodeNameNormalizer.java │ │ │ │ ├── SessionContext.java │ │ │ │ ├── SessionItemOperation.java │ │ │ │ ├── SessionOperation.java │ │ │ │ ├── SessionRefreshOperation.java │ │ │ │ ├── SessionSaveOperation.java │ │ │ │ ├── SessionState.java │ │ │ │ └── SessionWriteOperation.java │ │ │ ├── state/ │ │ │ │ ├── ChangeLog.java │ │ │ │ ├── ChildNodeEntries.java │ │ │ │ ├── ChildNodeEntry.java │ │ │ │ ├── DefaultISMLocking.java │ │ │ │ ├── DummyUpdateEventChannel.java │ │ │ │ ├── FineGrainedISMLocking.java │ │ │ │ ├── ISMLocking.java │ │ │ │ ├── ISMLockingFactory.java │ │ │ │ ├── ItemState.java │ │ │ │ ├── ItemStateCache.java │ │ │ │ ├── ItemStateCacheFactory.java │ │ │ │ ├── ItemStateException.java │ │ │ │ ├── ItemStateListener.java │ │ │ │ ├── ItemStateManager.java │ │ │ │ ├── ItemStateReferenceCache.java │ │ │ │ ├── LocalItemStateManager.java │ │ │ │ ├── MLRUItemStateCache.java │ │ │ │ ├── ManagedMLRUItemStateCacheFactory.java │ │ │ │ ├── NameSet.java │ │ │ │ ├── NoSuchItemStateException.java │ │ │ │ ├── NodeReferences.java │ │ │ │ ├── NodeState.java │ │ │ │ ├── NodeStateListener.java │ │ │ │ ├── NodeStateMerger.java │ │ │ │ ├── PropertyState.java │ │ │ │ ├── SessionItemStateManager.java │ │ │ │ ├── SharedItemStateManager.java │ │ │ │ ├── StaleItemStateException.java │ │ │ │ ├── StateChangeDispatcher.java │ │ │ │ ├── UpdatableItemStateManager.java │ │ │ │ └── XAItemStateManager.java │ │ │ ├── stats/ │ │ │ │ └── StatManager.java │ │ │ ├── util/ │ │ │ │ ├── CooperativeFileLock.java │ │ │ │ ├── DOMBuilder.java │ │ │ │ ├── DOMWalker.java │ │ │ │ ├── EmptyLinkedMap.java │ │ │ │ ├── ReferenceChangeTracker.java │ │ │ │ ├── RepositoryLock.java │ │ │ │ ├── RepositoryLockMechanism.java │ │ │ │ ├── RepositoryLockMechanismFactory.java │ │ │ │ ├── StringIndex.java │ │ │ │ ├── XAReentrantLock.java │ │ │ │ └── XAReentrantWriterPreferenceReadWriteLock.java │ │ │ ├── value/ │ │ │ │ ├── BLOBFileValue.java │ │ │ │ ├── BLOBInDataStore.java │ │ │ │ ├── BLOBInMemory.java │ │ │ │ ├── BLOBInResource.java │ │ │ │ ├── BLOBInTempFile.java │ │ │ │ ├── BinaryValueImpl.java │ │ │ │ ├── InternalValue.java │ │ │ │ ├── InternalValueFactory.java │ │ │ │ ├── RefCountingBLOBFileValue.java │ │ │ │ └── ValueFactoryImpl.java │ │ │ ├── version/ │ │ │ │ ├── DateVersionSelector.java │ │ │ │ ├── InconsistentVersioningState.java │ │ │ │ ├── InternalActivity.java │ │ │ │ ├── InternalActivityImpl.java │ │ │ │ ├── InternalBaseline.java │ │ │ │ ├── InternalBaselineImpl.java │ │ │ │ ├── InternalFreeze.java │ │ │ │ ├── InternalFreezeImpl.java │ │ │ │ ├── InternalFrozenNode.java │ │ │ │ ├── InternalFrozenNodeImpl.java │ │ │ │ ├── InternalFrozenVHImpl.java │ │ │ │ ├── InternalFrozenVersionHistory.java │ │ │ │ ├── InternalVersion.java │ │ │ │ ├── InternalVersionHistory.java │ │ │ │ ├── InternalVersionHistoryImpl.java │ │ │ │ ├── InternalVersionImpl.java │ │ │ │ ├── InternalVersionItem.java │ │ │ │ ├── InternalVersionItemImpl.java │ │ │ │ ├── InternalVersionManager.java │ │ │ │ ├── InternalVersionManagerBase.java │ │ │ │ ├── InternalVersionManagerImpl.java │ │ │ │ ├── InternalXAVersionManager.java │ │ │ │ ├── LabelVersionSelector.java │ │ │ │ ├── NodeStateEx.java │ │ │ │ ├── VersionHistoryImpl.java │ │ │ │ ├── VersionHistoryInfo.java │ │ │ │ ├── VersionImpl.java │ │ │ │ ├── VersionItemStateManager.java │ │ │ │ ├── VersionItemStateProvider.java │ │ │ │ ├── VersionIteratorImpl.java │ │ │ │ ├── VersionManagerImplBase.java │ │ │ │ ├── VersionManagerImplConfig.java │ │ │ │ ├── VersionManagerImplMerge.java │ │ │ │ ├── VersionManagerImplRestore.java │ │ │ │ ├── VersionSelector.java │ │ │ │ ├── VersionSet.java │ │ │ │ └── VersioningLock.java │ │ │ ├── virtual/ │ │ │ │ ├── AbstractVISProvider.java │ │ │ │ ├── VirtualItemStateProvider.java │ │ │ │ ├── VirtualNodeState.java │ │ │ │ ├── VirtualPropertyState.java │ │ │ │ └── VirtualValueProvider.java │ │ │ └── xml/ │ │ │ ├── AccessControlImporter.java │ │ │ ├── BufferedStringValue.java │ │ │ ├── ClonedInputSource.java │ │ │ ├── DefaultProtectedItemImporter.java │ │ │ ├── DefaultProtectedNodeImporter.java │ │ │ ├── DefaultProtectedPropertyImporter.java │ │ │ ├── DocViewImportHandler.java │ │ │ ├── ImportHandler.java │ │ │ ├── Importer.java │ │ │ ├── NamespaceContext.java │ │ │ ├── NodeInfo.java │ │ │ ├── PropInfo.java │ │ │ ├── ProtectedItemImporter.java │ │ │ ├── ProtectedNodeImporter.java │ │ │ ├── ProtectedPropertyImporter.java │ │ │ ├── SessionImporter.java │ │ │ ├── StringValue.java │ │ │ ├── SysViewImportHandler.java │ │ │ ├── TargetImportHandler.java │ │ │ ├── TextValue.java │ │ │ └── WorkspaceImporter.java │ │ ├── javadoc/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── core/ │ │ │ ├── config/ │ │ │ │ ├── doc-files/ │ │ │ │ │ └── class.uxf │ │ │ │ └── package.html │ │ │ ├── doc-files/ │ │ │ │ ├── RepositoryImpl.uxf │ │ │ │ ├── SessionImpl.uxf │ │ │ │ ├── WorkspaceImpl.uxf │ │ │ │ ├── WorkspaceInfo.uxf │ │ │ │ └── core.uxf │ │ │ ├── fs/ │ │ │ │ └── db/ │ │ │ │ └── package.html │ │ │ ├── observation/ │ │ │ │ └── doc-files/ │ │ │ │ └── class.uxf │ │ │ ├── package.html │ │ │ ├── persistence/ │ │ │ │ └── db/ │ │ │ │ └── package.html │ │ │ └── version/ │ │ │ └── package.html │ │ ├── resources/ │ │ │ ├── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── javax.jcr.RepositoryFactory │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── core/ │ │ │ ├── JackrabbitRepositoryStub.properties │ │ │ ├── config/ │ │ │ │ ├── deprecated-classes.properties │ │ │ │ ├── repository-1.0.dtd │ │ │ │ ├── repository-1.2.dtd │ │ │ │ ├── repository-1.4.dtd │ │ │ │ ├── repository-1.5.dtd │ │ │ │ ├── repository-1.6.dtd │ │ │ │ ├── repository-2.0-elements.dtd │ │ │ │ ├── repository-2.0.dtd │ │ │ │ ├── repository-2.4-elements.dtd │ │ │ │ ├── repository-2.4.dtd │ │ │ │ ├── repository-2.6-elements.dtd │ │ │ │ └── repository-2.6.dtd │ │ │ ├── fs/ │ │ │ │ └── db/ │ │ │ │ ├── azure.ddl │ │ │ │ ├── daffodil.ddl │ │ │ │ ├── db2.ddl │ │ │ │ ├── default.ddl │ │ │ │ ├── derby.ddl │ │ │ │ ├── ingres.ddl │ │ │ │ ├── maxdb.ddl │ │ │ │ ├── mssql.ddl │ │ │ │ ├── mysql.ddl │ │ │ │ ├── oracle.ddl │ │ │ │ └── postgresql.ddl │ │ │ ├── journal/ │ │ │ │ ├── azure.ddl │ │ │ │ ├── db2.ddl │ │ │ │ ├── default.ddl │ │ │ │ ├── derby.ddl │ │ │ │ ├── h2.ddl │ │ │ │ ├── ingres.ddl │ │ │ │ ├── maxdb.ddl │ │ │ │ ├── mssql.ddl │ │ │ │ ├── mysql.ddl │ │ │ │ ├── oracle.ddl │ │ │ │ └── postgresql.ddl │ │ │ ├── nodetype/ │ │ │ │ └── builtin_nodetypes.cnd │ │ │ ├── persistence/ │ │ │ │ ├── bundle/ │ │ │ │ │ ├── azure.ddl │ │ │ │ │ ├── db2.ddl │ │ │ │ │ ├── derby.ddl │ │ │ │ │ ├── h2.ddl │ │ │ │ │ ├── ingres.ddl │ │ │ │ │ ├── mssql.ddl │ │ │ │ │ ├── mysql.ddl │ │ │ │ │ ├── oracle.ddl │ │ │ │ │ └── postgresql.ddl │ │ │ │ └── db/ │ │ │ │ ├── azure.ddl │ │ │ │ ├── daffodil.ddl │ │ │ │ ├── db2.ddl │ │ │ │ ├── default.ddl │ │ │ │ ├── derby.ddl │ │ │ │ ├── h2.ddl │ │ │ │ ├── ingres.ddl │ │ │ │ ├── maxdb.ddl │ │ │ │ ├── mssql.ddl │ │ │ │ ├── mysql.ddl │ │ │ │ ├── oracle.ddl │ │ │ │ └── postgresql.ddl │ │ │ ├── query/ │ │ │ │ └── lucene/ │ │ │ │ ├── indexing-configuration-1.0.dtd │ │ │ │ ├── indexing-configuration-1.1.dtd │ │ │ │ ├── indexing-configuration-1.2.dtd │ │ │ │ └── tika-config.xml │ │ │ ├── repository.xml │ │ │ └── test-nodetypes.xml │ │ └── resources-filtered/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── core/ │ │ └── repository.properties │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ ├── api/ │ │ │ ├── JackrabbitNodeTest.java │ │ │ ├── JackrabbitObservationManagerTest.java │ │ │ ├── JackrabbitSessionTest.java │ │ │ ├── TestAll.java │ │ │ └── security/ │ │ │ ├── JackrabbitAccessControlManagerTest.java │ │ │ ├── TestAll.java │ │ │ ├── authorization/ │ │ │ │ ├── PrivilegeManagerTest.java │ │ │ │ └── TestAll.java │ │ │ ├── principal/ │ │ │ │ ├── PrincipalManagerTest.java │ │ │ │ └── TestAll.java │ │ │ └── user/ │ │ │ ├── AbstractUserTest.java │ │ │ ├── AuthorizableTest.java │ │ │ ├── ConcurrentCreateUserTest.java │ │ │ ├── GroupTest.java │ │ │ ├── ImpersonationTest.java │ │ │ ├── NestedGroupTest.java │ │ │ ├── TestAll.java │ │ │ ├── UserManagerCreateGroupTest.java │ │ │ ├── UserManagerCreateUserTest.java │ │ │ ├── UserManagerSearchTest.java │ │ │ ├── UserManagerTest.java │ │ │ └── UserTest.java │ │ └── core/ │ │ ├── AbstractConcurrencyTest.java │ │ ├── AddMoveTest.java │ │ ├── CachingHierarchyManagerTest.java │ │ ├── ConcurrencyTest.java │ │ ├── ConcurrencyTest3.java │ │ ├── ConcurrentAddMoveRemoveTest.java │ │ ├── ConcurrentAddRemoveMoveTest.java │ │ ├── ConcurrentAddRemoveNodeTest.java │ │ ├── ConcurrentAddRemovePropertyTest.java │ │ ├── ConcurrentCheckinMixedTransactionTest.java │ │ ├── ConcurrentCyclicMoveTest.java │ │ ├── ConcurrentImportTest.java │ │ ├── ConcurrentLoginTest.java │ │ ├── ConcurrentMixinModificationTest.java │ │ ├── ConcurrentModificationBase.java │ │ ├── ConcurrentModificationWithSNSTest.java │ │ ├── ConcurrentMoveTest.java │ │ ├── ConcurrentNodeModificationTest.java │ │ ├── ConcurrentReadWriteTest.java │ │ ├── ConcurrentRenameTest.java │ │ ├── ConcurrentReorderTest.java │ │ ├── ConcurrentSaveTest.java │ │ ├── ConcurrentVersioningTest.java │ │ ├── ConcurrentVersioningWithTransactionsTest.java │ │ ├── ConcurrentWorkspaceCopyTest.java │ │ ├── ConsistencyCheck.java │ │ ├── InvalidDateTest.java │ │ ├── LockTest.java │ │ ├── LockedWrapperTest.java │ │ ├── LostFromCacheIssueTest.java │ │ ├── MoveAtRootTest.java │ │ ├── MoveRemoveTest.java │ │ ├── MoveTest.java │ │ ├── MultiWorkspaceShareableNodeTest.java │ │ ├── NPEandCMETest.java │ │ ├── NodeImplTest.java │ │ ├── OracleRepositoryTest.java │ │ ├── OracleRetrocompatibleRepositoryTest.java │ │ ├── OverlappingNodeAddTest.java │ │ ├── ReadVersionsWhileModified.java │ │ ├── ReadWhileSaveTest.java │ │ ├── ReferencesTest.java │ │ ├── RemoveAddNodeWithUUIDTest.java │ │ ├── ReplacePropertyWhileOthersReadTest.java │ │ ├── ReplaceTest.java │ │ ├── RepositoryCopierTest.java │ │ ├── RestoreAndCheckoutTest.java │ │ ├── RetentionRegistryImplTest.java │ │ ├── SessionGarbageCollectedTest.java │ │ ├── ShareableNodeTest.java │ │ ├── Tail.java │ │ ├── TestAll.java │ │ ├── TestHelper.java │ │ ├── TestRepository.java │ │ ├── TransientRepositoryTest.java │ │ ├── UserPerWorkspaceSecurityManagerTest.java │ │ ├── UserTransactionImpl.java │ │ ├── XATest.java │ │ ├── cache/ │ │ │ ├── ConcurrentCacheTest.java │ │ │ └── GrowingLRUMapTest.java │ │ ├── cluster/ │ │ │ ├── ClusterDescriptorTest.java │ │ │ ├── ClusterRecordTest.java │ │ │ ├── ClusterSyncTest.java │ │ │ ├── DbClusterTest.java │ │ │ ├── DbClusterTestJCR3162.java │ │ │ ├── FailUpdateOnJournalExceptionTest.java │ │ │ ├── SimpleClusterContext.java │ │ │ ├── SimpleEventListener.java │ │ │ ├── TestAll.java │ │ │ ├── TestJournal.java │ │ │ └── UpdateEventFactory.java │ │ ├── config/ │ │ │ ├── DataSourceConfigTest.java │ │ │ ├── RepositoryConfigTest.java │ │ │ ├── SecurityConfigTest.java │ │ │ ├── TestAll.java │ │ │ └── WorkspaceConfigTest.java │ │ ├── data/ │ │ │ ├── ConcurrentGcTest.java │ │ │ ├── ConsistencyCheckerImplTest.java │ │ │ ├── CopyValueTest.java │ │ │ ├── DBDataStoreTest.java │ │ │ ├── DataStoreAPITest.java │ │ │ ├── DataStoreTest.java │ │ │ ├── ExportImportTest.java │ │ │ ├── GCConcurrentTest.java │ │ │ ├── GCEventListenerTest.java │ │ │ ├── GCSubtreeMoveTest.java │ │ │ ├── GCThread.java │ │ │ ├── GarbageCollectorTest.java │ │ │ ├── LazyFileInputStreamTest.java │ │ │ ├── NodeTypeTest.java │ │ │ ├── OpenFilesTest.java │ │ │ ├── PersistenceManagerIteratorTest.java │ │ │ ├── TestAll.java │ │ │ ├── TestTwoGetStreams.java │ │ │ └── WriteWhileReadingTest.java │ │ ├── fs/ │ │ │ ├── AbstractFileSystemTest.java │ │ │ ├── TestAll.java │ │ │ ├── db/ │ │ │ │ ├── DerbyFileSystemTest.java │ │ │ │ ├── OracleFileSystemTest.java │ │ │ │ └── OracleRetrocompatibleFileSystemTest.java │ │ │ ├── local/ │ │ │ │ └── LocalFileSystemTest.java │ │ │ └── mem/ │ │ │ └── MemoryFileSystemTest.java │ │ ├── id/ │ │ │ ├── NodeIdFactoryTest.java │ │ │ ├── NodeIdTest.java │ │ │ └── TestAll.java │ │ ├── integration/ │ │ │ ├── AxisQueryTest.java │ │ │ ├── CachingHierarchyManagerConsistencyTest.java │ │ │ ├── ConcurrentQueriesWithUpdatesTest.java │ │ │ ├── ConcurrentQueryTest.java │ │ │ ├── GQLTest.java │ │ │ ├── GetOrNullTest.java │ │ │ ├── InterruptedQueryTest.java │ │ │ ├── ItemSequenceTest.java │ │ │ ├── JCRAPITest.java │ │ │ ├── JCRBenchmark.java │ │ │ ├── MassiveRangeTest.java │ │ │ ├── MassiveWildcardTest.java │ │ │ ├── NodeImplTest.java │ │ │ ├── RepositoryFactoryImplTest.java │ │ │ ├── RepositoryLockTest.java │ │ │ ├── RestoreSameNameSiblingTest.java │ │ │ ├── SessionImplTest.java │ │ │ ├── TreeTraverserTest.java │ │ │ ├── UtilsGetPathTest.java │ │ │ ├── VersioningTest.java │ │ │ ├── WorkspaceInitTest.java │ │ │ ├── benchmark/ │ │ │ │ ├── ItemStateCacheSyncTest.java │ │ │ │ └── SimpleBench.java │ │ │ ├── daily/ │ │ │ │ ├── DailyIntegrationTest.java │ │ │ │ ├── ItemStateHierarchyManagerDeadlockTest.java │ │ │ │ └── RandomOperationTest.java │ │ │ └── random/ │ │ │ ├── operation/ │ │ │ │ ├── AddNode.java │ │ │ │ ├── AddVersionLabel.java │ │ │ │ ├── Checkin.java │ │ │ │ ├── Checkout.java │ │ │ │ ├── CreateNodes.java │ │ │ │ ├── GetNode.java │ │ │ │ ├── GetRandomNodes.java │ │ │ │ ├── Operation.java │ │ │ │ ├── OperationFactory.java │ │ │ │ ├── OperationSequence.java │ │ │ │ ├── RandomContentOperations.java │ │ │ │ ├── RandomOperations.java │ │ │ │ ├── RandomVersionOperations.java │ │ │ │ ├── Remove.java │ │ │ │ ├── RemoveVersion.java │ │ │ │ ├── RemoveVersionLabel.java │ │ │ │ ├── Restore.java │ │ │ │ ├── Save.java │ │ │ │ ├── SetProperty.java │ │ │ │ ├── TraverseNodes.java │ │ │ │ ├── VersionOperation.java │ │ │ │ └── XATransaction.java │ │ │ └── task/ │ │ │ ├── ContentOperationsTask.java │ │ │ ├── RandomOperationsTask.java │ │ │ └── VersionOperationsTask.java │ │ ├── journal/ │ │ │ ├── FileJournalTest.java │ │ │ ├── LockableFileRevisionTest.java │ │ │ └── TestAll.java │ │ ├── lock/ │ │ │ ├── ConcurrentLockingTest.java │ │ │ ├── ConcurrentLockingWithTransactionsTest.java │ │ │ ├── ExtendedLockingTest.java │ │ │ ├── LockTimeoutTest.java │ │ │ └── TestAll.java │ │ ├── nodetype/ │ │ │ ├── CyclicNodeTypeRegistrationTest.java │ │ │ ├── MixinTest.java │ │ │ ├── NodeTypesInContentTest.java │ │ │ ├── TestAll.java │ │ │ └── xml/ │ │ │ ├── SimpleNamespaceRegistry.java │ │ │ └── TestAll.java │ │ ├── observation/ │ │ │ ├── MixinTest.java │ │ │ ├── MoveInPlaceTest.java │ │ │ ├── ReorderTest.java │ │ │ ├── ShareableNodesTest.java │ │ │ ├── TestAll.java │ │ │ ├── VersionEventsTest.java │ │ │ └── WarningOnSaveWithNotificationThreadTest.java │ │ ├── persistence/ │ │ │ ├── AutoFixCorruptNode.java │ │ │ ├── PersistenceManagerTest.java │ │ │ ├── TestAll.java │ │ │ └── util/ │ │ │ ├── BundleBindingRandomizedTest.java │ │ │ ├── BundleBindingTest.java │ │ │ ├── HashMapIndexTest.java │ │ │ ├── NodeCorruptionTest.java │ │ │ └── TestAll.java │ │ ├── query/ │ │ │ ├── AbstractIndexingTest.java │ │ │ ├── AbstractQueryTest.java │ │ │ ├── ChildAxisQueryTest.java │ │ │ ├── DerefTest.java │ │ │ ├── DescendantSelfAxisTest.java │ │ │ ├── ExcerptTest.java │ │ │ ├── FnNameQueryTest.java │ │ │ ├── FulltextQueryTest.java │ │ │ ├── FulltextSQL2QueryTest.java │ │ │ ├── JoinTest.java │ │ │ ├── LazyResultSetQueryTest.java │ │ │ ├── LimitAndOffsetTest.java │ │ │ ├── LimitedAccessQueryTest.java │ │ │ ├── MixinTest.java │ │ │ ├── OrderByTest.java │ │ │ ├── ParentNodeTest.java │ │ │ ├── PathQueryNodeTest.java │ │ │ ├── QueryExtensionsTest.java │ │ │ ├── QueryResultTest.java │ │ │ ├── SQL2NodeLocalNameTest.java │ │ │ ├── SQL2OffsetLimitTest.java │ │ │ ├── SQL2OrderByTest.java │ │ │ ├── SQL2OuterJoinTest.java │ │ │ ├── SQL2PathEscapingTest.java │ │ │ ├── SQL2QueryResultTest.java │ │ │ ├── SQL2TooManyClausesTest.java │ │ │ ├── SQLTest.java │ │ │ ├── SelectClauseTest.java │ │ │ ├── ShareableNodeTest.java │ │ │ ├── SimilarQueryTest.java │ │ │ ├── SimpleQueryTest.java │ │ │ ├── SkipDeletedNodesTest.java │ │ │ ├── SkipDeniedNodesTest.java │ │ │ ├── TestAll.java │ │ │ ├── TextExtractorTest.java │ │ │ ├── UpperLowerCaseQueryTest.java │ │ │ ├── VersionStoreQueryTest.java │ │ │ ├── XPathAxisTest.java │ │ │ └── lucene/ │ │ │ ├── BlockingParser.java │ │ │ ├── ChainedTermEnumTest.java │ │ │ ├── ComparableArrayTest.java │ │ │ ├── DecimalConvertTest.java │ │ │ ├── IDFieldTest.java │ │ │ ├── IndexFormatVersionTest.java │ │ │ ├── IndexInfosTest.java │ │ │ ├── IndexMigrationTest.java │ │ │ ├── IndexingAggregateTest.java │ │ │ ├── IndexingConfigurationImplTest.java │ │ │ ├── IndexingQueueTest.java │ │ │ ├── IndexingRuleTest.java │ │ │ ├── LargeResultSetTest.java │ │ │ ├── LazyTextExtractorFieldTest.java │ │ │ ├── SQL2IndexingAggregateTest.java │ │ │ ├── SQL2IndexingAggregateTest2.java │ │ │ ├── SearchIndexConsistencyCheckTest.java │ │ │ ├── SearchIndexTest.java │ │ │ ├── SlowQueryHandler.java │ │ │ ├── SynonymProviderTest.java │ │ │ ├── TestAll.java │ │ │ ├── TextExtractionQueryTest.java │ │ │ ├── UtilTest.java │ │ │ ├── directory/ │ │ │ │ ├── DirectoryManagerTest.java │ │ │ │ ├── IndexInputStreamTest.java │ │ │ │ ├── IndexOutputStreamTest.java │ │ │ │ └── TestAll.java │ │ │ └── hits/ │ │ │ └── ArrayHitsTest.java │ │ ├── retention/ │ │ │ ├── AbstractRetentionTest.java │ │ │ ├── HoldTest.java │ │ │ ├── RetentionPolicyTest.java │ │ │ └── TestAll.java │ │ ├── security/ │ │ │ ├── AccessManagerTest.java │ │ │ ├── TestAll.java │ │ │ ├── TestPrincipal.java │ │ │ ├── authentication/ │ │ │ │ ├── CryptedSimpleCredentialsTest.java │ │ │ │ ├── DefaultLoginModuleTest.java │ │ │ │ ├── GuestLoginTest.java │ │ │ │ ├── LoginModuleTest.java │ │ │ │ ├── NullLoginTest.java │ │ │ │ ├── SimpleCredentialsAuthenticationTest.java │ │ │ │ ├── TestAll.java │ │ │ │ └── token/ │ │ │ │ ├── CompatTokenProviderTest.java │ │ │ │ ├── TestAll.java │ │ │ │ ├── TokenBasedAuthenticationCompatTest.java │ │ │ │ ├── TokenBasedAuthenticationTest.java │ │ │ │ ├── TokenBasedLoginTest.java │ │ │ │ └── TokenProviderTest.java │ │ │ ├── authorization/ │ │ │ │ ├── AbstractACLTemplateTest.java │ │ │ │ ├── AbstractEffectivePolicyTest.java │ │ │ │ ├── AbstractEntryTest.java │ │ │ │ ├── AbstractEvaluationTest.java │ │ │ │ ├── AbstractLockManagementTest.java │ │ │ │ ├── AbstractNodeTypeManagementTest.java │ │ │ │ ├── AbstractRepositoryOperationTest.java │ │ │ │ ├── AbstractVersionManagementTest.java │ │ │ │ ├── AbstractWriteTest.java │ │ │ │ ├── CustomPrivilegeTest.java │ │ │ │ ├── GlobPatternTest.java │ │ │ │ ├── JackrabbitAccessControlListTest.java │ │ │ │ ├── PermissionTest.java │ │ │ │ ├── PrivilegeBitsTest.java │ │ │ │ ├── PrivilegeManagerImplTest.java │ │ │ │ ├── PrivilegeRegistryTest.java │ │ │ │ ├── TestAll.java │ │ │ │ ├── acl/ │ │ │ │ │ ├── ACLEditorTest.java │ │ │ │ │ ├── ACLTemplateEntryTest.java │ │ │ │ │ ├── ACLTemplateTest.java │ │ │ │ │ ├── AcReadWriteTest.java │ │ │ │ │ ├── EffectivePolicyTest.java │ │ │ │ │ ├── EntryCollectorTest.java │ │ │ │ │ ├── EntryTest.java │ │ │ │ │ ├── EvaluationUtil.java │ │ │ │ │ ├── LockTest.java │ │ │ │ │ ├── MoveTest.java │ │ │ │ │ ├── NodeTypeTest.java │ │ │ │ │ ├── ReadNodeTypeTest.java │ │ │ │ │ ├── ReadTest.java │ │ │ │ │ ├── RepositoryOperationTest.java │ │ │ │ │ ├── RestrictionTest.java │ │ │ │ │ ├── TestAll.java │ │ │ │ │ ├── VersionTest.java │ │ │ │ │ └── WriteTest.java │ │ │ │ ├── combined/ │ │ │ │ │ ├── TestAll.java │ │ │ │ │ └── WriteTest.java │ │ │ │ └── principalbased/ │ │ │ │ ├── ACLTemplateTest.java │ │ │ │ ├── EffectivePolicyTest.java │ │ │ │ ├── EntryTest.java │ │ │ │ ├── EvaluationUtil.java │ │ │ │ ├── LockTest.java │ │ │ │ ├── NodeTypeTest.java │ │ │ │ ├── RepositoryOperationTest.java │ │ │ │ ├── TestAll.java │ │ │ │ ├── VersionTest.java │ │ │ │ └── WriteTest.java │ │ │ ├── principal/ │ │ │ │ ├── AbstractPrincipalProviderTest.java │ │ │ │ ├── EveryonePrincipalTest.java │ │ │ │ ├── PrincipalManagerTest.java │ │ │ │ └── TestAll.java │ │ │ ├── simple/ │ │ │ │ ├── SimpleSecurityManagerTest.java │ │ │ │ └── TestAll.java │ │ │ └── user/ │ │ │ ├── AdministratorTest.java │ │ │ ├── AuthorizableActionTest.java │ │ │ ├── AuthorizableImplTest.java │ │ │ ├── DefaultPrincipalProviderTest.java │ │ │ ├── GroupAdministratorTest.java │ │ │ ├── GroupImplTest.java │ │ │ ├── ImpersonationImplTest.java │ │ │ ├── IndexNodeResolverTest.java │ │ │ ├── MembershipCachePerfTest.java │ │ │ ├── MembershipCacheTest.java │ │ │ ├── NodeCreationTest.java │ │ │ ├── NodeResolverTest.java │ │ │ ├── NotUserAdministratorTest.java │ │ │ ├── PasswordUtilityTest.java │ │ │ ├── TestAll.java │ │ │ ├── TraversingNodeResolverTest.java │ │ │ ├── UserAccessControlProviderTest.java │ │ │ ├── UserAdministratorTest.java │ │ │ ├── UserImplTest.java │ │ │ ├── UserImporterTest.java │ │ │ └── UserManagerImplTest.java │ │ ├── state/ │ │ │ ├── AbstractISMLockingTest.java │ │ │ ├── ChangeLogTest.java │ │ │ ├── DefaultISMLockingDeadlockTest.java │ │ │ ├── DefaultISMLockingTest.java │ │ │ ├── FineGrainedISMLockingTest.java │ │ │ ├── NameSetTest.java │ │ │ ├── NodeStateMergerTest.java │ │ │ └── TestAll.java │ │ ├── stats/ │ │ │ ├── QueryStatCoreTest.java │ │ │ └── TestAll.java │ │ ├── util/ │ │ │ ├── CooperativeFileLockTest.java │ │ │ ├── DOMWalkerTest.java │ │ │ ├── RepositoryLockTest.java │ │ │ ├── TestAll.java │ │ │ └── db/ │ │ │ ├── ConnectionFactoryTest.java │ │ │ └── TestAll.java │ │ ├── value/ │ │ │ ├── BinaryValueTest.java │ │ │ ├── InternalValueFactoryTest.java │ │ │ ├── InternalValueTest.java │ │ │ ├── PathTest.java │ │ │ ├── ReferenceBinaryTest.java │ │ │ └── TestAll.java │ │ ├── version/ │ │ │ ├── CheckinRemoveVersionTest.java │ │ │ ├── CopyFrozenUuidTest.java │ │ │ ├── InternalVersionHistoryImplTest.java │ │ │ ├── ModifyNonVersionableCheckedOutTest.java │ │ │ ├── RemoveAndAddVersionLabelXATest.java │ │ │ ├── RemoveOrphanVersionHistoryTest.java │ │ │ ├── RemoveVersionLabelTest.java │ │ │ ├── RemoveVersionTest.java │ │ │ ├── RestoreNodeWithSNSTest.java │ │ │ ├── RestoreTest.java │ │ │ ├── TestAll.java │ │ │ └── VersionIteratorImplTest.java │ │ └── xml/ │ │ ├── AccessControlImporterTest.java │ │ ├── DocumentViewTest.java │ │ ├── SystemViewTest.java │ │ ├── TestAll.java │ │ └── WorkspaceImporterTest.java │ ├── repository/ │ │ ├── repository.xml │ │ └── workspaces/ │ │ ├── default/ │ │ │ ├── synonyms.properties │ │ │ └── workspace.xml │ │ ├── index-format-v1/ │ │ │ ├── index/ │ │ │ │ ├── _0/ │ │ │ │ │ ├── _2.cfs │ │ │ │ │ ├── deletable │ │ │ │ │ └── segments │ │ │ │ └── indexes │ │ │ ├── items/ │ │ │ │ ├── 5a/ │ │ │ │ │ └── 9a/ │ │ │ │ │ └── d0fcc7f542bbb435bcb9ed30a2e2.n │ │ │ │ ├── ca/ │ │ │ │ │ └── fe/ │ │ │ │ │ └── babecafebabecafebabecafebabe.n │ │ │ │ └── de/ │ │ │ │ └── ad/ │ │ │ │ └── beefcafebabecafebabecafebabe.n │ │ │ ├── names.properties │ │ │ ├── namespaces.properties │ │ │ └── workspace.xml │ │ ├── index-format-v2/ │ │ │ ├── index/ │ │ │ │ ├── _0/ │ │ │ │ │ ├── _0.cfs │ │ │ │ │ ├── segments.gen │ │ │ │ │ ├── segments_1 │ │ │ │ │ └── segments_3 │ │ │ │ └── indexes │ │ │ ├── items/ │ │ │ │ ├── c9/ │ │ │ │ │ └── bb/ │ │ │ │ │ └── 26c0edf0408b8ab22e88c1edc593.n │ │ │ │ ├── ca/ │ │ │ │ │ └── fe/ │ │ │ │ │ └── babecafebabecafebabecafebabe.n │ │ │ │ └── de/ │ │ │ │ └── ad/ │ │ │ │ └── beefcafebabecafebabecafebabe.n │ │ │ ├── names.properties │ │ │ ├── namespaces.properties │ │ │ └── workspace.xml │ │ ├── index-format-v3/ │ │ │ ├── items/ │ │ │ │ ├── c9/ │ │ │ │ │ └── bb/ │ │ │ │ │ └── 26c0edf0408b8ab22e88c1edc593.n │ │ │ │ ├── ca/ │ │ │ │ │ └── fe/ │ │ │ │ │ └── babecafebabecafebabecafebabe.n │ │ │ │ └── de/ │ │ │ │ └── ad/ │ │ │ │ └── beefcafebabecafebabecafebabe.n │ │ │ ├── names.properties │ │ │ ├── namespaces.properties │ │ │ └── workspace.xml │ │ ├── indexing-test/ │ │ │ ├── indexing-configuration.xml │ │ │ └── workspace.xml │ │ ├── indexing-test-2/ │ │ │ ├── indexing-configuration.xml │ │ │ └── workspace.xml │ │ ├── security/ │ │ │ └── workspace.xml │ │ └── wsp-init-test/ │ │ └── workspace.xml │ ├── repository-descriptor-overlay/ │ │ ├── repository.xml │ │ └── workspaces/ │ │ ├── default/ │ │ │ └── workspace.xml │ │ ├── index-format-v1/ │ │ │ └── workspace.xml │ │ ├── index-format-v2/ │ │ │ └── workspace.xml │ │ ├── index-format-v3/ │ │ │ └── workspace.xml │ │ ├── indexing-test/ │ │ │ └── workspace.xml │ │ ├── security/ │ │ │ └── workspace.xml │ │ └── wsp-init-test/ │ │ └── workspace.xml │ └── resources/ │ ├── META-INF/ │ │ └── services/ │ │ └── org.apache.tika.parser.Parser │ ├── cnd-reader-test-input.cnd │ ├── jaas.config │ ├── logback-test.xml │ ├── org/ │ │ └── apache/ │ │ ├── jackrabbit/ │ │ │ ├── api/ │ │ │ │ └── test_mixin_nodetypes.cnd │ │ │ └── core/ │ │ │ ├── cluster/ │ │ │ │ ├── repository-h2.xml │ │ │ │ ├── repository-with-test-journal.xml │ │ │ │ └── repository.xml │ │ │ ├── config/ │ │ │ │ └── workspace.xml │ │ │ ├── integration/ │ │ │ │ ├── repository-with-SimpleFSDirectory.xml │ │ │ │ └── words.txt │ │ │ ├── nodetype/ │ │ │ │ └── xml/ │ │ │ │ ├── nodetypes.dtd │ │ │ │ ├── test_mixin_nodetypes.cnd │ │ │ │ ├── test_nodestatemerger_nodetypes.cnd │ │ │ │ ├── test_nodetypes.xml │ │ │ │ ├── test_ns_cnd_nodetypes.cnd │ │ │ │ ├── test_ns_xml_nodetypes.xml │ │ │ │ ├── test_same_nt_name_cnd_nodetypes.cnd │ │ │ │ └── test_same_nt_name_xml_nodetypes.xml │ │ │ ├── query/ │ │ │ │ ├── lucene/ │ │ │ │ │ ├── indexing_config1.xml │ │ │ │ │ ├── indexing_config2.xml │ │ │ │ │ ├── indexing_config3.xml │ │ │ │ │ ├── indexing_config4.xml │ │ │ │ │ ├── indexing_config5.xml │ │ │ │ │ └── indexing_config6.xml │ │ │ │ ├── test.rtf │ │ │ │ └── test.txt │ │ │ ├── repository-oracle-compat.xml │ │ │ ├── repository-oracle.xml │ │ │ └── security/ │ │ │ ├── simple/ │ │ │ │ └── simple_repository.xml │ │ │ └── user/ │ │ │ ├── repository-membersplit.xml │ │ │ └── repository.xml │ │ └── tika/ │ │ └── mime/ │ │ └── custom-mimetypes.xml │ ├── repositoryHelperPool.properties │ ├── repositoryStubImpl.properties │ ├── xsd-converter-model-output.cnd │ └── xsd-converter-test-input.xsd ├── jackrabbit-data/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ ├── core/ │ │ │ │ ├── config/ │ │ │ │ │ ├── ConfigurationException.java │ │ │ │ │ ├── DataSourceConfig.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── data/ │ │ │ │ │ ├── AbstractBackend.java │ │ │ │ │ ├── AbstractDataRecord.java │ │ │ │ │ ├── AbstractDataStore.java │ │ │ │ │ ├── AsyncTouchCallback.java │ │ │ │ │ ├── AsyncTouchResult.java │ │ │ │ │ ├── AsyncUploadCache.java │ │ │ │ │ ├── AsyncUploadCacheResult.java │ │ │ │ │ ├── AsyncUploadCallback.java │ │ │ │ │ ├── AsyncUploadResult.java │ │ │ │ │ ├── Backend.java │ │ │ │ │ ├── BackendResourceAbortable.java │ │ │ │ │ ├── CachingDataRecord.java │ │ │ │ │ ├── CachingDataStore.java │ │ │ │ │ ├── CachingFDS.java │ │ │ │ │ ├── DataIdentifier.java │ │ │ │ │ ├── DataRecord.java │ │ │ │ │ ├── DataStore.java │ │ │ │ │ ├── DataStoreException.java │ │ │ │ │ ├── DataStoreFactory.java │ │ │ │ │ ├── FSBackend.java │ │ │ │ │ ├── FileDataRecord.java │ │ │ │ │ ├── FileDataStore.java │ │ │ │ │ ├── LazyFileInputStream.java │ │ │ │ │ ├── LocalCache.java │ │ │ │ │ ├── MultiDataStore.java │ │ │ │ │ ├── MultiDataStoreAware.java │ │ │ │ │ ├── ScanEventListener.java │ │ │ │ │ ├── db/ │ │ │ │ │ │ ├── DbDataRecord.java │ │ │ │ │ │ ├── DbDataStore.java │ │ │ │ │ │ ├── DbInputStream.java │ │ │ │ │ │ ├── DerbyDataStore.java │ │ │ │ │ │ ├── ResettableTempFileInputStream.java │ │ │ │ │ │ ├── TempFileInputStream.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── NamedThreadFactory.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── fs/ │ │ │ │ │ ├── BasedFileSystem.java │ │ │ │ │ ├── FileSystem.java │ │ │ │ │ ├── FileSystemException.java │ │ │ │ │ ├── FileSystemFactory.java │ │ │ │ │ ├── FileSystemPathUtil.java │ │ │ │ │ ├── FileSystemResource.java │ │ │ │ │ ├── RandomAccessOutputStream.java │ │ │ │ │ ├── local/ │ │ │ │ │ │ ├── FileUtil.java │ │ │ │ │ │ ├── HandleMonitor.java │ │ │ │ │ │ ├── LocalFileSystem.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── package-info.java │ │ │ │ └── util/ │ │ │ │ └── db/ │ │ │ │ ├── CheckSchemaOperation.java │ │ │ │ ├── ConnectionFactory.java │ │ │ │ ├── ConnectionHelper.java │ │ │ │ ├── DataSourceWrapper.java │ │ │ │ ├── DatabaseAware.java │ │ │ │ ├── DbUtility.java │ │ │ │ ├── DerbyConnectionHelper.java │ │ │ │ ├── Oracle10R1ConnectionHelper.java │ │ │ │ ├── OracleConnectionHelper.java │ │ │ │ ├── PostgreSQLConnectionHelper.java │ │ │ │ ├── ResultSetWrapper.java │ │ │ │ ├── StreamWrapper.java │ │ │ │ └── package-info.java │ │ │ └── data/ │ │ │ └── core/ │ │ │ ├── InternalXAResource.java │ │ │ ├── TransactionContext.java │ │ │ ├── TransactionException.java │ │ │ └── package-info.java │ │ └── resources/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── core/ │ │ └── data/ │ │ └── db/ │ │ ├── azure.properties │ │ ├── db2.properties │ │ ├── derby.properties │ │ ├── h2.properties │ │ ├── ingres.properties │ │ ├── mssql.properties │ │ ├── mysql.properties │ │ ├── oracle.properties │ │ ├── postgresql.properties │ │ └── sqlserver.properties │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── core/ │ │ └── data/ │ │ ├── InMemoryBackend.java │ │ ├── InMemoryDataStore.java │ │ ├── RandomInputStream.java │ │ ├── TestCachingFDS.java │ │ ├── TestCachingFDSCacheOff.java │ │ ├── TestCaseBase.java │ │ ├── TestFileDataStore.java │ │ ├── TestInMemDs.java │ │ ├── TestInMemDsCacheOff.java │ │ ├── TestLocalCache.java │ │ └── db/ │ │ ├── ResettableTempFileInputStreamTest.java │ │ └── TempFileInputStreamTest.java │ └── resources/ │ ├── fs.properties │ └── log4j.properties ├── jackrabbit-it-osgi/ │ ├── README.md │ ├── pom.xml │ ├── src/ │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── osgi/ │ │ │ ├── OSGiIT.java │ │ │ └── slf4j2/ │ │ │ ├── Slf4j_v2_Tika_v2_4_OSGiIT.java │ │ │ └── Slf4j_v2_Tika_v2_9_OSGiIT.java │ │ └── resources/ │ │ ├── exam.properties │ │ └── logback-test.xml │ └── test-bundles.xml ├── jackrabbit-jca/ │ ├── HEADER.txt │ ├── README.txt │ ├── deploy/ │ │ ├── geronimo/ │ │ │ └── geronimo-ra.xml │ │ ├── jboss/ │ │ │ └── jcr-ds.xml │ │ └── weblogic/ │ │ └── weblogic-ra.xml │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── jca/ │ │ │ ├── AnonymousConnection.java │ │ │ ├── JCAConnectionManager.java │ │ │ ├── JCAConnectionRequestInfo.java │ │ │ ├── JCAManagedConnection.java │ │ │ ├── JCAManagedConnectionFactory.java │ │ │ ├── JCARepositoryHandle.java │ │ │ ├── JCARepositoryManager.java │ │ │ ├── JCAResourceAdapter.java │ │ │ ├── JCASessionHandle.java │ │ │ └── TransactionBoundXAResource.java │ │ ├── rar/ │ │ │ └── META-INF/ │ │ │ ├── LICENSE │ │ │ ├── NOTICE │ │ │ └── ra.xml │ │ ├── rar10/ │ │ │ └── META-INF/ │ │ │ └── ra.xml │ │ └── resources/ │ │ └── logback.xml │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── jca/ │ │ └── test/ │ │ ├── AbstractTestCase.java │ │ ├── ConnectionFactoryTest.java │ │ └── ConnectionRequestInfoTest.java │ └── resources/ │ └── logback-test.xml ├── jackrabbit-jcr-client/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── client/ │ │ │ └── RepositoryFactoryImpl.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── javax.jcr.RepositoryFactory │ └── test/ │ └── java/ │ └── org/ │ └── apache/ │ └── jackrabbit/ │ └── client/ │ ├── RepositoryFactoryImplTest.java │ └── RepositoryFactoryTest.java ├── jackrabbit-jcr-commons/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── appended-resources/ │ │ │ └── META-INF/ │ │ │ └── NOTICE │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ ├── JcrConstants.java │ │ │ ├── commons/ │ │ │ │ ├── AbstractItem.java │ │ │ │ ├── AbstractNode.java │ │ │ │ ├── AbstractProperty.java │ │ │ │ ├── AbstractRepository.java │ │ │ │ ├── AbstractSession.java │ │ │ │ ├── AbstractWorkspace.java │ │ │ │ ├── GenericRepositoryFactory.java │ │ │ │ ├── ItemNameMatcher.java │ │ │ │ ├── JcrUtils.java │ │ │ │ ├── JndiRepositoryFactory.java │ │ │ │ ├── NamespaceHelper.java │ │ │ │ ├── SimpleValueFactory.java │ │ │ │ ├── cnd/ │ │ │ │ │ ├── CndImporter.java │ │ │ │ │ ├── CompactNodeTypeDefReader.java │ │ │ │ │ ├── CompactNodeTypeDefWriter.java │ │ │ │ │ ├── DefinitionBuilderFactory.java │ │ │ │ │ ├── Lexer.java │ │ │ │ │ ├── ParseException.java │ │ │ │ │ ├── TemplateBuilderFactory.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── flat/ │ │ │ │ │ ├── BTreeManager.java │ │ │ │ │ ├── FilterIterator.java │ │ │ │ │ ├── ItemSequence.java │ │ │ │ │ ├── NodeSequence.java │ │ │ │ │ ├── PropertySequence.java │ │ │ │ │ ├── Rank.java │ │ │ │ │ ├── Sequence.java │ │ │ │ │ ├── SizedIterator.java │ │ │ │ │ ├── TreeManager.java │ │ │ │ │ ├── TreeTraverser.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── iterator/ │ │ │ │ │ ├── AbstractLazyIterator.java │ │ │ │ │ ├── AccessControlPolicyIteratorAdapter.java │ │ │ │ │ ├── EventIteratorAdapter.java │ │ │ │ │ ├── EventListenerIteratorAdapter.java │ │ │ │ │ ├── FilterIterator.java │ │ │ │ │ ├── FilteredRangeIterator.java │ │ │ │ │ ├── FilteringNodeIterator.java │ │ │ │ │ ├── FrozenNodeIteratorAdapter.java │ │ │ │ │ ├── LazyIteratorChain.java │ │ │ │ │ ├── NodeIterable.java │ │ │ │ │ ├── NodeIteratorAdapter.java │ │ │ │ │ ├── NodeTypeIteratorAdapter.java │ │ │ │ │ ├── PropertyIterable.java │ │ │ │ │ ├── PropertyIteratorAdapter.java │ │ │ │ │ ├── RangeIteratorAdapter.java │ │ │ │ │ ├── RangeIteratorDecorator.java │ │ │ │ │ ├── RowIterable.java │ │ │ │ │ ├── RowIteratorAdapter.java │ │ │ │ │ ├── SizedIterator.java │ │ │ │ │ ├── VersionIteratorAdapter.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── jackrabbit/ │ │ │ │ │ ├── SimpleReferenceBinary.java │ │ │ │ │ ├── authorization/ │ │ │ │ │ │ ├── AccessControlUtils.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── user/ │ │ │ │ │ ├── AuthorizableQueryManager.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── json/ │ │ │ │ │ ├── JsonHandler.java │ │ │ │ │ ├── JsonParser.java │ │ │ │ │ ├── JsonUtil.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── observation/ │ │ │ │ │ ├── EventTracker.java │ │ │ │ │ ├── JackrabbitEventTracker.java │ │ │ │ │ ├── ListenerTracker.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ ├── packaging/ │ │ │ │ │ ├── ContentPackage.java │ │ │ │ │ ├── ContentPackageExporter.java │ │ │ │ │ ├── FilterContentPackage.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── predicate/ │ │ │ │ │ ├── DeclaringTypePredicate.java │ │ │ │ │ ├── DepthPredicate.java │ │ │ │ │ ├── IsMandatoryPredicate.java │ │ │ │ │ ├── IsNodePredicate.java │ │ │ │ │ ├── NamePredicate.java │ │ │ │ │ ├── NodeTypePredicate.java │ │ │ │ │ ├── NtFilePredicate.java │ │ │ │ │ ├── PathPredicate.java │ │ │ │ │ ├── Predicate.java │ │ │ │ │ ├── Predicates.java │ │ │ │ │ ├── RowPredicate.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── query/ │ │ │ │ │ ├── GQL.java │ │ │ │ │ ├── QueryObjectModelBuilder.java │ │ │ │ │ ├── QueryObjectModelBuilderRegistry.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── qom/ │ │ │ │ │ │ ├── JoinType.java │ │ │ │ │ │ ├── OperandEvaluator.java │ │ │ │ │ │ ├── Operator.java │ │ │ │ │ │ ├── Order.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── sql2/ │ │ │ │ │ ├── Parser.java │ │ │ │ │ ├── QOMFormatter.java │ │ │ │ │ ├── SQL2QOMBuilder.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── repository/ │ │ │ │ │ ├── EmptyRepository.java │ │ │ │ │ ├── JNDIRepository.java │ │ │ │ │ ├── JNDIRepositoryFactory.java │ │ │ │ │ ├── ProxyRepository.java │ │ │ │ │ ├── RepositoryFactory.java │ │ │ │ │ ├── SingletonRepositoryFactory.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── visitor/ │ │ │ │ │ ├── FilteringItemVisitor.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── webdav/ │ │ │ │ │ ├── AtomFeedConstants.java │ │ │ │ │ ├── EventUtil.java │ │ │ │ │ ├── JcrRemotingConstants.java │ │ │ │ │ ├── JcrValueType.java │ │ │ │ │ ├── NodeTypeConstants.java │ │ │ │ │ ├── NodeTypeUtil.java │ │ │ │ │ ├── QueryUtil.java │ │ │ │ │ ├── ValueUtil.java │ │ │ │ │ └── package-info.java │ │ │ │ └── xml/ │ │ │ │ ├── DefaultContentHandler.java │ │ │ │ ├── DocumentViewExporter.java │ │ │ │ ├── Exporter.java │ │ │ │ ├── ParsingContentHandler.java │ │ │ │ ├── ProxyContentHandler.java │ │ │ │ ├── SerializingContentHandler.java │ │ │ │ ├── SystemViewExporter.java │ │ │ │ ├── ToXmlContentHandler.java │ │ │ │ ├── XMLFactories.java │ │ │ │ ├── XmlnsContentHandler.java │ │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ ├── stats/ │ │ │ │ ├── QueryStatCore.java │ │ │ │ ├── QueryStatDtoComparator.java │ │ │ │ ├── QueryStatDtoImpl.java │ │ │ │ ├── QueryStatDtoOccurrenceComparator.java │ │ │ │ ├── QueryStatImpl.java │ │ │ │ ├── RepositoryStatisticsImpl.java │ │ │ │ ├── TimeSeriesAverage.java │ │ │ │ ├── TimeSeriesMax.java │ │ │ │ ├── TimeSeriesRecorder.java │ │ │ │ ├── TimeSeriesStatsUtil.java │ │ │ │ ├── jmx/ │ │ │ │ │ ├── QueryStatManager.java │ │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ │ ├── util/ │ │ │ │ ├── Base64.java │ │ │ │ ├── ChildrenCollector.java │ │ │ │ ├── ChildrenCollectorFilter.java │ │ │ │ ├── ISO8601.java │ │ │ │ ├── ISO9075.java │ │ │ │ ├── LazyFileInputStream.java │ │ │ │ ├── Locked.java │ │ │ │ ├── LockedWrapper.java │ │ │ │ ├── Text.java │ │ │ │ ├── Timer.java │ │ │ │ ├── TransientFileFactory.java │ │ │ │ ├── WeakIdentityCollection.java │ │ │ │ ├── XMLChar.java │ │ │ │ ├── XMLUtil.java │ │ │ │ └── package-info.java │ │ │ └── value/ │ │ │ ├── AbstractValueFactory.java │ │ │ ├── BaseValue.java │ │ │ ├── BinaryImpl.java │ │ │ ├── BinaryValue.java │ │ │ ├── BooleanValue.java │ │ │ ├── DateValue.java │ │ │ ├── DecimalValue.java │ │ │ ├── DoubleValue.java │ │ │ ├── LongValue.java │ │ │ ├── NameValue.java │ │ │ ├── PathValue.java │ │ │ ├── ReferenceValue.java │ │ │ ├── StringValue.java │ │ │ ├── URIValue.java │ │ │ ├── ValueFactoryImpl.java │ │ │ ├── ValueHelper.java │ │ │ ├── WeakReferenceValue.java │ │ │ └── package-info.java │ │ ├── javadoc/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── uuid/ │ │ │ └── package.html │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ ├── javax.jcr.RepositoryFactory │ │ └── org.apache.jackrabbit.commons.query.QueryObjectModelBuilder │ └── test/ │ └── java/ │ └── org/ │ └── apache/ │ └── jackrabbit/ │ ├── commons/ │ │ ├── AbstractRepositoryTest.java │ │ ├── JcrUtilsTest.java │ │ ├── NamespaceHelperTest.java │ │ ├── SimpleValueFactoryTest.java │ │ ├── flat/ │ │ │ └── RankTest.java │ │ ├── iterator/ │ │ │ └── FilteredRangeIteratorTest.java │ │ ├── json/ │ │ │ ├── JsonParserTest.java │ │ │ ├── JsonUtilTest.java │ │ │ └── TestAll.java │ │ ├── query/ │ │ │ └── GQLTest.java │ │ └── xml/ │ │ ├── ParsingContentHandlerTest.java │ │ ├── SerializingContentHandlerTest.java │ │ ├── ToXmlContentHandlerTest.java │ │ └── XmlnsContentHandlerTest.java │ ├── stats/ │ │ ├── RepositoryStatisticsImplTest.java │ │ ├── TimeSeriesAverageTest.java │ │ ├── TimeSeriesMaxTest.java │ │ └── TimeSeriesRecorderTest.java │ ├── util/ │ │ ├── Base64Test.java │ │ ├── ISO8601Test.java │ │ ├── ISO9075Test.java │ │ ├── JcrUtilsTest.java │ │ ├── TextTest.java │ │ └── TimerTest.java │ ├── value/ │ │ └── BinaryValueTest.java │ └── xml/ │ └── XMLFactoriesTest.java ├── jackrabbit-jcr-server/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── appended-resources/ │ │ │ └── META-INF/ │ │ │ └── NOTICE │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ ├── server/ │ │ │ │ ├── BasicCredentialsProvider.java │ │ │ │ ├── CredentialsProvider.java │ │ │ │ ├── SessionProvider.java │ │ │ │ ├── SessionProviderImpl.java │ │ │ │ ├── io/ │ │ │ │ │ ├── AbstractExportContext.java │ │ │ │ │ ├── BoundedInputStream.java │ │ │ │ │ ├── CopyMoveContext.java │ │ │ │ │ ├── CopyMoveContextImpl.java │ │ │ │ │ ├── CopyMoveHandler.java │ │ │ │ │ ├── CopyMoveManager.java │ │ │ │ │ ├── CopyMoveManagerImpl.java │ │ │ │ │ ├── DefaultHandler.java │ │ │ │ │ ├── DefaultIOListener.java │ │ │ │ │ ├── DefaultIOManager.java │ │ │ │ │ ├── DeleteContext.java │ │ │ │ │ ├── DeleteContextImpl.java │ │ │ │ │ ├── DeleteHandler.java │ │ │ │ │ ├── DeleteManager.java │ │ │ │ │ ├── DeleteManagerImpl.java │ │ │ │ │ ├── DirListingExportHandler.java │ │ │ │ │ ├── ExportContext.java │ │ │ │ │ ├── ExportContextImpl.java │ │ │ │ │ ├── IOContext.java │ │ │ │ │ ├── IOHandler.java │ │ │ │ │ ├── IOListener.java │ │ │ │ │ ├── IOManager.java │ │ │ │ │ ├── IOManagerImpl.java │ │ │ │ │ ├── IOUtil.java │ │ │ │ │ ├── ImportContext.java │ │ │ │ │ ├── ImportContextImpl.java │ │ │ │ │ ├── PropertyExportContext.java │ │ │ │ │ ├── PropertyHandler.java │ │ │ │ │ ├── PropertyImportContext.java │ │ │ │ │ ├── PropertyManager.java │ │ │ │ │ ├── PropertyManagerImpl.java │ │ │ │ │ ├── VersionHandler.java │ │ │ │ │ ├── VersionHistoryHandler.java │ │ │ │ │ ├── XmlHandler.java │ │ │ │ │ └── ZipHandler.java │ │ │ │ ├── jcr/ │ │ │ │ │ └── JCRWebdavServer.java │ │ │ │ ├── package-info.java │ │ │ │ ├── remoting/ │ │ │ │ │ └── davex/ │ │ │ │ │ ├── AclRemoveHandler.java │ │ │ │ │ ├── BatchReadConfig.java │ │ │ │ │ ├── DavexServletService.java │ │ │ │ │ ├── DiffException.java │ │ │ │ │ ├── DiffHandler.java │ │ │ │ │ ├── DiffParser.java │ │ │ │ │ ├── JcrRemotingServlet.java │ │ │ │ │ ├── JsonDiffHandler.java │ │ │ │ │ ├── JsonWriter.java │ │ │ │ │ ├── ProtectedItemRemoveHandler.java │ │ │ │ │ ├── ProtectedRemoveConfig.java │ │ │ │ │ └── ProtectedRemoveManager.java │ │ │ │ └── util/ │ │ │ │ ├── HttpMultipartPost.java │ │ │ │ └── RequestData.java │ │ │ └── webdav/ │ │ │ ├── jcr/ │ │ │ │ ├── AbstractItemResource.java │ │ │ │ ├── AbstractResource.java │ │ │ │ ├── DavLocatorFactoryImpl.java │ │ │ │ ├── DavResourceFactoryImpl.java │ │ │ │ ├── DefaultItemCollection.java │ │ │ │ ├── DefaultItemResource.java │ │ │ │ ├── EventJournalResourceImpl.java │ │ │ │ ├── ItemResourceConstants.java │ │ │ │ ├── JCRWebdavServerServlet.java │ │ │ │ ├── JcrDavException.java │ │ │ │ ├── JcrDavSession.java │ │ │ │ ├── JcrValueType.java │ │ │ │ ├── RootCollection.java │ │ │ │ ├── VersionControlledItemCollection.java │ │ │ │ ├── WorkspaceResourceImpl.java │ │ │ │ ├── lock/ │ │ │ │ │ ├── JcrActiveLock.java │ │ │ │ │ ├── LockTokenMapper.java │ │ │ │ │ └── SessionScopedLockEntry.java │ │ │ │ ├── nodetype/ │ │ │ │ │ ├── ItemDefinitionImpl.java │ │ │ │ │ ├── NodeDefinitionImpl.java │ │ │ │ │ ├── NodeTypeProperty.java │ │ │ │ │ └── PropertyDefinitionImpl.java │ │ │ │ ├── observation/ │ │ │ │ │ ├── SubscriptionImpl.java │ │ │ │ │ └── SubscriptionManagerImpl.java │ │ │ │ ├── property/ │ │ │ │ │ ├── JcrDavPropertyNameSet.java │ │ │ │ │ ├── LengthsProperty.java │ │ │ │ │ ├── NamespacesProperty.java │ │ │ │ │ └── ValuesProperty.java │ │ │ │ ├── search/ │ │ │ │ │ ├── SearchResourceImpl.java │ │ │ │ │ └── SearchResultProperty.java │ │ │ │ ├── security/ │ │ │ │ │ ├── JcrSupportedPrivilegesProperty.java │ │ │ │ │ ├── JcrUserPrivilegesProperty.java │ │ │ │ │ └── SecurityUtils.java │ │ │ │ ├── transaction/ │ │ │ │ │ ├── TransactionListener.java │ │ │ │ │ └── TxLockManagerImpl.java │ │ │ │ └── version/ │ │ │ │ ├── VersionHistoryItemCollection.java │ │ │ │ ├── VersionItemCollection.java │ │ │ │ └── report/ │ │ │ │ ├── AbstractJcrReport.java │ │ │ │ ├── ExportViewReport.java │ │ │ │ ├── JcrPrivilegeReport.java │ │ │ │ ├── LocateByUuidReport.java │ │ │ │ ├── LocateCorrespondingNodeReport.java │ │ │ │ ├── NodeTypesReport.java │ │ │ │ ├── RegisteredNamespacesReport.java │ │ │ │ └── RepositoryDescriptorsReport.java │ │ │ └── simple/ │ │ │ ├── DavResourceImpl.java │ │ │ ├── DavSessionImpl.java │ │ │ ├── DavSessionProviderImpl.java │ │ │ ├── DefaultItemFilter.java │ │ │ ├── DeltaVResourceImpl.java │ │ │ ├── ItemFilter.java │ │ │ ├── LocatorFactoryImpl.java │ │ │ ├── LocatorFactoryImplEx.java │ │ │ ├── ResourceConfig.java │ │ │ ├── ResourceFactoryImpl.java │ │ │ ├── SimpleWebdavServlet.java │ │ │ ├── VersionControlledResourceImpl.java │ │ │ ├── VersionHistoryResourceImpl.java │ │ │ └── VersionResourceImpl.java │ │ ├── javadoc/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ ├── server/ │ │ │ │ └── io/ │ │ │ │ └── package.html │ │ │ └── webdav/ │ │ │ └── jcr/ │ │ │ ├── package.html │ │ │ └── version/ │ │ │ ├── package.html │ │ │ └── report/ │ │ │ └── package.html │ │ └── resources/ │ │ └── OSGI-INF/ │ │ └── l10n/ │ │ └── metatype.properties │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ ├── server/ │ │ │ ├── BasicCredentialsProviderTest.java │ │ │ ├── TestAll.java │ │ │ └── remoting/ │ │ │ └── davex/ │ │ │ ├── BatchReadConfigTest.java │ │ │ ├── DiffParserTest.java │ │ │ ├── JsonDiffHandlerImportTest.java │ │ │ ├── JsonDiffHandlerTest.java │ │ │ ├── JsonWriterTest.java │ │ │ └── TestAll.java │ │ └── webdav/ │ │ ├── jcr/ │ │ │ ├── JcrDavExceptionTest.java │ │ │ ├── JcrValueTypeTest.java │ │ │ ├── LockTimeOutFormatTest.java │ │ │ ├── LockTokenMappingTest.java │ │ │ ├── observation/ │ │ │ │ └── InfoMapTest.java │ │ │ └── security/ │ │ │ ├── AbstractSecurityTest.java │ │ │ ├── JcrSupportedPrivilegePropertyTest.java │ │ │ └── JcrUserPrivilegesPropertyTest.java │ │ ├── server/ │ │ │ ├── BindTest.java │ │ │ ├── ConditionalsTest.java │ │ │ ├── ContentCodingTest.java │ │ │ ├── HttpsSelfSignedTest.java │ │ │ ├── ProppatchTest.java │ │ │ ├── PutTest.java │ │ │ ├── RFC4918DestinationHeaderTest.java │ │ │ ├── RFC4918IfHeaderTest.java │ │ │ ├── RFC4918PropfindTest.java │ │ │ ├── RemotingTest.java │ │ │ └── WebDAVTestBase.java │ │ └── simple/ │ │ ├── LitmusTest.java │ │ ├── LocatorFactoryImplExTest.java │ │ └── ResourceConfigTest.java │ └── resources/ │ ├── config.xml │ ├── keystore │ ├── logback-test.xml │ ├── protectedHandlers.properties │ ├── protectedHandlersConfig.xml │ ├── repository.xml │ └── repositoryStubImpl.properties ├── jackrabbit-jcr-servlet/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── org/ │ └── apache/ │ └── jackrabbit/ │ └── servlet/ │ ├── AbstractRepositoryServlet.java │ ├── ContextRepositoryServlet.java │ ├── FilterRepositoryFactory.java │ ├── JNDIBindingServlet.java │ ├── JNDIRepositoryServlet.java │ ├── ServletRepository.java │ ├── ServletRepositoryFactory.java │ ├── jackrabbit/ │ │ ├── JackrabbitRepositoryServlet.java │ │ └── StatisticsServlet.java │ └── login/ │ ├── AbstractLoginFilter.java │ ├── BasicLoginFilter.java │ ├── ContainerLoginFilter.java │ └── NullLoginFilter.java ├── jackrabbit-jcr-tests/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ └── main/ │ ├── appended-resources/ │ │ └── META-INF/ │ │ └── NOTICE │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── test/ │ │ ├── AbstractJCRTest.java │ │ ├── ConcurrentTestSuite.java │ │ ├── ISO8601.java │ │ ├── JCRTestResult.java │ │ ├── JCRTestSuite.java │ │ ├── JNDIRepositoryStub.java │ │ ├── JUnitTest.java │ │ ├── LogPrintWriter.java │ │ ├── NotExecutableException.java │ │ ├── RepositoryHelper.java │ │ ├── RepositoryHelperPool.java │ │ ├── RepositoryHelperPoolImpl.java │ │ ├── RepositoryStub.java │ │ ├── RepositoryStubException.java │ │ ├── TestAll.java │ │ ├── XMLChar.java │ │ └── api/ │ │ ├── AbstractImportXmlTest.java │ │ ├── AbstractPropertyTest.java │ │ ├── AbstractWorkspaceCopyBetweenTest.java │ │ ├── AbstractWorkspaceCopyTest.java │ │ ├── AbstractWorkspaceReferenceableTest.java │ │ ├── AbstractWorkspaceSameNameSibsTest.java │ │ ├── AbstractWorkspaceVersionableTest.java │ │ ├── AddNodeTest.java │ │ ├── Base64.java │ │ ├── BinaryPropertyTest.java │ │ ├── BooleanPropertyTest.java │ │ ├── CheckPermissionTest.java │ │ ├── DatePropertyTest.java │ │ ├── DocumentViewImportTest.java │ │ ├── DoublePropertyTest.java │ │ ├── EscapeJCRUtil.java │ │ ├── ExportDocViewTest.java │ │ ├── ExportSysViewTest.java │ │ ├── GetWeakReferencesTest.java │ │ ├── HasPermissionTest.java │ │ ├── ImpersonateTest.java │ │ ├── LifecycleTest.java │ │ ├── LongPropertyTest.java │ │ ├── NamePropertyTest.java │ │ ├── NameTest.java │ │ ├── NamespaceRegistryReadMethodsTest.java │ │ ├── NamespaceRegistryTest.java │ │ ├── NamespaceRemappingTest.java │ │ ├── NodeAddMixinTest.java │ │ ├── NodeCanAddMixinTest.java │ │ ├── NodeDiscoveringNodeTypesTest.java │ │ ├── NodeItemIsModifiedTest.java │ │ ├── NodeItemIsNewTest.java │ │ ├── NodeIteratorTest.java │ │ ├── NodeMixinUtil.java │ │ ├── NodeOrderableChildNodesTest.java │ │ ├── NodeReadMethodsTest.java │ │ ├── NodeRemoveMixinTest.java │ │ ├── NodeSetPrimaryTypeTest.java │ │ ├── NodeTest.java │ │ ├── NodeUUIDTest.java │ │ ├── PathPropertyTest.java │ │ ├── PathTest.java │ │ ├── PropertyItemIsModifiedTest.java │ │ ├── PropertyItemIsNewTest.java │ │ ├── PropertyReadMethodsTest.java │ │ ├── PropertyTest.java │ │ ├── PropertyTypeTest.java │ │ ├── PropertyUtil.java │ │ ├── ReferencePropertyTest.java │ │ ├── ReferenceableRootNodesTest.java │ │ ├── ReferencesTest.java │ │ ├── RepositoryDescriptorTest.java │ │ ├── RepositoryFactoryTest.java │ │ ├── RepositoryLoginTest.java │ │ ├── RootNodeTest.java │ │ ├── SerializationContext.java │ │ ├── SerializationTest.java │ │ ├── SessionReadMethodsTest.java │ │ ├── SessionRemoveItemTest.java │ │ ├── SessionTest.java │ │ ├── SessionUUIDTest.java │ │ ├── SetPropertyAssumeTypeTest.java │ │ ├── SetPropertyBooleanTest.java │ │ ├── SetPropertyCalendarTest.java │ │ ├── SetPropertyConstraintViolationExceptionTest.java │ │ ├── SetPropertyDecimalTest.java │ │ ├── SetPropertyDoubleTest.java │ │ ├── SetPropertyInputStreamTest.java │ │ ├── SetPropertyLongTest.java │ │ ├── SetPropertyNodeTest.java │ │ ├── SetPropertyStringTest.java │ │ ├── SetPropertyValueTest.java │ │ ├── SetValueBinaryTest.java │ │ ├── SetValueBooleanTest.java │ │ ├── SetValueConstraintViolationExceptionTest.java │ │ ├── SetValueDateTest.java │ │ ├── SetValueDecimalTest.java │ │ ├── SetValueDoubleTest.java │ │ ├── SetValueInputStreamTest.java │ │ ├── SetValueLongTest.java │ │ ├── SetValueReferenceTest.java │ │ ├── SetValueStringTest.java │ │ ├── SetValueValueFormatExceptionTest.java │ │ ├── SetValueVersionExceptionTest.java │ │ ├── ShareableNodeTest.java │ │ ├── StringPropertyTest.java │ │ ├── SysViewContentHandler.java │ │ ├── TestAll.java │ │ ├── TreeComparator.java │ │ ├── UndefinedPropertyTest.java │ │ ├── ValueFactoryTest.java │ │ ├── WorkspaceCloneReferenceableTest.java │ │ ├── WorkspaceCloneSameNameSibsTest.java │ │ ├── WorkspaceCloneTest.java │ │ ├── WorkspaceCloneVersionableTest.java │ │ ├── WorkspaceCopyBetweenWorkspacesReferenceableTest.java │ │ ├── WorkspaceCopyBetweenWorkspacesSameNameSibsTest.java │ │ ├── WorkspaceCopyBetweenWorkspacesTest.java │ │ ├── WorkspaceCopyBetweenWorkspacesVersionableTest.java │ │ ├── WorkspaceCopyReferenceableTest.java │ │ ├── WorkspaceCopySameNameSibsTest.java │ │ ├── WorkspaceCopyTest.java │ │ ├── WorkspaceCopyVersionableTest.java │ │ ├── WorkspaceManagementTest.java │ │ ├── WorkspaceMoveReferenceableTest.java │ │ ├── WorkspaceMoveSameNameSibsTest.java │ │ ├── WorkspaceMoveTest.java │ │ ├── WorkspaceMoveVersionableTest.java │ │ ├── WorkspaceReadMethodsTest.java │ │ ├── WorkspaceTest.java │ │ ├── lock/ │ │ │ ├── AbstractLockTest.java │ │ │ ├── DeepLockTest.java │ │ │ ├── LockManagerTest.java │ │ │ ├── LockTest.java │ │ │ ├── OpenScopedLockTest.java │ │ │ ├── SessionScopedLockTest.java │ │ │ ├── SetValueLockExceptionTest.java │ │ │ └── TestAll.java │ │ ├── nodetype/ │ │ │ ├── CanAddChildNodeCallWithNodeTypeTest.java │ │ │ ├── CanAddChildNodeCallWithoutNodeTypeTest.java │ │ │ ├── CanRemoveItemTest.java │ │ │ ├── CanSetPropertyBinaryTest.java │ │ │ ├── CanSetPropertyBooleanTest.java │ │ │ ├── CanSetPropertyDateTest.java │ │ │ ├── CanSetPropertyDoubleTest.java │ │ │ ├── CanSetPropertyLongTest.java │ │ │ ├── CanSetPropertyMultipleTest.java │ │ │ ├── CanSetPropertyNameTest.java │ │ │ ├── CanSetPropertyPathTest.java │ │ │ ├── CanSetPropertyStringTest.java │ │ │ ├── CanSetPropertyTest.java │ │ │ ├── NodeDefTest.java │ │ │ ├── NodeTypeCreationTest.java │ │ │ ├── NodeTypeManagerTest.java │ │ │ ├── NodeTypeTest.java │ │ │ ├── NodeTypeUtil.java │ │ │ ├── PredefinedNodeTypeTest.java │ │ │ ├── PropertyDefTest.java │ │ │ └── TestAll.java │ │ ├── observation/ │ │ │ ├── AbstractObservationTest.java │ │ │ ├── AddEventListenerTest.java │ │ │ ├── EventIteratorTest.java │ │ │ ├── EventJournalTest.java │ │ │ ├── EventResult.java │ │ │ ├── EventTest.java │ │ │ ├── GetDateTest.java │ │ │ ├── GetIdentifierTest.java │ │ │ ├── GetInfoTest.java │ │ │ ├── GetRegisteredEventListenersTest.java │ │ │ ├── GetUserDataTest.java │ │ │ ├── LockingTest.java │ │ │ ├── NodeAddedTest.java │ │ │ ├── NodeMovedTest.java │ │ │ ├── NodeRemovedTest.java │ │ │ ├── NodeReorderTest.java │ │ │ ├── PropertyAddedTest.java │ │ │ ├── PropertyChangedTest.java │ │ │ ├── PropertyRemovedTest.java │ │ │ ├── TestAll.java │ │ │ └── WorkspaceOperationTest.java │ │ ├── query/ │ │ │ ├── AbstractOrderByTest.java │ │ │ ├── AbstractQueryLevel2Test.java │ │ │ ├── AbstractQueryTest.java │ │ │ ├── CreateQueryTest.java │ │ │ ├── DerefQueryLevel1Test.java │ │ │ ├── ElementTest.java │ │ │ ├── GetLanguageTest.java │ │ │ ├── GetPersistentQueryPathLevel1Test.java │ │ │ ├── GetPersistentQueryPathTest.java │ │ │ ├── GetPropertyNamesTest.java │ │ │ ├── GetStatementTest.java │ │ │ ├── GetSupportedQueryLanguagesTest.java │ │ │ ├── OrderByDateTest.java │ │ │ ├── OrderByDecimalTest.java │ │ │ ├── OrderByDoubleTest.java │ │ │ ├── OrderByLengthTest.java │ │ │ ├── OrderByLocalNameTest.java │ │ │ ├── OrderByLongTest.java │ │ │ ├── OrderByLowerCaseTest.java │ │ │ ├── OrderByMultiTypeTest.java │ │ │ ├── OrderByNameTest.java │ │ │ ├── OrderByStringTest.java │ │ │ ├── OrderByURITest.java │ │ │ ├── OrderByUpperCaseTest.java │ │ │ ├── PredicatesTest.java │ │ │ ├── QueryResultNodeIteratorTest.java │ │ │ ├── SQLJcrPathTest.java │ │ │ ├── SQLJoinTest.java │ │ │ ├── SQLOrderByTest.java │ │ │ ├── SQLPathTest.java │ │ │ ├── SQLQueryLevel2Test.java │ │ │ ├── SaveTest.java │ │ │ ├── SetLimitTest.java │ │ │ ├── SetOffsetTest.java │ │ │ ├── SimpleSelectionTest.java │ │ │ ├── Statement.java │ │ │ ├── TestAll.java │ │ │ ├── TextNodeTest.java │ │ │ ├── XPathDocOrderTest.java │ │ │ ├── XPathJcrPathTest.java │ │ │ ├── XPathOrderByTest.java │ │ │ ├── XPathPosIndexTest.java │ │ │ ├── XPathQueryLevel2Test.java │ │ │ └── qom/ │ │ │ ├── AbstractJoinTest.java │ │ │ ├── AbstractQOMTest.java │ │ │ ├── AndConstraintTest.java │ │ │ ├── BindVariableValueTest.java │ │ │ ├── ChildNodeJoinConditionTest.java │ │ │ ├── ChildNodeTest.java │ │ │ ├── ColumnTest.java │ │ │ ├── DescendantNodeJoinConditionTest.java │ │ │ ├── DescendantNodeTest.java │ │ │ ├── EquiJoinConditionTest.java │ │ │ ├── FullTextSearchScoreTest.java │ │ │ ├── GetQueryTest.java │ │ │ ├── LengthTest.java │ │ │ ├── NodeLocalNameTest.java │ │ │ ├── NodeNameTest.java │ │ │ ├── NotConstraintTest.java │ │ │ ├── OrConstraintTest.java │ │ │ ├── OrderingTest.java │ │ │ ├── PropertyExistenceTest.java │ │ │ ├── PropertyValueTest.java │ │ │ ├── QueryObjectModelFactoryTest.java │ │ │ ├── RowTest.java │ │ │ ├── SameNodeJoinConditionTest.java │ │ │ ├── SameNodeTest.java │ │ │ ├── SelectorTest.java │ │ │ ├── TestAll.java │ │ │ └── UpperLowerCaseTest.java │ │ ├── retention/ │ │ │ ├── AbstractRetentionTest.java │ │ │ ├── HoldEffectTest.java │ │ │ ├── HoldTest.java │ │ │ ├── RetentionPolicyEffectTest.java │ │ │ ├── RetentionPolicyTest.java │ │ │ └── TestAll.java │ │ ├── security/ │ │ │ ├── AbstractAccessControlTest.java │ │ │ ├── AccessControlDiscoveryTest.java │ │ │ ├── AccessControlListTest.java │ │ │ ├── AccessControlPolicyIteratorTest.java │ │ │ ├── AccessControlPolicyTest.java │ │ │ ├── RSessionAccessControlDiscoveryTest.java │ │ │ ├── RSessionAccessControlPolicyTest.java │ │ │ ├── RSessionAccessControlTest.java │ │ │ └── TestAll.java │ │ ├── util/ │ │ │ ├── ISO9075.java │ │ │ ├── InputStreamWrapper.java │ │ │ ├── TestAll.java │ │ │ └── Text.java │ │ └── version/ │ │ ├── AbstractMergeTest.java │ │ ├── AbstractOnParentVersionTest.java │ │ ├── AbstractVersionTest.java │ │ ├── ActivitiesTest.java │ │ ├── CheckinTest.java │ │ ├── CheckoutTest.java │ │ ├── ConfigurationsTest.java │ │ ├── CopyTest.java │ │ ├── FrozenNodeTest.java │ │ ├── GetContainingHistoryTest.java │ │ ├── GetCreatedTest.java │ │ ├── GetPredecessorsTest.java │ │ ├── GetReferencesNodeTest.java │ │ ├── GetVersionableUUIDTest.java │ │ ├── MergeActivityTest.java │ │ ├── MergeCancelMergeTest.java │ │ ├── MergeCheckedoutSubNodeTest.java │ │ ├── MergeDoneMergeTest.java │ │ ├── MergeNodeIteratorTest.java │ │ ├── MergeNodeTest.java │ │ ├── MergeNonVersionableSubNodeTest.java │ │ ├── MergeShallowTest.java │ │ ├── MergeSubNodeTest.java │ │ ├── OnParentVersionAbortTest.java │ │ ├── OnParentVersionComputeTest.java │ │ ├── OnParentVersionCopyTest.java │ │ ├── OnParentVersionIgnoreTest.java │ │ ├── OnParentVersionInitializeTest.java │ │ ├── RemoveVersionTest.java │ │ ├── RestoreTest.java │ │ ├── SessionMoveVersionExceptionTest.java │ │ ├── TestAll.java │ │ ├── VersionGraphTest.java │ │ ├── VersionHistoryTest.java │ │ ├── VersionLabelTest.java │ │ ├── VersionStorageTest.java │ │ ├── VersionTest.java │ │ ├── WorkspaceMoveVersionExceptionTest.java │ │ ├── WorkspaceRestoreTest.java │ │ └── simple/ │ │ ├── AbstractVersionTest.java │ │ ├── BasicTest.java │ │ ├── CheckinTest.java │ │ ├── CheckoutTest.java │ │ ├── CopyTest.java │ │ ├── FrozenNodeTest.java │ │ ├── RestoreTest.java │ │ └── TestAll.java │ └── resources/ │ └── org/ │ └── apache/ │ └── jackrabbit/ │ └── test/ │ └── api/ │ └── nodetype/ │ └── spec/ │ ├── mix-created.txt │ ├── mix-etag.txt │ ├── mix-language.txt │ ├── mix-lastModified.txt │ ├── mix-lifecycle.txt │ ├── mix-lockable.txt │ ├── mix-mimeType.txt │ ├── mix-referenceable.txt │ ├── mix-shareable.txt │ ├── mix-simpleVersionable.txt │ ├── mix-title.txt │ ├── mix-versionable.txt │ ├── nt-activity.txt │ ├── nt-address.txt │ ├── nt-base.txt │ ├── nt-childNodeDefinition.txt │ ├── nt-configuration.txt │ ├── nt-file.txt │ ├── nt-folder.txt │ ├── nt-frozenNode.txt │ ├── nt-hierarchyNode.txt │ ├── nt-linkedFile.txt │ ├── nt-nodeType.txt │ ├── nt-propertyDefinition.txt │ ├── nt-query.txt │ ├── nt-resource.txt │ ├── nt-unstructured.txt │ ├── nt-version.txt │ ├── nt-versionHistory.txt │ ├── nt-versionLabels.txt │ └── nt-versionedChild.txt ├── jackrabbit-jcr2dav/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── jcr2dav/ │ │ │ └── Jcr2davRepositoryFactory.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── services/ │ │ │ └── javax.jcr.RepositoryFactory │ │ └── accessControlProvider.properties │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── jcr2dav/ │ │ ├── ConformanceTest.java │ │ └── RepositoryStubImpl.java │ └── resources/ │ ├── logback-test.xml │ ├── protectedHandlersConfig.xml │ ├── repository.xml │ └── repositoryStubImpl.properties ├── jackrabbit-jcr2spi/ │ ├── README.txt │ ├── assembly.xml │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── appended-resources/ │ │ │ └── META-INF/ │ │ │ └── NOTICE │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── jcr2spi/ │ │ │ ├── ItemCache.java │ │ │ ├── ItemCacheImpl.java │ │ │ ├── ItemImpl.java │ │ │ ├── ItemLifeCycleListener.java │ │ │ ├── ItemManager.java │ │ │ ├── ItemManagerImpl.java │ │ │ ├── Jcr2spiRepositoryFactory.java │ │ │ ├── JcrLockManager.java │ │ │ ├── JcrVersionManager.java │ │ │ ├── LazyItemIterator.java │ │ │ ├── ManagerProvider.java │ │ │ ├── NamespaceRegistryImpl.java │ │ │ ├── NamespaceStorage.java │ │ │ ├── NodeImpl.java │ │ │ ├── PropertyImpl.java │ │ │ ├── RepositoryImpl.java │ │ │ ├── SessionImpl.java │ │ │ ├── SessionListener.java │ │ │ ├── StaleProperty.java │ │ │ ├── WorkspaceImpl.java │ │ │ ├── WorkspaceManager.java │ │ │ ├── XASession.java │ │ │ ├── XASessionImpl.java │ │ │ ├── config/ │ │ │ │ ├── CacheBehaviour.java │ │ │ │ ├── RepositoryConfig.java │ │ │ │ └── package-info.java │ │ │ ├── hierarchy/ │ │ │ │ ├── ChildNodeAttic.java │ │ │ │ ├── ChildNodeEntries.java │ │ │ │ ├── ChildNodeEntriesImpl.java │ │ │ │ ├── ChildPropertyEntries.java │ │ │ │ ├── ChildPropertyEntriesImpl.java │ │ │ │ ├── EntryFactory.java │ │ │ │ ├── EntryValidation.java │ │ │ │ ├── HierarchyEntry.java │ │ │ │ ├── HierarchyEntryImpl.java │ │ │ │ ├── HierarchyEventListener.java │ │ │ │ ├── HierarchyManager.java │ │ │ │ ├── HierarchyManagerImpl.java │ │ │ │ ├── LinkedEntries.java │ │ │ │ ├── NodeEntry.java │ │ │ │ ├── NodeEntryImpl.java │ │ │ │ ├── PropertyEntry.java │ │ │ │ ├── PropertyEntryImpl.java │ │ │ │ └── UniqueIdResolver.java │ │ │ ├── lock/ │ │ │ │ ├── LockManagerImpl.java │ │ │ │ └── LockStateManager.java │ │ │ ├── nodetype/ │ │ │ │ ├── BitsetENTCacheImpl.java │ │ │ │ ├── DefinitionValidator.java │ │ │ │ ├── EffectiveNodeType.java │ │ │ │ ├── EffectiveNodeTypeCache.java │ │ │ │ ├── EffectiveNodeTypeImpl.java │ │ │ │ ├── EffectiveNodeTypeProvider.java │ │ │ │ ├── ItemDefinitionProvider.java │ │ │ │ ├── ItemDefinitionProviderImpl.java │ │ │ │ ├── NodeTypeCache.java │ │ │ │ ├── NodeTypeDefinitionProvider.java │ │ │ │ ├── NodeTypeImpl.java │ │ │ │ ├── NodeTypeManagerImpl.java │ │ │ │ ├── NodeTypeRegistry.java │ │ │ │ ├── NodeTypeRegistryImpl.java │ │ │ │ └── NodeTypeRegistryListener.java │ │ │ ├── observation/ │ │ │ │ ├── EventImpl.java │ │ │ │ ├── EventJournalImpl.java │ │ │ │ ├── FilteredEventIterator.java │ │ │ │ ├── InternalEventListener.java │ │ │ │ └── ObservationManagerImpl.java │ │ │ ├── operation/ │ │ │ │ ├── AbstractCopy.java │ │ │ │ ├── AbstractOperation.java │ │ │ │ ├── AbstractRemove.java │ │ │ │ ├── AddLabel.java │ │ │ │ ├── AddNode.java │ │ │ │ ├── AddProperty.java │ │ │ │ ├── Checkin.java │ │ │ │ ├── Checkout.java │ │ │ │ ├── Checkpoint.java │ │ │ │ ├── Clone.java │ │ │ │ ├── Copy.java │ │ │ │ ├── CreateActivity.java │ │ │ │ ├── CreateConfiguration.java │ │ │ │ ├── IgnoreOperation.java │ │ │ │ ├── LockOperation.java │ │ │ │ ├── LockRefresh.java │ │ │ │ ├── LockRelease.java │ │ │ │ ├── Merge.java │ │ │ │ ├── Move.java │ │ │ │ ├── Operation.java │ │ │ │ ├── OperationVisitor.java │ │ │ │ ├── Remove.java │ │ │ │ ├── RemoveActivity.java │ │ │ │ ├── RemoveLabel.java │ │ │ │ ├── RemoveVersion.java │ │ │ │ ├── ReorderNodes.java │ │ │ │ ├── ResolveMergeConflict.java │ │ │ │ ├── Restore.java │ │ │ │ ├── SetMixin.java │ │ │ │ ├── SetPrimaryType.java │ │ │ │ ├── SetPropertyValue.java │ │ │ │ ├── SetTree.java │ │ │ │ ├── TransientOperation.java │ │ │ │ ├── TransientOperationVisitor.java │ │ │ │ ├── Update.java │ │ │ │ └── WorkspaceImport.java │ │ │ ├── package-info.java │ │ │ ├── query/ │ │ │ │ ├── NodeIteratorImpl.java │ │ │ │ ├── QueryImpl.java │ │ │ │ ├── QueryManagerImpl.java │ │ │ │ ├── QueryObjectModelImpl.java │ │ │ │ ├── QueryResultImpl.java │ │ │ │ ├── RowIteratorImpl.java │ │ │ │ └── ScoreNodeIterator.java │ │ │ ├── security/ │ │ │ │ ├── AccessManager.java │ │ │ │ ├── SecurityConstants.java │ │ │ │ └── authorization/ │ │ │ │ ├── AccessControlProvider.java │ │ │ │ ├── AccessControlProviderStub.java │ │ │ │ ├── PrivilegeImpl.java │ │ │ │ └── jackrabbit/ │ │ │ │ ├── AccessControlConstants.java │ │ │ │ └── acl/ │ │ │ │ ├── AccessControlEntryImpl.java │ │ │ │ ├── AccessControlListImpl.java │ │ │ │ ├── AccessControlManagerImpl.java │ │ │ │ └── AccessControlProviderImpl.java │ │ │ ├── state/ │ │ │ │ ├── AbstractItemStateFactory.java │ │ │ │ ├── ChangeLog.java │ │ │ │ ├── ItemState.java │ │ │ │ ├── ItemStateCreationListener.java │ │ │ │ ├── ItemStateFactory.java │ │ │ │ ├── ItemStateLifeCycleListener.java │ │ │ │ ├── ItemStateValidator.java │ │ │ │ ├── NodeState.java │ │ │ │ ├── PropertyState.java │ │ │ │ ├── SessionItemStateManager.java │ │ │ │ ├── Status.java │ │ │ │ ├── TransientISFactory.java │ │ │ │ ├── TransientItemStateFactory.java │ │ │ │ ├── TransientItemStateManager.java │ │ │ │ ├── UpdatableItemStateManager.java │ │ │ │ └── WorkspaceItemStateFactory.java │ │ │ ├── util/ │ │ │ │ ├── LogUtil.java │ │ │ │ ├── ReferenceChangeTracker.java │ │ │ │ └── StateUtility.java │ │ │ ├── version/ │ │ │ │ ├── VersionHistoryImpl.java │ │ │ │ ├── VersionImpl.java │ │ │ │ ├── VersionManager.java │ │ │ │ └── VersionManagerImpl.java │ │ │ └── xml/ │ │ │ ├── DocViewImportHandler.java │ │ │ ├── ImportHandler.java │ │ │ ├── Importer.java │ │ │ ├── SessionImporter.java │ │ │ ├── SysViewImportHandler.java │ │ │ ├── TargetImportHandler.java │ │ │ └── WorkspaceContentHandler.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── javax.jcr.RepositoryFactory │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── jcr2spi/ │ │ ├── AbstractJCR2SPITest.java │ │ ├── AbstractMoveTest.java │ │ ├── AbstractMoveTreeTest.java │ │ ├── AbstractRepositoryConfig.java │ │ ├── AccessByRelativePathTest.java │ │ ├── AddNewPropertyTest.java │ │ ├── AddNodeTest.java │ │ ├── AddPropertyTest.java │ │ ├── BinaryTest.java │ │ ├── CopyMoveToJsonTest.java │ │ ├── ExternalModificationTest.java │ │ ├── GetItemsTest.java │ │ ├── GetPropertyTest.java │ │ ├── HierarchyNodeTest.java │ │ ├── IsSameTest.java │ │ ├── ItemInfoStore.java │ │ ├── Jcr2SpiTestSuite.java │ │ ├── LazyItemIteratorTest.java │ │ ├── LoginTest.java │ │ ├── MixinModificationTest.java │ │ ├── MoveCombinedTest.java │ │ ├── MoveMultipleTest.java │ │ ├── MoveNewTreeTest.java │ │ ├── MoveReferenceableTest.java │ │ ├── MoveSNSTest.java │ │ ├── MoveTest.java │ │ ├── MoveToNewTest.java │ │ ├── MoveTreeTest.java │ │ ├── MultiValuedPropertyTest.java │ │ ├── NodeOrderTest.java │ │ ├── PropertyLengthTest.java │ │ ├── RefreshFalseTest.java │ │ ├── RefreshMovedTest.java │ │ ├── RefreshTrueTest.java │ │ ├── RemoveItemTest.java │ │ ├── RemoveMovedNodeTest.java │ │ ├── RemoveNewNodeTest.java │ │ ├── RemoveNodeTest.java │ │ ├── RemovePropertyTest.java │ │ ├── RemoveReferenceableNodeTest.java │ │ ├── RemoveSNSTest.java │ │ ├── RenameTest.java │ │ ├── ReorderMixedTest.java │ │ ├── ReorderMoveTest.java │ │ ├── ReorderNewAndSavedTest.java │ │ ├── ReorderNewSNSTest.java │ │ ├── ReorderNewTest.java │ │ ├── ReorderReferenceableSNSTest.java │ │ ├── ReorderSNSTest.java │ │ ├── ReorderTest.java │ │ ├── ReplaceNodeTest.java │ │ ├── RevertMoveTest.java │ │ ├── SNSIndexTest.java │ │ ├── SingleValuedPropertyTest.java │ │ ├── TestAll.java │ │ ├── TestConnect.java │ │ ├── UpdateTest.java │ │ ├── WorkspaceMoveTest.java │ │ ├── WorkspaceTest.java │ │ ├── benchmark/ │ │ │ └── ReadPerformanceTest.java │ │ ├── hierarchy/ │ │ │ └── LinkedEntriesTest.java │ │ ├── lock/ │ │ │ ├── AbstractLockTest.java │ │ │ ├── DeepLockTest.java │ │ │ ├── OpenScopedLockTest.java │ │ │ ├── SessionScopedLockTest.java │ │ │ └── TestAll.java │ │ ├── name/ │ │ │ ├── NamespaceRegistryTest.java │ │ │ └── TestAll.java │ │ ├── nodetype/ │ │ │ ├── AddMixinTest.java │ │ │ ├── MandatoryItemTest.java │ │ │ ├── NodeTypeImplTest.java │ │ │ ├── NodeTypeManagerImplTest.java │ │ │ ├── RemoveMixinTest.java │ │ │ └── TestAll.java │ │ ├── observation/ │ │ │ ├── ObservationTest.java │ │ │ └── TestAll.java │ │ ├── query/ │ │ │ ├── QueryTest.java │ │ │ └── TestAll.java │ │ ├── security/ │ │ │ ├── Jcr2SpiSecurityTestSuite.java │ │ │ └── authorization/ │ │ │ └── jackrabbit/ │ │ │ └── acl/ │ │ │ ├── AccessControlListImplTest.java │ │ │ ├── AccessControlManagerImplTest.java │ │ │ └── TestAll.java │ │ ├── version/ │ │ │ ├── LabelTest.java │ │ │ └── TestAll.java │ │ └── xml/ │ │ ├── SessionImportTest.java │ │ └── TestAll.java │ └── resources/ │ ├── accessControlProvider.properties │ ├── logback-test.xml │ └── org/ │ └── apache/ │ └── jackrabbit/ │ └── jcr2spi/ │ └── default-nodetypes.cnd ├── jackrabbit-parent/ │ └── pom.xml ├── jackrabbit-spi/ │ ├── README.txt │ ├── assembly.xml │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── appended-resources/ │ │ │ └── META-INF/ │ │ │ └── NOTICE │ │ └── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── spi/ │ │ ├── Batch.java │ │ ├── ChildInfo.java │ │ ├── Event.java │ │ ├── EventBundle.java │ │ ├── EventFilter.java │ │ ├── IdFactory.java │ │ ├── ItemId.java │ │ ├── ItemInfo.java │ │ ├── ItemInfoCache.java │ │ ├── LockInfo.java │ │ ├── Name.java │ │ ├── NameFactory.java │ │ ├── NodeId.java │ │ ├── NodeInfo.java │ │ ├── Path.java │ │ ├── PathFactory.java │ │ ├── PrivilegeDefinition.java │ │ ├── PropertyId.java │ │ ├── PropertyInfo.java │ │ ├── QItemDefinition.java │ │ ├── QNodeDefinition.java │ │ ├── QNodeTypeDefinition.java │ │ ├── QPropertyDefinition.java │ │ ├── QValue.java │ │ ├── QValueConstraint.java │ │ ├── QValueFactory.java │ │ ├── QueryInfo.java │ │ ├── QueryResultRow.java │ │ ├── RepositoryService.java │ │ ├── RepositoryServiceFactory.java │ │ ├── SessionInfo.java │ │ ├── Subscription.java │ │ ├── Tree.java │ │ ├── XASessionInfo.java │ │ └── package-info.java │ └── test/ │ └── java/ │ └── org/ │ └── apache/ │ └── jackrabbit/ │ └── spi/ │ ├── AbstractSPITest.java │ ├── Helper.java │ ├── QValueFactoryTest.java │ ├── QValueTest.java │ ├── RepositoryServiceStub.java │ ├── RepositoryServiceTest.java │ ├── SessionInfoTest.java │ └── TestAll.java ├── jackrabbit-spi-commons/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── appended-resources/ │ │ │ └── META-INF/ │ │ │ ├── LICENSE │ │ │ └── NOTICE │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── jackrabbit/ │ │ │ └── spi/ │ │ │ └── commons/ │ │ │ ├── AbstractReadableRepositoryService.java │ │ │ ├── AbstractRepositoryService.java │ │ │ ├── AdditionalEventInfo.java │ │ │ ├── ChildInfoImpl.java │ │ │ ├── EventBundleImpl.java │ │ │ ├── EventFilterImpl.java │ │ │ ├── EventImpl.java │ │ │ ├── ItemInfoBuilder.java │ │ │ ├── ItemInfoCacheImpl.java │ │ │ ├── ItemInfoImpl.java │ │ │ ├── LockInfoImpl.java │ │ │ ├── NodeInfoImpl.java │ │ │ ├── PropertyInfoImpl.java │ │ │ ├── QItemDefinitionImpl.java │ │ │ ├── QNodeDefinitionImpl.java │ │ │ ├── QNodeTypeDefinitionImpl.java │ │ │ ├── QPropertyDefinitionImpl.java │ │ │ ├── SerializableBatch.java │ │ │ ├── SessionExtensions.java │ │ │ ├── SessionInfoImpl.java │ │ │ ├── batch/ │ │ │ │ ├── AbstractChangeLog.java │ │ │ │ ├── ChangeLog.java │ │ │ │ ├── ChangeLogImpl.java │ │ │ │ ├── ConsolidatingChangeLog.java │ │ │ │ ├── Operation.java │ │ │ │ ├── Operations.java │ │ │ │ └── package-info.java │ │ │ ├── conversion/ │ │ │ │ ├── CachingNameResolver.java │ │ │ │ ├── CachingPathResolver.java │ │ │ │ ├── DefaultNamePathResolver.java │ │ │ │ ├── GenerationalCache.java │ │ │ │ ├── IdentifierResolver.java │ │ │ │ ├── IllegalNameException.java │ │ │ │ ├── MalformedPathException.java │ │ │ │ ├── NameException.java │ │ │ │ ├── NameParser.java │ │ │ │ ├── NamePathResolver.java │ │ │ │ ├── NameResolver.java │ │ │ │ ├── ParsingNameResolver.java │ │ │ │ ├── ParsingPathResolver.java │ │ │ │ ├── PathParser.java │ │ │ │ ├── PathResolver.java │ │ │ │ └── package-info.java │ │ │ ├── identifier/ │ │ │ │ ├── AbstractIdFactory.java │ │ │ │ ├── IdFactoryImpl.java │ │ │ │ └── package-info.java │ │ │ ├── iterator/ │ │ │ │ ├── BoundedIterator.java │ │ │ │ ├── Iterators.java │ │ │ │ ├── Predicate.java │ │ │ │ ├── Predicates.java │ │ │ │ ├── Transformer.java │ │ │ │ └── package-info.java │ │ │ ├── lock/ │ │ │ │ ├── Locked.java │ │ │ │ └── package-info.java │ │ │ ├── logging/ │ │ │ │ ├── AbstractLogger.java │ │ │ │ ├── BatchLogger.java │ │ │ │ ├── IdFactoryLogger.java │ │ │ │ ├── LogWriter.java │ │ │ │ ├── LogWriterProvider.java │ │ │ │ ├── NameFactoryLogger.java │ │ │ │ ├── PathFactoryLogger.java │ │ │ │ ├── QValueFactoryLogger.java │ │ │ │ ├── RepositoryServiceLogger.java │ │ │ │ ├── SessionInfoLogger.java │ │ │ │ ├── Slf4jLogWriter.java │ │ │ │ ├── Slf4jLogWriterProvider.java │ │ │ │ ├── SpiLoggerFactory.java │ │ │ │ ├── WriterLogWriter.java │ │ │ │ ├── WriterLogWriterProvider.java │ │ │ │ └── package-info.java │ │ │ ├── name/ │ │ │ │ ├── AbstractPath.java │ │ │ │ ├── CurrentPath.java │ │ │ │ ├── HashCache.java │ │ │ │ ├── IdentifierPath.java │ │ │ │ ├── MatchResult.java │ │ │ │ ├── Matcher.java │ │ │ │ ├── NameConstants.java │ │ │ │ ├── NameFactoryImpl.java │ │ │ │ ├── NamePath.java │ │ │ │ ├── ParentPath.java │ │ │ │ ├── PathBuilder.java │ │ │ │ ├── PathFactoryImpl.java │ │ │ │ ├── PathMap.java │ │ │ │ ├── Pattern.java │ │ │ │ ├── RelativePath.java │ │ │ │ ├── RootPath.java │ │ │ │ └── package-info.java │ │ │ ├── namespace/ │ │ │ │ ├── AbstractNamespaceResolver.java │ │ │ │ ├── NamespaceAdder.java │ │ │ │ ├── NamespaceExtractor.java │ │ │ │ ├── NamespaceListener.java │ │ │ │ ├── NamespaceMapping.java │ │ │ │ ├── NamespaceResolver.java │ │ │ │ ├── RegistryNamespaceResolver.java │ │ │ │ ├── SessionNamespaceResolver.java │ │ │ │ └── package-info.java │ │ │ ├── nodetype/ │ │ │ │ ├── AbstractItemDefinitionTemplate.java │ │ │ │ ├── AbstractNodeType.java │ │ │ │ ├── AbstractNodeTypeManager.java │ │ │ │ ├── InvalidConstraintException.java │ │ │ │ ├── ItemDefinitionImpl.java │ │ │ │ ├── NodeDefinitionImpl.java │ │ │ │ ├── NodeDefinitionTemplateImpl.java │ │ │ │ ├── NodeTypeConflictException.java │ │ │ │ ├── NodeTypeDefDiff.java │ │ │ │ ├── NodeTypeDefinitionFactory.java │ │ │ │ ├── NodeTypeDefinitionImpl.java │ │ │ │ ├── NodeTypeStorage.java │ │ │ │ ├── NodeTypeStorageImpl.java │ │ │ │ ├── NodeTypeTemplateImpl.java │ │ │ │ ├── PropertyDefinitionImpl.java │ │ │ │ ├── PropertyDefinitionTemplateImpl.java │ │ │ │ ├── QDefinitionBuilderFactory.java │ │ │ │ ├── QItemDefinitionBuilder.java │ │ │ │ ├── QNodeDefinitionBuilder.java │ │ │ │ ├── QNodeTypeDefinitionBuilder.java │ │ │ │ ├── QPropertyDefinitionBuilder.java │ │ │ │ ├── compact/ │ │ │ │ │ ├── CompactNodeTypeDefWriter.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── constraint/ │ │ │ │ │ ├── BooleanConstraint.java │ │ │ │ │ ├── DateConstraint.java │ │ │ │ │ ├── NameConstraint.java │ │ │ │ │ ├── NumericConstraint.java │ │ │ │ │ ├── PathConstraint.java │ │ │ │ │ ├── ReferenceConstraint.java │ │ │ │ │ ├── StringConstraint.java │ │ │ │ │ ├── ValueConstraint.java │ │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ ├── privilege/ │ │ │ │ ├── ParseException.java │ │ │ │ ├── PrivilegeDefinitionImpl.java │ │ │ │ ├── PrivilegeDefinitionReader.java │ │ │ │ ├── PrivilegeDefinitionWriter.java │ │ │ │ ├── PrivilegeHandler.java │ │ │ │ ├── PrivilegeXmlHandler.java │ │ │ │ └── package-info.java │ │ │ ├── query/ │ │ │ │ ├── AndQueryNode.java │ │ │ │ ├── ConstantNameProvider.java │ │ │ │ ├── DefaultQueryNodeFactory.java │ │ │ │ ├── DefaultQueryNodeVisitor.java │ │ │ │ ├── DerefQueryNode.java │ │ │ │ ├── ExactQueryNode.java │ │ │ │ ├── LocationStepQueryNode.java │ │ │ │ ├── NAryQueryNode.java │ │ │ │ ├── NodeTypeQueryNode.java │ │ │ │ ├── NotQueryNode.java │ │ │ │ ├── OrQueryNode.java │ │ │ │ ├── OrderQueryNode.java │ │ │ │ ├── PathQueryNode.java │ │ │ │ ├── PropertyFunctionQueryNode.java │ │ │ │ ├── QueryConstants.java │ │ │ │ ├── QueryNode.java │ │ │ │ ├── QueryNodeFactory.java │ │ │ │ ├── QueryNodeVisitor.java │ │ │ │ ├── QueryParser.java │ │ │ │ ├── QueryRootNode.java │ │ │ │ ├── QueryTreeBuilder.java │ │ │ │ ├── QueryTreeBuilderRegistry.java │ │ │ │ ├── QueryTreeDump.java │ │ │ │ ├── RelationQueryNode.java │ │ │ │ ├── TextsearchQueryNode.java │ │ │ │ ├── TraversingQueryNodeVisitor.java │ │ │ │ ├── package-info.java │ │ │ │ ├── qom/ │ │ │ │ │ ├── AbstractQOMNode.java │ │ │ │ │ ├── AndImpl.java │ │ │ │ │ ├── BindVariableValueImpl.java │ │ │ │ │ ├── ChildNodeImpl.java │ │ │ │ │ ├── ChildNodeJoinConditionImpl.java │ │ │ │ │ ├── ColumnImpl.java │ │ │ │ │ ├── ComparisonImpl.java │ │ │ │ │ ├── ConstraintImpl.java │ │ │ │ │ ├── DefaultQOMTreeVisitor.java │ │ │ │ │ ├── DefaultTraversingQOMTreeVisitor.java │ │ │ │ │ ├── DescendantNodeImpl.java │ │ │ │ │ ├── DescendantNodeJoinConditionImpl.java │ │ │ │ │ ├── DynamicOperandImpl.java │ │ │ │ │ ├── EquiJoinConditionImpl.java │ │ │ │ │ ├── FullTextSearchImpl.java │ │ │ │ │ ├── FullTextSearchScoreImpl.java │ │ │ │ │ ├── JoinConditionImpl.java │ │ │ │ │ ├── JoinImpl.java │ │ │ │ │ ├── LengthImpl.java │ │ │ │ │ ├── LiteralImpl.java │ │ │ │ │ ├── LowerCaseImpl.java │ │ │ │ │ ├── NodeLocalNameImpl.java │ │ │ │ │ ├── NodeNameImpl.java │ │ │ │ │ ├── NotImpl.java │ │ │ │ │ ├── OrImpl.java │ │ │ │ │ ├── OrderingImpl.java │ │ │ │ │ ├── PropertyExistenceImpl.java │ │ │ │ │ ├── PropertyValueImpl.java │ │ │ │ │ ├── QOMTreeVisitor.java │ │ │ │ │ ├── QueryObjectModelFactoryImpl.java │ │ │ │ │ ├── QueryObjectModelTree.java │ │ │ │ │ ├── SameNodeImpl.java │ │ │ │ │ ├── SameNodeJoinConditionImpl.java │ │ │ │ │ ├── SelectorImpl.java │ │ │ │ │ ├── SourceImpl.java │ │ │ │ │ ├── StaticOperandImpl.java │ │ │ │ │ ├── UpperCaseImpl.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── sql/ │ │ │ │ │ ├── ASTAndExpression.java │ │ │ │ │ ├── ASTAscendingOrderSpec.java │ │ │ │ │ ├── ASTBracketExpression.java │ │ │ │ │ ├── ASTContainsExpression.java │ │ │ │ │ ├── ASTDescendingOrderSpec.java │ │ │ │ │ ├── ASTExcerptFunction.java │ │ │ │ │ ├── ASTFromClause.java │ │ │ │ │ ├── ASTIdentifier.java │ │ │ │ │ ├── ASTLiteral.java │ │ │ │ │ ├── ASTLowerFunction.java │ │ │ │ │ ├── ASTNotExpression.java │ │ │ │ │ ├── ASTOrExpression.java │ │ │ │ │ ├── ASTOrderByClause.java │ │ │ │ │ ├── ASTOrderSpec.java │ │ │ │ │ ├── ASTPredicate.java │ │ │ │ │ ├── ASTQuery.java │ │ │ │ │ ├── ASTSelectList.java │ │ │ │ │ ├── ASTUpperFunction.java │ │ │ │ │ ├── ASTWhereClause.java │ │ │ │ │ ├── DefaultParserVisitor.java │ │ │ │ │ ├── JCRSQLParser.java │ │ │ │ │ ├── JCRSQLParserConstants.java │ │ │ │ │ ├── JCRSQLParserTokenManager.java │ │ │ │ │ ├── JCRSQLParserTreeConstants.java │ │ │ │ │ ├── JCRSQLParserVisitor.java │ │ │ │ │ ├── JCRSQLQueryBuilder.java │ │ │ │ │ ├── JJTJCRSQLParserState.java │ │ │ │ │ ├── Node.java │ │ │ │ │ ├── ParseException.java │ │ │ │ │ ├── QueryBuilder.java │ │ │ │ │ ├── QueryFormat.java │ │ │ │ │ ├── SimpleCharStream.java │ │ │ │ │ ├── SimpleNode.java │ │ │ │ │ ├── Token.java │ │ │ │ │ ├── TokenMgrError.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── sql2/ │ │ │ │ │ ├── Parser.java │ │ │ │ │ └── package-info.java │ │ │ │ └── xpath/ │ │ │ │ ├── JJTXPathState.java │ │ │ │ ├── Node.java │ │ │ │ ├── ParseException.java │ │ │ │ ├── QueryBuilder.java │ │ │ │ ├── QueryFormat.java │ │ │ │ ├── SimpleCharStream.java │ │ │ │ ├── SimpleNode.java │ │ │ │ ├── Token.java │ │ │ │ ├── TokenMgrError.java │ │ │ │ ├── XPath.java │ │ │ │ ├── XPathConstants.java │ │ │ │ ├── XPathQueryBuilder.java │ │ │ │ ├── XPathTokenManager.java │ │ │ │ ├── XPathTreeConstants.java │ │ │ │ ├── XPathVisitor.java │ │ │ │ └── package-info.java │ │ │ ├── tree/ │ │ │ │ ├── AbstractTree.java │ │ │ │ └── package-info.java │ │ │ ├── util/ │ │ │ │ ├── StringCache.java │ │ │ │ └── package-info.java │ │ │ └── value/ │ │ │ ├── AbstractQValue.java │ │ │ ├── AbstractQValueFactory.java │ │ │ ├── DefaultQValue.java │ │ │ ├── QValueFactoryImpl.java │ │ │ ├── QValueValue.java │ │ │ ├── ValueFactoryQImpl.java │ │ │ ├── ValueFormat.java │ │ │ └── package-info.java │ │ ├── javacc/ │ │ │ ├── sql/ │ │ │ │ └── JCRSQL.jjt │ │ │ └── xpath/ │ │ │ ├── XPath.jjt │ │ │ ├── javacc.xsl │ │ │ ├── jjtree-jackrabbit.xsl │ │ │ ├── jjtree.xsl │ │ │ ├── strip.xsl │ │ │ └── xpath-grammar.xml │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.apache.jackrabbit.spi.commons.query.QueryTreeBuilder │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── jackrabbit/ │ │ └── spi/ │ │ └── commons/ │ │ ├── batch/ │ │ │ └── ConsolidatedBatchTest.java │ │ ├── conversion/ │ │ │ ├── DummyIdentifierResolver.java │ │ │ ├── DummyNamespaceResolver.java │ │ │ ├── NameParserTest.java │ │ │ ├── ParsingNameResolverTest.java │ │ │ ├── ParsingPathResolverTest.java │ │ │ └── PathParserTest.java │ │ ├── identifier/ │ │ │ └── SerializationTest.java │ │ ├── name/ │ │ │ ├── ElementTest.java │ │ │ ├── JcrName.java │ │ │ ├── JcrPath.java │ │ │ ├── MatcherTest.java │ │ │ ├── NameFactoryTest.java │ │ │ ├── PathBuilderTest.java │ │ │ ├── PathFactoryTest.java │ │ │ ├── PathTest.java │ │ │ └── PatternTest.java │ │ ├── nodetype/ │ │ │ ├── NodeDefinitionTemplateImplTest.java │ │ │ ├── NodeTypeDefDiffTest.java │ │ │ ├── PropertyDefinitionTemplateImplTest.java │ │ │ ├── TestAll.java │ │ │ ├── compact/ │ │ │ │ └── CompactNodeTypeDefTest.java │ │ │ └── constraint/ │ │ │ ├── BooleanConstraintTest.java │ │ │ ├── DateConstraintTest.java │ │ │ ├── NameConstraintTest.java │ │ │ ├── NumericConstraintTest.java │ │ │ ├── PathConstraintTest.java │ │ │ ├── ReferenceConstraintTest.java │ │ │ ├── StringConstraintTest.java │ │ │ └── ValueConstraintTest.java │ │ ├── privilege/ │ │ │ ├── PrivilegeHandlerTest.java │ │ │ └── TestAll.java │ │ ├── query/ │ │ │ ├── sql2/ │ │ │ │ └── ParserTest.java │ │ │ └── xpath/ │ │ │ ├── QueryFormatTest.java │ │ │ └── XPathOrderByTest.java │ │ └── value/ │ │ ├── QValueTest.java │ │ └── ValueFormatTest.java │ └── resources/ │ ├── cnd-reader-test-input.cnd │ ├── logback-test.xml │ └── org/ │ └── apache/ │ └── jackrabbit/ │ └── spi/ │ └── commons/ │ ├── privilege/ │ │ ├── readtest.xml │ │ └── writetest.xml │
Showing preview only (3,010K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (30523 symbols across 2863 files)
FILE: examples/jackrabbit-firsthops/src/main/java/org/apache/jackrabbit/firsthops/FirstHop.java
class FirstHop (line 29) | public class FirstHop {
method main (line 39) | public static void main(String[] args) throws Exception {
FILE: examples/jackrabbit-firsthops/src/main/java/org/apache/jackrabbit/firsthops/SecondHop.java
class SecondHop (line 29) | public class SecondHop {
method main (line 39) | public static void main(String[] args) throws Exception {
FILE: examples/jackrabbit-firsthops/src/main/java/org/apache/jackrabbit/firsthops/ThirdHop.java
class ThirdHop (line 28) | public class ThirdHop {
method main (line 38) | public static void main(String[] args) throws Exception {
method dump (line 67) | private static void dump(Node node) throws RepositoryException {
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3Constants.java
class S3Constants (line 23) | public final class S3Constants {
method S3Constants (line 118) | private S3Constants() {
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3RequestDecorator.java
class S3RequestDecorator (line 30) | public class S3RequestDecorator {
method S3RequestDecorator (line 33) | public S3RequestDecorator(Properties props) {
method decorate (line 42) | public PutObjectRequest decorate(PutObjectRequest request) {
method decorate (line 60) | public CopyObjectRequest decorate(CopyObjectRequest request) {
method getDataEncryption (line 75) | private DataEncryption getDataEncryption() {
type DataEncryption (line 83) | private enum DataEncryption {
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/Utils.java
class Utils (line 46) | public final class Utils {
method Utils (line 73) | private Utils() {
method openService (line 83) | public static AmazonS3Client openService(final Properties prop) {
method deleteBucket (line 140) | public static void deleteBucket(final String bucketName) throws IOExce...
method readConfig (line 164) | public static Properties readConfig(String fileName) throws IOException {
method deleteIfPossible (line 190) | private static void deleteIfPossible(final File file) {
method getClientConfiguration (line 197) | private static ClientConfiguration getClientConfiguration(Properties p...
method getS3ClientOptions (line 229) | private static S3ClientOptions getS3ClientOptions(Properties prop) {
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/S3Backend.java
class S3Backend (line 75) | public class S3Backend extends AbstractBackend {
method init (line 100) | @Override
method init (line 124) | public void init(CachingDataStore store, String homeDir, Properties prop)
method write (line 211) | @Override
method writeAsync (line 218) | @Override
method exists (line 232) | @Override
method exists (line 264) | @Override
method touchAsync (line 313) | @Override
method touch (line 352) | @Override
method read (line 384) | @Override
method getAllIdentifiers (line 408) | @Override
method getLastModified (line 440) | @Override
method getLength (line 470) | @Override
method deleteRecord (line 494) | @Override
method deleteAllOlderThan (line 516) | @Override
method close (line 583) | @Override
method getBucket (line 595) | public String getBucket() {
method setBucket (line 599) | public void setBucket(String bucket) {
method setProperties (line 609) | public void setProperties(Properties properties) {
method write (line 613) | private void write(DataIdentifier identifier, File file,
method renameKeys (line 705) | private void renameKeys() throws DataStoreException {
method convertKey (line 783) | private static String convertKey(String oldKey)
method getKeyName (line 795) | private static String getKeyName(DataIdentifier identifier) {
method getIdentifierName (line 803) | private static String getIdentifierName(String key) {
class KeyRenameThread (line 814) | private class KeyRenameThread implements Runnable {
method run (line 818) | public void run() {
method KeyRenameThread (line 842) | public KeyRenameThread(String oldKey) {
class S3UploadProgressListener (line 850) | private class S3UploadProgressListener implements ProgressListener {
method S3UploadProgressListener (line 860) | public S3UploadProgressListener(Upload upload, DataIdentifier identi...
method progressChanged (line 869) | public void progressChanged(ProgressEvent progressEvent) {
class AsyncUploadJob (line 897) | private class AsyncUploadJob implements Runnable {
method AsyncUploadJob (line 905) | public AsyncUploadJob(DataIdentifier identifier, File file,
method run (line 913) | public void run() {
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/S3BackendResourceAbortableInputStream.java
class S3BackendResourceAbortableInputStream (line 28) | public class S3BackendResourceAbortableInputStream extends ProxyInputStr...
method S3BackendResourceAbortableInputStream (line 39) | public S3BackendResourceAbortableInputStream(final S3ObjectInputStream...
method abort (line 44) | @Override
FILE: jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/S3DataStore.java
class S3DataStore (line 27) | public class S3DataStore extends CachingDataStore {
method createBackend (line 30) | @Override
method getMarkerFile (line 39) | @Override
method setProperties (line 47) | public void setProperties(Properties properties) {
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/TestAll.java
class TestAll (line 36) | public class TestAll extends TestCase {
method suite (line 46) | public static Test suite() {
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/S3TestDataStore.java
class S3TestDataStore (line 29) | public class S3TestDataStore extends S3DataStore {
method S3TestDataStore (line 33) | public S3TestDataStore() {
method S3TestDataStore (line 37) | public S3TestDataStore(Properties props) {
method createBackend (line 42) | protected Backend createBackend() {
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DSAsyncTouch.java
class TestS3DSAsyncTouch (line 34) | public class TestS3DSAsyncTouch extends TestS3Ds {
method TestS3DSAsyncTouch (line 38) | public TestS3DSAsyncTouch() throws IOException {
method createDataStore (line 42) | @Override
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DSWithSSES3.java
class TestS3DSWithSSES3 (line 34) | public class TestS3DSWithSSES3 extends TestS3Ds {
method TestS3DSWithSSES3 (line 38) | public TestS3DSWithSSES3() throws IOException {
method createDataStore (line 41) | @Override
method testDataMigration (line 56) | public void testDataMigration() {
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DSWithSmallCache.java
class TestS3DSWithSmallCache (line 34) | public class TestS3DSWithSmallCache extends TestS3Ds {
method TestS3DSWithSmallCache (line 38) | public TestS3DSWithSmallCache() throws IOException {
method createDataStore (line 41) | @Override
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3Ds.java
class TestS3Ds (line 47) | public class TestS3Ds extends TestCaseBase {
method TestS3Ds (line 57) | public TestS3Ds() throws IOException {
method setUp (line 62) | @Override
method tearDown (line 73) | @Override
method createDataStore (line 83) | @Override
method deleteBucket (line 99) | public void deleteBucket() throws Exception {
method deleteBucket (line 105) | public void deleteBucket(String bucket) throws Exception {
FILE: jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DsCacheOff.java
class TestS3DsCacheOff (line 33) | public class TestS3DsCacheOff extends TestS3Ds {
method TestS3DsCacheOff (line 37) | public TestS3DsCacheOff() throws IOException {
method createDataStore (line 40) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AbstractNodeData.java
class AbstractNodeData (line 29) | public abstract class AbstractNodeData extends ItemData {
method AbstractNodeData (line 40) | protected AbstractNodeData(NodeState state, ItemManager itemMgr) {
method AbstractNodeData (line 53) | protected AbstractNodeData(ItemId id) {
method getNodeState (line 62) | public NodeState getNodeState() {
method getNodeDefinition (line 72) | public NodeDefinition getNodeDefinition() throws RepositoryException {
method setNodeDefinition (line 81) | public void setNodeDefinition(NodeDefinition definition) {
method getParentId (line 91) | @Override
method getPrimaryParentId (line 106) | public NodeId getPrimaryParentId() {
method setPrimaryParentId (line 115) | protected void setPrimaryParentId(NodeId primaryParentId) {
method isNode (line 122) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AddMixinOperation.java
class AddMixinOperation (line 50) | class AddMixinOperation implements SessionWriteOperation<Object> {
method AddMixinOperation (line 56) | public AddMixinOperation(NodeImpl node, Name mixinName) {
method perform (line 61) | public Object perform(SessionContext context) throws RepositoryExcepti...
method toString (line 175) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java
class BatchedItemOperations (line 76) | public class BatchedItemOperations extends ItemValidator {
method BatchedItemOperations (line 103) | public BatchedItemOperations(
method edit (line 120) | public void edit() throws IllegalStateException {
method store (line 130) | public void store(ItemState state) throws IllegalStateException {
method destroy (line 140) | public void destroy(ItemState state) throws IllegalStateException {
method update (line 152) | public void update() throws RepositoryException, IllegalStateException {
method cancel (line 168) | public void cancel() throws IllegalStateException {
method clone (line 206) | public NodeId clone(Path srcPath, Path destPath)
method clone (line 260) | public NodeId clone(NodeState srcState, NodeState destParentState, Nam...
method copy (line 328) | public NodeId copy(Path srcPath, Path destPath, int flag)
method copy (line 363) | public NodeId copy(Path srcPath,
method move (line 480) | public NodeId move(Path srcPath, Path destPath)
method removeNode (line 599) | public void removeNode(Path nodePath)
method checkAddNode (line 657) | public void checkAddNode(NodeState parentState, Name nodeName,
method checkRemoveNode (line 792) | public void checkRemoveNode(NodeState targetState, int options)
method checkRemoveNode (line 830) | public void checkRemoveNode(NodeState targetState, NodeId parentId,
method verifyCanWrite (line 965) | public void verifyCanWrite(Path nodePath)
method verifyCanRead (line 1018) | public void verifyCanRead(Path nodePath)
method createNodeState (line 1047) | public NodeState createNodeState(NodeState parent,
method createNodeState (line 1085) | public NodeState createNodeState(NodeState parent,
method createPropertyState (line 1169) | public PropertyState createPropertyState(NodeState parent,
method createPropertyState (line 1220) | public PropertyState createPropertyState(NodeState parent,
method removeNodeState (line 1268) | public void removeNodeState(NodeState target)
method getNodeState (line 1296) | public NodeState getNodeState(Path nodePath)
method getNodeState (line 1311) | public NodeState getNodeState(NodeId id)
method getPropertyState (line 1326) | public PropertyState getPropertyState(PropertyId id)
method getItemState (line 1341) | public ItemState getItemState(ItemId id)
method verifyCheckedOut (line 1361) | protected void verifyCheckedOut(Path nodePath)
method verifyUnlocked (line 1403) | protected void verifyUnlocked(Path nodePath)
method verifyNotProtected (line 1419) | protected void verifyNotProtected(Path nodePath)
method getNodeState (line 1442) | protected NodeState getNodeState(ItemStateManager srcStateMgr,
method getItemState (line 1469) | protected ItemState getItemState(ItemStateManager srcStateMgr, ItemId id)
method recursiveRemoveNodeState (line 1500) | private void recursiveRemoveNodeState(NodeState targetState)
method copyNodeState (line 1585) | private NodeState copyNodeState(NodeState srcState,
method copyPropertyState (line 1830) | private PropertyState copyPropertyState(PropertyState srcState,
method checkInEditMode (line 1869) | private void checkInEditMode() throws IllegalStateException {
method isShareable (line 1884) | private boolean isShareable(NodeState state) throws RepositoryException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
class CachingHierarchyManager (line 52) | public class CachingHierarchyManager extends HierarchyManagerImpl
method CachingHierarchyManager (line 127) | public CachingHierarchyManager(NodeId rootNodeId,
method enableConsistencyChecks (line 145) | public void enableConsistencyChecks(boolean enable) {
method resolvePath (line 154) | protected ItemId resolvePath(Path path, int typesAllowed)
method pathResolved (line 196) | protected void pathResolved(ItemId id, PathBuilder builder)
method buildPath (line 212) | protected void buildPath(
method getPath (line 252) | public Path getPath(ItemId id)
method getName (line 273) | public Name getName(ItemId id)
method getDepth (line 288) | public int getDepth(ItemId id)
method isAncestor (line 303) | public boolean isAncestor(NodeId nodeId, ItemId itemId)
method stateCreated (line 323) | public void stateCreated(ItemState created) {
method stateModified (line 329) | public void stateModified(ItemState modified) {
method nodeModified (line 342) | public void nodeModified(NodeState modified) {
method getCachedPaths (line 366) | private List<PathMap.Element<LRUEntry>> getCachedPaths(NodeId id) {
method stateDestroyed (line 384) | public void stateDestroyed(ItemState destroyed) {
method stateDiscarded (line 391) | public void stateDiscarded(ItemState discarded) {
method nodeAdded (line 406) | public void nodeAdded(NodeState state, Name name, int index, NodeId id) {
method nodesReplaced (line 439) | public void nodesReplaced(NodeState state) {
method nodeRemoved (line 492) | public void nodeRemoved(NodeState state, Name name, int index, NodeId ...
method get (line 527) | private PathMap.Element<LRUEntry> get(ItemId id) {
method map (line 546) | private PathMap.Element<LRUEntry> map(Path path) {
method cache (line 567) | private void cache(NodeId id, Path path) {
method isCached (line 624) | boolean isCached(NodeId id, Path path) {
method isCached (line 650) | boolean isCached(Path path) {
method evictAll (line 667) | private void evictAll(ItemId id, boolean shift) {
method evict (line 687) | private void evict(PathMap.Element<LRUEntry> element, boolean shift) {
method nodeAdded (line 712) | private void nodeAdded(NodeState state, Path path, NodeId id)
method nodeRemoved (line 757) | private void nodeRemoved(NodeState state, Path path, NodeId id)
method toString (line 797) | public String toString() {
method checkConsistency (line 824) | private void checkConsistency() throws IllegalStateException {
method logItemStateException (line 884) | private void logItemStateException(String logMessage, ItemStateExcepti...
class LRUEntry (line 897) | private class LRUEntry {
method LRUEntry (line 925) | @SuppressWarnings("unchecked")
method append (line 936) | public void append() {
method remove (line 950) | public void remove() {
method touch (line 971) | public void touch() {
method getNext (line 981) | public LRUEntry getNext() {
method getId (line 990) | public NodeId getId() {
method getElements (line 1001) | public PathMap.Element<LRUEntry>[] getElements() {
method addElement (line 1008) | @SuppressWarnings("unchecked")
method removeElement (line 1022) | @SuppressWarnings("unchecked")
method toString (line 1044) | public String toString() {
class CacheStatistics (line 1049) | private final class CacheStatistics {
method CacheStatistics (line 1057) | public CacheStatistics() {
method log (line 1062) | public void log() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/DefaultSecurityManager.java
class DefaultSecurityManager (line 83) | public class DefaultSecurityManager implements JackrabbitSecurityManager {
method init (line 155) | public synchronized void init(Repository repository, Session systemSes...
method dispose (line 241) | public void dispose(String workspaceName) {
method close (line 254) | public void close() {
method getAccessManager (line 267) | public AccessManager getAccessManager(Session session, AMContext amCon...
method getPrincipalManager (line 298) | public PrincipalManager getPrincipalManager(Session session) throws Re...
method getUserManager (line 311) | public UserManager getUserManager(Session session) throws RepositoryEx...
method getUserID (line 339) | public String getUserID(Subject subject, String workspaceName) throws ...
method getAuthContext (line 421) | public AuthContext getAuthContext(Credentials creds, Subject subject, ...
method getConfig (line 433) | protected SecurityManagerConfig getConfig() {
method getSystemUserManager (line 444) | protected UserManager getSystemUserManager(String workspaceName) throw...
method getMembershipCache (line 453) | protected MembershipCache getMembershipCache(SessionImpl session) thro...
method createUserManager (line 470) | protected UserManagerImpl createUserManager(SessionImpl session) throw...
method createPrincipalManager (line 497) | protected PrincipalManager createPrincipalManager(SessionImpl session)...
method createDefaultWorkspaceAccessManager (line 505) | protected WorkspaceAccessManager createDefaultWorkspaceAccessManager() {
method createDefaultPrincipalProvider (line 516) | protected PrincipalProvider createDefaultPrincipalProvider(Properties[...
method getPrincipalProviderRegistry (line 536) | protected PrincipalProviderRegistry getPrincipalProviderRegistry() {
method getAuthContextProvider (line 543) | protected AuthContextProvider getAuthContextProvider() {
method checkInitialized (line 551) | protected void checkInitialized() {
method getSystemSession (line 560) | protected Session getSystemSession() {
method getRepository (line 567) | protected Repository getRepository() {
method getAccessControlProvider (line 580) | private AccessControlProvider getAccessControlProvider(String workspac...
method createSystemUsers (line 615) | static void createSystemUsers(UserManager userManager,
class WorkspaceAccessManagerImpl (line 656) | private final class WorkspaceAccessManagerImpl implements SecurityCons...
method init (line 662) | public void init(Session systemSession) throws RepositoryException {
method close (line 669) | public void close() throws RepositoryException {
method grants (line 676) | public boolean grants(Set<Principal> principals, String workspaceNam...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManager.java
type HierarchyManager (line 31) | public interface HierarchyManager {
method resolvePath (line 52) | @Deprecated
method resolveNodePath (line 67) | NodeId resolveNodePath(Path path) throws RepositoryException;
method resolvePropertyPath (line 81) | PropertyId resolvePropertyPath(Path path) throws RepositoryException;
method getPath (line 90) | Path getPath(ItemId id) throws ItemNotFoundException, RepositoryExcept...
method getName (line 99) | Name getName(ItemId id) throws ItemNotFoundException, RepositoryExcept...
method getName (line 111) | Name getName(NodeId id, NodeId parentId)
method getDepth (line 125) | int getDepth(ItemId id) throws ItemNotFoundException, RepositoryExcept...
method getRelativeDepth (line 142) | int getRelativeDepth(NodeId ancestorId, ItemId descendantId)
method isAncestor (line 160) | boolean isAncestor(NodeId nodeId, ItemId itemId)
method isShareAncestor (line 189) | boolean isShareAncestor(NodeId ancestor, NodeId descendant)
method getShareRelativeDepth (line 207) | int getShareRelativeDepth(NodeId ancestorId, ItemId descendantId)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java
class HierarchyManagerImpl (line 50) | public class HierarchyManagerImpl implements HierarchyManager {
method HierarchyManagerImpl (line 70) | public HierarchyManagerImpl(NodeId rootNodeId,
method getRootNodeId (line 76) | public NodeId getRootNodeId() {
method resolvePath (line 94) | protected ItemId resolvePath(Path.Element[] elements, int next,
method getItemState (line 152) | protected ItemState getItemState(ItemId id)
method hasItemState (line 167) | protected boolean hasItemState(ItemId id) {
method getParentId (line 180) | protected NodeId getParentId(ItemState state) {
method getParentIds (line 193) | protected Set<NodeId> getParentIds(ItemState state, boolean useOverlay...
method getChildNodeEntry (line 228) | protected ChildNodeEntry getChildNodeEntry(NodeState parent,
method getChildNodeEntry (line 248) | protected ChildNodeEntry getChildNodeEntry(NodeState parent,
method buildPath (line 264) | protected void buildPath(
method resolvePath (line 327) | protected ItemId resolvePath(Path path, int typesAllowed)
method pathResolved (line 351) | protected void pathResolved(ItemId id, PathBuilder builder)
method resolvePath (line 362) | public final ItemId resolvePath(Path path) throws RepositoryException {
method resolveNodePath (line 378) | public NodeId resolveNodePath(Path path) throws RepositoryException {
method resolvePropertyPath (line 385) | public PropertyId resolvePropertyPath(Path path) throws RepositoryExce...
method getPath (line 392) | public Path getPath(ItemId id)
method getName (line 422) | public Name getName(ItemId itemId)
method getName (line 452) | public Name getName(NodeId id, NodeId parentId)
method getDepth (line 482) | public int getDepth(ItemId id)
method getRelativeDepth (line 512) | public int getRelativeDepth(NodeId ancestorId, ItemId descendantId)
method isAncestor (line 547) | public boolean isAncestor(NodeId nodeId, ItemId itemId)
method isShareAncestor (line 581) | public boolean isShareAncestor(NodeId ancestor, NodeId descendant)
method getShareRelativeDepth (line 618) | public int getShareRelativeDepth(NodeId ancestor, ItemId descendant)
class CycleDetector (line 668) | protected static class CycleDetector {
method checkCycle (line 674) | boolean checkCycle(ItemId id) throws InvalidItemStateException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemData.java
class ItemData (line 32) | public abstract class ItemData {
method ItemData (line 55) | protected ItemData(ItemState state, ItemManager itemMgr) {
method ItemData (line 67) | protected ItemData(ItemId id) {
method getState (line 77) | public ItemState getState() {
method setState (line 86) | protected void setState(ItemState state) {
method getDefinition (line 96) | public ItemDefinition getDefinition() throws RepositoryException {
method setDefinition (line 112) | protected void setDefinition(ItemDefinition definition) {
method getStatus (line 121) | public int getStatus() {
method setStatus (line 130) | protected void setStatus(int status) {
method isNode (line 140) | public boolean isNode() {
method getId (line 149) | public ItemId getId() {
method getParentId (line 158) | public NodeId getParentId() {
method toString (line 165) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java
class ItemImpl (line 44) | public abstract class ItemImpl implements Item {
method ItemImpl (line 80) | ItemImpl(ItemManager itemMgr, SessionContext sessionContext, ItemData ...
method perform (line 88) | protected <T> T perform(final SessionOperation<T> operation)
method sanityCheck (line 99) | protected void sanityCheck() throws RepositoryException {
method itemSanityCheck (line 112) | protected void itemSanityCheck() throws RepositoryException {
method isTransient (line 121) | protected boolean isTransient() {
method getOrCreateTransientItemState (line 125) | protected abstract ItemState getOrCreateTransientItemState() throws Re...
method makePersistent (line 127) | protected abstract void makePersistent() throws RepositoryException;
method setRemoved (line 136) | protected void setRemoved() throws RepositoryException {
method getItemState (line 169) | ItemState getItemState() {
method getId (line 178) | public ItemId getId() {
method getPrimaryPath (line 187) | public Path getPrimaryPath() throws RepositoryException {
method safeGetJCRPath (line 197) | public String safeGetJCRPath() {
method getQName (line 209) | public abstract Name getQName() throws RepositoryException;
method getQName (line 218) | protected Name getQName(String name) throws RepositoryException {
method getValueFactory (line 228) | protected ValueFactory getValueFactory() throws RepositoryException {
method getValues (line 241) | protected Value[] getValues(String[] values, int type)
method getType (line 257) | protected int getType(Value[] values) {
method accept (line 273) | public abstract void accept(ItemVisitor visitor)
method isNode (line 279) | public abstract boolean isNode();
method getName (line 284) | public abstract String getName() throws RepositoryException;
method getParent (line 289) | public abstract Node getParent()
method isNew (line 295) | public boolean isNew() {
method isTransactionalNew (line 305) | protected boolean isTransactionalNew() {
method isModified (line 313) | public boolean isModified() {
method remove (line 321) | public void remove() throws RepositoryException {
method save (line 328) | public void save() throws RepositoryException {
method refresh (line 335) | public void refresh(boolean keepChanges) throws RepositoryException {
method getAncestor (line 342) | public Item getAncestor(final int degree) throws RepositoryException {
method getPath (line 375) | public String getPath() throws RepositoryException {
method getDepth (line 390) | public int getDepth() throws RepositoryException {
method getSession (line 416) | public Session getSession() {
method isSame (line 423) | public boolean isSame(Item otherItem) throws RepositoryException {
method toString (line 447) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemLifeCycleListener.java
type ItemLifeCycleListener (line 25) | public interface ItemLifeCycleListener {
method itemCreated (line 32) | void itemCreated(ItemImpl item);
method itemInvalidated (line 46) | void itemInvalidated(ItemId id, ItemImpl item);
method itemDestroyed (line 60) | void itemDestroyed(ItemId id, ItemImpl item);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
class ItemManager (line 87) | public class ItemManager implements ItemStateListener {
method ItemManager (line 118) | protected ItemManager(SessionContext sessionContext) {
method sanityCheck (line 137) | private void sanityCheck() throws RepositoryException {
method dispose (line 144) | void dispose() {
method getDefinition (line 151) | NodeDefinitionImpl getDefinition(NodeState state)
method getDefinition (line 234) | PropertyDefinitionImpl getDefinition(PropertyState state)
method itemExists (line 296) | private boolean itemExists(ItemId itemId, Path path) {
method getItem (line 325) | private ItemImpl getItem(ItemId itemId, Path path, boolean permissionC...
method getItemData (line 346) | private ItemData getItemData(ItemId itemId)
method getItemData (line 371) | ItemData getItemData(ItemId itemId, Path path, boolean permissionCheck)
method canRead (line 413) | private boolean canRead(ItemData data, Path path) throws RepositoryExc...
method canRead (line 448) | private boolean canRead(ItemData parent, ItemId childId) throws Reposi...
method itemExists (line 470) | @Deprecated
method nodeExists (line 488) | public boolean nodeExists(Path path) {
method propertyExists (line 505) | public boolean propertyExists(Path path) {
method itemExists (line 522) | public boolean itemExists(ItemId id) {
method getRootNode (line 530) | NodeImpl getRootNode() throws RepositoryException {
method getItem (line 548) | @Deprecated
method getNode (line 574) | public NodeImpl getNode(Path path) throws PathNotFoundException,
method getProperty (line 603) | public PropertyImpl getProperty(Path path)
method getItem (line 621) | public synchronized ItemImpl getItem(ItemId id)
method getItem (line 631) | synchronized ItemImpl getItem(ItemId id, boolean permissionCheck)
method getNode (line 646) | public synchronized NodeImpl getNode(NodeId id, NodeId parentId)
method getNode (line 663) | synchronized NodeImpl getNode(NodeId id, NodeId parentId, boolean perm...
method createItemInstance (line 700) | synchronized ItemImpl createItemInstance(ItemState state)
method hasChildNodes (line 713) | synchronized boolean hasChildNodes(NodeId parentId)
method getChildNodes (line 741) | synchronized NodeIterator getChildNodes(NodeId parentId)
method hasChildProperties (line 771) | synchronized boolean hasChildProperties(NodeId parentId)
method getChildProperties (line 801) | synchronized PropertyIterator getChildProperties(NodeId parentId)
method createItemData (line 839) | private ItemData createItemData(ItemState state, Path path, boolean pe...
method createItemInstance (line 857) | private ItemImpl createItemInstance(ItemData data) {
method createNodeInstance (line 865) | private NodeImpl createNodeInstance(AbstractNodeData data) {
method createPropertyInstance (line 878) | private PropertyImpl createPropertyInstance(PropertyData data) {
method retrieveItem (line 892) | private ItemData retrieveItem(ItemId id) {
method retrieveItem (line 910) | private AbstractNodeData retrieveItem(NodeId id, NodeId parentId) {
method cacheItem (line 926) | private void cacheItem(ItemData data) {
method evictItems (line 952) | private void evictItems(ItemId id) {
method evictItem (line 969) | private void evictItem(ItemData data) {
method safeGetJCRPath (line 993) | String safeGetJCRPath(Path path) {
method safeGetJCRPath (line 1010) | String safeGetJCRPath(ItemId id) {
method itemInvalidated (line 1025) | public void itemInvalidated(ItemId id, ItemData data) {
method itemDestroyed (line 1035) | public void itemDestroyed(ItemId id, ItemData data) {
method toString (line 1049) | public synchronized String toString() {
method stateCreated (line 1077) | public void stateCreated(ItemState created) {
method stateModified (line 1087) | public void stateModified(ItemState modified) {
method stateDestroyed (line 1108) | public void stateDestroyed(ItemState destroyed) {
method stateDiscarded (line 1120) | public void stateDiscarded(ItemState discarded) {
class ShareableNodesCache (line 1188) | static class ShareableNodesCache {
method ShareableNodesCache (line 1199) | public ShareableNodesCache() {
method clear (line 1208) | public void clear() {
method retrieveFirst (line 1218) | public AbstractNodeData retrieveFirst(NodeId id) {
method retrieve (line 1243) | public AbstractNodeData retrieve(NodeId id, NodeId parentId) {
method cache (line 1256) | public void cache(AbstractNodeData data) {
method evict (line 1274) | public void evict(AbstractNodeData data) {
method evictAll (line 1286) | public synchronized void evictAll(NodeId id) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemRefreshOperation.java
class ItemRefreshOperation (line 31) | public class ItemRefreshOperation implements SessionOperation<Object> {
method ItemRefreshOperation (line 43) | public ItemRefreshOperation(ItemState state, boolean keepChanges) {
method perform (line 48) | public Object perform(SessionContext context) throws RepositoryExcepti...
method toString (line 143) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemRemoveOperation.java
class ItemRemoveOperation (line 36) | class ItemRemoveOperation implements SessionWriteOperation<Object> {
method ItemRemoveOperation (line 48) | public ItemRemoveOperation(ItemImpl item, boolean checks) {
method perform (line 53) | public Object perform(SessionContext context)
method toString (line 92) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java
class ItemSaveOperation (line 75) | class ItemSaveOperation implements SessionWriteOperation<Object> {
method ItemSaveOperation (line 85) | public ItemSaveOperation(ItemState state) {
method perform (line 89) | public Object perform(SessionContext context) throws RepositoryExcepti...
method getTransientStates (line 304) | private Collection<ItemState> getTransientStates(
method getRemovedStates (line 382) | private Collection<ItemState> getRemovedStates(
method validateTransientItems (line 425) | private void validateTransientItems(
method removeTransientItems (line 714) | private void removeTransientItems(
method processShareableNodes (line 739) | private void processShareableNodes(
method initVersionHistories (line 776) | private boolean initVersionHistories(
method persistTransientItems (line 844) | private void persistTransientItems(
method restoreTransientItems (line 856) | private void restoreTransientItems(
method getEffectiveNodeType (line 916) | private EffectiveNodeType getEffectiveNodeType(
method toString (line 935) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemValidator.java
class ItemValidator (line 53) | public class ItemValidator {
method ItemValidator (line 123) | public ItemValidator(SessionContext context) {
method performRelaxed (line 135) | public synchronized <T> T performRelaxed(
method validate (line 165) | public void validate(NodeState nodeState)
method validate (line 223) | public void validate(PropertyState propState)
method checkModify (line 245) | public synchronized void checkModify(
method checkRemove (line 251) | public synchronized void checkRemove(
method checkCondition (line 257) | private void checkCondition(ItemImpl item, int options, int permission...
method canModify (line 307) | public synchronized boolean canModify(
method hasCondition (line 313) | private boolean hasCondition(ItemImpl item, int options, int permissio...
method checkLock (line 361) | private void checkLock(ItemImpl item) throws LockException, Repository...
method isProtected (line 370) | private boolean isProtected(ItemImpl item) throws RepositoryException {
method hasHold (line 380) | private boolean hasHold(ItemImpl item, boolean isRemoval) throws Repos...
method hasRetention (line 392) | private boolean hasRetention(ItemImpl item, boolean isRemoval) throws ...
method getEffectiveNodeType (line 416) | public EffectiveNodeType getEffectiveNodeType(NodeState state)
method findApplicableNodeDefinition (line 442) | public QNodeDefinition findApplicableNodeDefinition(Name name,
method findApplicablePropertyDefinition (line 471) | public QPropertyDefinition findApplicablePropertyDefinition(Name name,
method findApplicablePropertyDefinition (line 502) | public QPropertyDefinition findApplicablePropertyDefinition(Name name,
method safeGetJCRPath (line 517) | public String safeGetJCRPath(Path path) {
method safeGetJCRPath (line 534) | public String safeGetJCRPath(ItemId id) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/JackrabbitRepositoryStub.java
class JackrabbitRepositoryStub (line 45) | public class JackrabbitRepositoryStub extends RepositoryStub {
method run (line 74) | public void run() {
method getRepositoryContext (line 86) | public static RepositoryContext getRepositoryContext(
method getStaticProperties (line 98) | private static Properties getStaticProperties() {
method getResource (line 114) | private static InputStream getResource(String name) {
method JackrabbitRepositoryStub (line 123) | public JackrabbitRepositoryStub(Properties settings) {
method getRepository (line 141) | public synchronized Repository getRepository()
method createRepository (line 162) | protected Repository createRepository(String dir, String xml)
method getOrCreateRepository (line 184) | protected Repository getOrCreateRepository(String dir, String xml)
method getKnownPrincipal (line 204) | @Override
method getName (line 226) | public String getName() {
method getUnknownPrincipal (line 231) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/JackrabbitThreadPool.java
class JackrabbitThreadPool (line 34) | class JackrabbitThreadPool extends ScheduledThreadPoolExecutor {
method newThread (line 63) | public Thread newThread(Runnable runnable) {
method getMaxLoadForLowPriorityTasks (line 97) | private static int getMaxLoadForLowPriorityTasks() {
method JackrabbitThreadPool (line 121) | public JackrabbitThreadPool() {
method execute (line 126) | @Override
method scheduleLowPriority (line 135) | private void scheduleLowPriority(Runnable command) {
method isOverDefinedMaxLoad (line 154) | private boolean isOverDefinedMaxLoad() {
method getPendingLowPriorityTaskCount (line 167) | int getPendingLowPriorityTaskCount() {
class RetryLowPriorityTask (line 171) | private static final class RetryLowPriorityTask implements Runnable {
method RetryLowPriorityTask (line 187) | public RetryLowPriorityTask(JackrabbitThreadPool executor,
method retryLater (line 194) | public void retryLater() {
method run (line 200) | public void run() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/LazyItemIterator.java
class LazyItemIterator (line 53) | public class LazyItemIterator implements NodeIterator, PropertyIterator {
method LazyItemIterator (line 84) | public LazyItemIterator(SessionContext sessionContext, List< ? extends...
method LazyItemIterator (line 97) | public LazyItemIterator(SessionContext sessionContext, List< ? extends...
method prefetchNext (line 113) | private void prefetchNext() {
method nextNode (line 165) | public Node nextNode() {
method nextProperty (line 173) | public Property nextProperty() {
method getPosition (line 181) | public long getPosition() {
method getSize (line 195) | public long getSize() {
method skip (line 202) | public void skip(long skipNum) {
method hasNext (line 244) | public boolean hasNext() {
method next (line 251) | public Object next() {
method remove (line 266) | public void remove() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/LowPriorityTask.java
type LowPriorityTask (line 25) | public interface LowPriorityTask extends Runnable {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java
class NamespaceRegistryImpl (line 45) | public class NamespaceRegistryImpl implements
method NamespaceRegistryImpl (line 107) | public NamespaceRegistryImpl(FileSystem fs) throws RepositoryException {
method clear (line 115) | private void clear() {
method map (line 128) | private void map(String prefix, String uri) {
method map (line 139) | private void map(String prefix, String uri, Integer idx) {
method load (line 156) | private void load() throws RepositoryException {
method store (line 235) | private void store() throws RepositoryException {
method escapePropertyKey (line 294) | private String escapePropertyKey(String key) {
method unescapePropertyKey (line 309) | private String unescapePropertyKey(String key) {
method setEventChannel (line 322) | public void setEventChannel(NamespaceEventChannel eventChannel) {
method isReservedURI (line 335) | public boolean isReservedURI(String uri) {
method stringToIndex (line 348) | public int stringToIndex(String uri) {
method indexToString (line 363) | public String indexToString(int idx) {
method registerNamespace (line 375) | public synchronized void registerNamespace(String prefix, String uri)
method unregisterNamespace (line 441) | public void unregisterNamespace(String prefix)
method getPrefixes (line 461) | public String[] getPrefixes() throws RepositoryException {
method getURIs (line 468) | public String[] getURIs() throws RepositoryException {
method getURI (line 475) | public String getURI(String prefix) throws NamespaceException {
method getPrefix (line 487) | public String getPrefix(String uri) throws NamespaceException {
method externalRemap (line 501) | public void externalRemap(String oldPrefix, String newPrefix, String uri)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeData.java
class NodeData (line 26) | class NodeData extends AbstractNodeData {
method NodeData (line 34) | NodeData(NodeState state, ItemManager itemMgr) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeDataRef.java
class NodeDataRef (line 29) | class NodeDataRef extends AbstractNodeData {
method NodeDataRef (line 40) | protected NodeDataRef(AbstractNodeData data, NodeId primaryParentId) {
method getState (line 53) | public ItemState getState() {
method setState (line 62) | protected void setState(ItemState state) {
method getDefinition (line 72) | public ItemDefinition getDefinition() throws RepositoryException {
method setDefinition (line 81) | protected void setDefinition(ItemDefinition definition) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
class NodeImpl (line 128) | public class NodeImpl extends ItemImpl implements Node, JackrabbitNode {
method NodeImpl (line 145) | protected NodeImpl(
method getNodeState (line 186) | NodeState getNodeState() {
method resolveRelativePropertyPath (line 202) | protected PropertyId resolveRelativePropertyPath(String relPath)
method resolveRelativeNodePath (line 220) | protected NodeId resolveRelativeNodePath(String relPath)
method resolveRelativePath (line 236) | private Path resolveRelativePath(String relPath) throws RepositoryExce...
method getNodeId (line 258) | private NodeId getNodeId(Path p) throws RepositoryException {
method getPropertyId (line 293) | private PropertyId getPropertyId(Path p) throws RepositoryException {
method hasPendingChanges (line 324) | protected boolean hasPendingChanges() throws RepositoryException {
method getOrCreateTransientItemState (line 331) | @Override
method getOrCreateProperty (line 365) | protected PropertyImpl getOrCreateProperty(String name, int type,
method getOrCreateProperty (line 390) | protected synchronized PropertyImpl getOrCreateProperty(Name name, int...
method createChildProperty (line 473) | protected synchronized PropertyImpl createChildProperty(Name name, int...
method createChildNode (line 515) | protected synchronized NodeImpl createChildNode(Name name,
method renameChildNode (line 568) | @Deprecated
method renameChildNode (line 582) | protected void renameChildNode(NodeId id, Name newName, boolean replace)
method removeChildProperty (line 597) | protected void removeChildProperty(Name propName) throws RepositoryExc...
method removeChildNode (line 613) | protected void removeChildNode(NodeId childId) throws RepositoryExcept...
method onRedefine (line 651) | protected void onRedefine(QNodeDefinition def) throws RepositoryExcept...
method onRemove (line 660) | protected void onRemove(NodeId parentId) throws RepositoryException {
method setMixinTypesProperty (line 746) | void setMixinTypesProperty(Set<Name> mixinNames) throws RepositoryExce...
method getMixinTypeNames (line 781) | public Set<Name> getMixinTypeNames() {
method getEffectiveNodeType (line 792) | public EffectiveNodeType getEffectiveNodeType() throws RepositoryExcep...
method getApplicableChildNodeDefinition (line 815) | protected NodeDefinitionImpl getApplicableChildNodeDefinition(Name nod...
method getApplicablePropertyDefinition (line 837) | protected PropertyDefinitionImpl getApplicablePropertyDefinition(Name ...
method makePersistent (line 860) | @Override
method restoreTransient (line 880) | protected void restoreTransient(NodeState transientState)
method addMixin (line 920) | public void addMixin(Name mixinName) throws RepositoryException {
method removeMixin (line 930) | public void removeMixin(Name mixinName) throws RepositoryException {
method isNodeType (line 942) | public boolean isNodeType(Name ntName) throws RepositoryException {
method checkSetProperty (line 981) | protected void checkSetProperty()
method internalSetProperty (line 1000) | protected Property internalSetProperty(Name name, InternalValue value)
method internalSetProperty (line 1041) | protected Property internalSetProperty(Name name, InternalValue[] values)
method internalSetProperty (line 1067) | protected Property internalSetProperty(Name name, InternalValue[] values,
method getNode (line 1095) | public NodeImpl getNode(Name name) throws ItemNotFoundException, Repos...
method getNode (line 1110) | public NodeImpl getNode(final Name name, final int index)
method hasNode (line 1143) | public boolean hasNode(Name name) throws RepositoryException {
method hasNode (line 1157) | public boolean hasNode(final Name name, final int index)
method getProperty (line 1183) | public PropertyImpl getProperty(final Name name)
method hasProperty (line 1212) | public boolean hasProperty(final Name name) throws RepositoryException {
method addNode (line 1244) | public synchronized NodeImpl addNode(
method setProperty (line 1337) | public PropertyImpl setProperty(Name name, Value[] values, int type)
method setProperty (line 1348) | public PropertyImpl setProperty(Name name, Value value)
method getQName (line 1357) | @Override
method getNodeId (line 1375) | public NodeId getNodeId() {
method getPrimaryNodeTypeName (line 1385) | public Name getPrimaryNodeTypeName() {
method isAccessControllable (line 1400) | public boolean isAccessControllable() throws RepositoryException {
method orderBefore (line 1419) | public synchronized void orderBefore(Path.Element srcName,
method replaceChildNode (line 1565) | public synchronized NodeImpl replaceChildNode(NodeId id, Name nodeName,
method clone (line 1637) | public synchronized NodeImpl clone(NodeImpl src, Name name)
method isNode (line 1699) | @Override
method getName (line 1707) | @Override
method accept (line 1735) | @Override
method getParent (line 1746) | @Override
method addNode (line 1770) | public Node addNode(String relPath) throws RepositoryException {
method addNode (line 1777) | public Node addNode(String relPath, String nodeTypeName)
method addNodeWithUuid (line 1795) | public Node addNodeWithUuid(String relPath, String uuid)
method addNodeWithUuid (line 1816) | public Node addNodeWithUuid(
method orderBefore (line 1825) | public void orderBefore(String srcName, String destName)
method setProperty (line 1866) | public Property setProperty(String name, Value[] values)
method setProperty (line 1872) | public Property setProperty(String name, Value[] values, int type)
method setProperty (line 1878) | public Property setProperty(String name, String[] strings)
method setProperty (line 1885) | public Property setProperty(String name, String[] values, int type)
method setProperty (line 1892) | public Property setProperty(String name, String value)
method setProperty (line 1902) | public Property setProperty(String name, String value, int type)
method setProperty (line 1913) | public Property setProperty(String name, Value value, int type)
method setProperty (line 1923) | public Property setProperty(String name, Value value)
method setProperty (line 1930) | public Property setProperty(String name, InputStream value)
method setProperty (line 1945) | public Property setProperty(String name, boolean value)
method setProperty (line 1951) | public Property setProperty(String name, double value)
method setProperty (line 1957) | public Property setProperty(String name, long value)
method setProperty (line 1963) | public Property setProperty(String name, Calendar value)
method setProperty (line 1978) | public Property setProperty(String name, Node value)
class SetPropertyOperation (line 2003) | private class SetPropertyOperation implements SessionWriteOperation<Pr...
method SetPropertyOperation (line 2017) | public SetPropertyOperation(
method perform (line 2044) | public PropertyImpl perform(SessionContext context)
method toString (line 2087) | public String toString() {
method setProperty (line 2128) | protected PropertyImpl setProperty(
method getNode (line 2161) | public Node getNode(final String relPath) throws RepositoryException {
method getNodes (line 2199) | public NodeIterator getNodes() throws RepositoryException {
method getProperties (line 2225) | public PropertyIterator getProperties() throws RepositoryException {
method getProperty (line 2251) | public Property getProperty(final String relPath)
method hasNode (line 2278) | public boolean hasNode(String relPath) throws RepositoryException {
method hasNodes (line 2293) | public boolean hasNodes() throws RepositoryException {
method hasProperties (line 2309) | public boolean hasProperties() throws RepositoryException {
method isNodeType (line 2325) | public boolean isNodeType(String nodeTypeName) throws RepositoryExcept...
method getPrimaryNodeType (line 2340) | public NodeType getPrimaryNodeType() throws RepositoryException {
method getMixinNodeTypes (line 2351) | public NodeType[] getMixinNodeTypes() throws RepositoryException {
method addMixin (line 2369) | public void addMixin(String mixinName) throws RepositoryException {
method removeMixin (line 2379) | public void removeMixin(String mixinName) throws RepositoryException {
method canAddMixin (line 2391) | public boolean canAddMixin(String mixinName)
method hasProperty (line 2455) | public boolean hasProperty(String relPath) throws RepositoryException {
method getReferences (line 2470) | public PropertyIterator getReferences() throws RepositoryException {
method getDefinition (line 2477) | public NodeDefinition getDefinition() throws RepositoryException {
method getNodes (line 2487) | public NodeIterator getNodes(String namePattern) throws RepositoryExce...
method getProperties (line 2497) | public PropertyIterator getProperties(String namePattern)
method getPrimaryItem (line 2508) | public Item getPrimaryItem()
method getUUID (line 2529) | public String getUUID()
method getCorrespondingNodePath (line 2544) | public String getCorrespondingNodePath(String workspaceName)
method getIndex (line 2610) | public int getIndex() throws RepositoryException {
method getSharedSet (line 2645) | public NodeIterator getSharedSet() throws RepositoryException {
method removeSharedSet (line 2680) | public void removeSharedSet() throws VersionException, LockException,
method removeShare (line 2711) | public void removeShare() throws VersionException, LockException,
method isShareable (line 2729) | boolean isShareable() {
method getParentId (line 2741) | public NodeId getParentId() {
method hasShareParent (line 2753) | boolean hasShareParent(NodeId parentId) {
method addShareParent (line 2767) | void addShareParent(NodeId parentId) throws RepositoryException {
method getPrimaryPath (line 2808) | @Override
method isCheckedOut (line 2842) | public boolean isCheckedOut() throws RepositoryException {
method getVersionManagerImpl (line 2886) | private VersionManagerImpl getVersionManagerImpl() {
method update (line 2893) | public void update(String srcWorkspaceName) throws RepositoryException {
method checkin (line 2900) | @Deprecated
method checkin (line 2911) | @Deprecated
method checkout (line 2919) | @Deprecated
method merge (line 2927) | @Deprecated
method cancelMerge (line 2937) | @Deprecated
method doneMerge (line 2945) | @Deprecated
method restore (line 2953) | @Deprecated
method restore (line 2962) | @Deprecated
method restore (line 2971) | @Deprecated
method restoreByLabel (line 2986) | @Deprecated
method getVersionHistory (line 2996) | @Deprecated
method getBaseVersion (line 3004) | @Deprecated
method lock (line 3013) | public Lock lock(boolean isDeep, boolean isSessionScoped)
method getLock (line 3027) | public Lock getLock()
method unlock (line 3039) | public void unlock()
method holdsLock (line 3052) | public boolean holdsLock() throws RepositoryException {
method isLocked (line 3062) | public boolean isLocked() throws RepositoryException {
method checkLock (line 3076) | @Deprecated
method getIdentifier (line 3089) | public String getIdentifier() throws RepositoryException {
method getReferences (line 3096) | public PropertyIterator getReferences(String name)
method getWeakReferences (line 3136) | public PropertyIterator getWeakReferences() throws RepositoryException {
method getWeakReferences (line 3170) | public PropertyIterator getWeakReferences(String name) throws Reposito...
method getNodes (line 3210) | public NodeIterator getNodes(String[] nameGlobs)
method getProperties (line 3221) | public PropertyIterator getProperties(String[] nameGlobs)
method setPrimaryType (line 3232) | public void setPrimaryType(String nodeTypeName)
method setProperty (line 3451) | public Property setProperty(String name, BigDecimal value)
method setProperty (line 3464) | public Property setProperty(String name, Binary value)
method getAllowedLifecycleTransistions (line 3493) | public String[] getAllowedLifecycleTransistions()
method followLifecycleTransition (line 3532) | public void followLifecycleTransition(String transition)
method assignLifecyclePolicy (line 3568) | public void assignLifecyclePolicy(Node policy, String state)
method rename (line 3591) | public void rename(String newName) throws RepositoryException {
method setMixins (line 3677) | public void setMixins(String[] mixinNames)
method toString (line 3915) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeTypeInstanceHandler.java
class NodeTypeInstanceHandler (line 36) | public class NodeTypeInstanceHandler {
method NodeTypeInstanceHandler (line 52) | public NodeTypeInstanceHandler(String userId) {
method setDefaultValues (line 68) | public void setDefaultValues(
method computeSystemGeneratedPropertyValues (line 88) | public InternalValue[] computeSystemGeneratedPropertyValues(NodeState ...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyData.java
class PropertyData (line 27) | public class PropertyData extends ItemData {
method PropertyData (line 35) | PropertyData(PropertyState state, ItemManager itemMgr) {
method getPropertyState (line 44) | public PropertyState getPropertyState() {
method getPropertyDefinition (line 54) | public PropertyDefinition getPropertyDefinition() throws RepositoryExc...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java
class PropertyImpl (line 76) | public class PropertyImpl extends ItemImpl implements Property {
method PropertyImpl (line 90) | PropertyImpl(
method getPropertyState (line 105) | private PropertyState getPropertyState() throws RepositoryException {
method getOrCreateTransientItemState (line 113) | @Override
method makePersistent (line 136) | @Override
method restoreTransient (line 179) | protected void restoreTransient(PropertyState transientState)
method onRedefine (line 213) | protected void onRedefine(QPropertyDefinition def) throws RepositoryEx...
method getLength (line 228) | protected long getLength(InternalValue value) throws RepositoryExcepti...
method checkSetValue (line 264) | protected void checkSetValue(boolean multipleValues)
method internalSetValue (line 294) | protected void internalSetValue(InternalValue[] values, int type)
method getParent (line 336) | protected Node getParent(boolean checkPermission) throws RepositoryExc...
method setValue (line 352) | public void setValue(Name name)
method setValue (line 402) | public void setValue(Name[] names)
method getQName (line 450) | @Override
method internalGetValues (line 462) | public InternalValue[] internalGetValues() throws RepositoryException {
method internalGetValue (line 481) | public InternalValue internalGetValue() throws RepositoryException {
method getValues (line 499) | public Value[] getValues() throws RepositoryException {
method getValue (line 508) | public Value getValue() throws RepositoryException {
method getString (line 519) | public String getString() throws RepositoryException {
method getStream (line 524) | public InputStream getStream() throws RepositoryException {
method getLong (line 537) | public long getLong() throws RepositoryException {
method getDouble (line 542) | public double getDouble() throws RepositoryException {
method getDate (line 547) | public Calendar getDate() throws RepositoryException {
method getBoolean (line 552) | public boolean getBoolean() throws RepositoryException {
method getNode (line 556) | public Node getNode() throws ValueFormatException, RepositoryException {
method getProperty (line 597) | public Property getProperty() throws RepositoryException {
method getDecimal (line 616) | public BigDecimal getDecimal() throws RepositoryException {
method setValue (line 621) | public void setValue(BigDecimal value) throws RepositoryException {
method getBinary (line 630) | public Binary getBinary() throws RepositoryException {
method setValue (line 635) | public void setValue(Binary value) throws RepositoryException {
method setValue (line 644) | public void setValue(Calendar value) throws RepositoryException {
method setValue (line 658) | public void setValue(double value) throws RepositoryException {
method setValue (line 663) | public void setValue(InputStream value) throws RepositoryException {
method setValue (line 677) | public void setValue(String value) throws RepositoryException {
method setValue (line 686) | public void setValue(String[] strings) throws RepositoryException {
method setValue (line 695) | public void setValue(boolean value) throws RepositoryException {
method setValue (line 700) | public void setValue(Node value) throws RepositoryException {
method setValue (line 714) | public void setValue(long value) throws RepositoryException {
method setValue (line 718) | public synchronized void setValue(Value value)
method setValue (line 762) | public void setValue(Value[] values) throws RepositoryException {
method setValue (line 774) | public void setValue(Value[] values, int valueType)
method getLength (line 834) | public long getLength() throws RepositoryException {
method getLengths (line 841) | public long[] getLengths() throws RepositoryException {
method getDefinition (line 853) | public PropertyDefinition getDefinition() throws RepositoryException {
method getType (line 863) | public int getType() throws RepositoryException {
method isMultiple (line 870) | public boolean isMultiple() throws RepositoryException {
method isNode (line 881) | @Override
method getName (line 889) | @Override
method accept (line 899) | @Override
method getParent (line 910) | @Override
method toString (line 922) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ProtectedItemModifier.java
class ProtectedItemModifier (line 48) | public abstract class ProtectedItemModifier {
method ProtectedItemModifier (line 53) | protected ProtectedItemModifier() {
method ProtectedItemModifier (line 57) | protected ProtectedItemModifier(int permission) {
method addNode (line 69) | protected NodeImpl addNode(NodeImpl parentImpl, Name name, Name ntName...
method addNode (line 73) | protected NodeImpl addNode(NodeImpl parentImpl, Name name, Name ntName...
method setProperty (line 102) | protected Property setProperty(NodeImpl parentImpl, Name name, Value v...
method setProperty (line 106) | protected Property setProperty(NodeImpl parentImpl, Name name, Value v...
method setProperty (line 116) | protected Property setProperty(NodeImpl parentImpl, Name name, Value[]...
method setProperty (line 127) | protected Property setProperty(NodeImpl parentImpl, Name name, Value[]...
method removeItem (line 138) | protected void removeItem(ItemImpl itemImpl) throws RepositoryException {
method markModified (line 151) | protected void markModified(NodeImpl parentImpl) throws RepositoryExce...
method performProtected (line 155) | protected <T> T performProtected(SessionImpl session, SessionOperation...
method checkPermission (line 160) | private void checkPermission(ItemImpl item, int perm) throws Repositor...
method checkPermission (line 170) | private void checkPermission(NodeImpl node, Name childName, int perm) ...
method getPermission (line 182) | private int getPermission(boolean isNode, boolean isRemove) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RemoveMixinOperation.java
class RemoveMixinOperation (line 63) | class RemoveMixinOperation implements SessionWriteOperation<Object> {
method RemoveMixinOperation (line 69) | public RemoveMixinOperation(NodeImpl node, Name mixinName) {
method perform (line 74) | public Object perform(SessionContext context) throws RepositoryExcepti...
method isReferenceable (line 291) | private boolean isReferenceable(NodeTypeImpl mixin) {
method toString (line 301) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryChecker.java
class RepositoryChecker (line 60) | class RepositoryChecker {
method RepositoryChecker (line 89) | public RepositoryChecker(PersistenceManager workspace,
method check (line 97) | public void check(NodeId id, boolean recurse, boolean fixImmediately)
method internalCheck (line 115) | private void internalCheck(NodeId id, boolean recurse,
method fix (line 140) | private void fix(PersistenceManager pm, ChangeLog changes, String store,
method fix (line 163) | public void fix() throws RepositoryException {
method internalFix (line 167) | private void internalFix(boolean verbose) throws RepositoryException {
method checkVersionHistory (line 174) | private void checkVersionHistory(NodeState node) {
method removeVersionHistoryReferences (line 263) | private void removeVersionHistoryReferences(NodeState node, NodeId vh...
method removeProperty (line 325) | private void removeProperty(NodeState node, Name name) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryContext.java
class RepositoryContext (line 48) | public class RepositoryContext {
method RepositoryContext (line 138) | RepositoryContext(RepositoryImpl repository) {
method create (line 154) | public static RepositoryContext create(RepositoryConfig config)
method install (line 173) | public static RepositoryContext install(File dir)
method getRepositoryConfig (line 178) | public RepositoryConfig getRepositoryConfig() {
method getRepository (line 187) | public RepositoryImpl getRepository() {
method getExecutor (line 196) | public ScheduledExecutorService getExecutor() {
method getNamespaceRegistry (line 205) | public NamespaceRegistryImpl getNamespaceRegistry() {
method setNamespaceRegistry (line 215) | void setNamespaceRegistry(NamespaceRegistryImpl namespaceRegistry) {
method getNodeTypeRegistry (line 225) | public NodeTypeRegistry getNodeTypeRegistry() {
method setNodeTypeRegistry (line 235) | void setNodeTypeRegistry(NodeTypeRegistry nodeTypeRegistry) {
method getPrivilegeRegistry (line 245) | public PrivilegeRegistry getPrivilegeRegistry() {
method setPrivilegeRegistry (line 254) | void setPrivilegeRegistry(PrivilegeRegistry privilegeRegistry) {
method getInternalVersionManager (line 264) | public InternalVersionManagerImpl getInternalVersionManager() {
method setInternalVersionManager (line 273) | void setInternalVersionManager(
method getRootNodeId (line 284) | public NodeId getRootNodeId() {
method setRootNodeId (line 294) | void setRootNodeId(NodeId rootNodeId) {
method getFileSystem (line 304) | public FileSystem getFileSystem() {
method setFileSystem (line 314) | void setFileSystem(FileSystem fileSystem) {
method getDataStore (line 325) | public DataStore getDataStore() {
method setDataStore (line 334) | void setDataStore(DataStore dataStore) {
method getClusterNode (line 345) | public ClusterNode getClusterNode() {
method setClusterNode (line 354) | void setClusterNode(ClusterNode clusterNode) {
method getWorkspaceManager (line 364) | public WorkspaceManager getWorkspaceManager() {
method setWorkspaceManager (line 374) | void setWorkspaceManager(WorkspaceManager workspaceManager) {
method getWorkspaceInfo (line 389) | public WorkspaceInfo getWorkspaceInfo(String workspaceName)
method getSecurityManager (line 399) | public JackrabbitSecurityManager getSecurityManager() {
method setSecurityManager (line 409) | void setSecurityManager(JackrabbitSecurityManager securityManager) {
method getItemStateCacheFactory (line 419) | public ItemStateCacheFactory getItemStateCacheFactory() {
method setItemStateCacheFactory (line 429) | void setItemStateCacheFactory(ItemStateCacheFactory itemStateCacheFact...
method setNodeIdFactory (line 434) | public void setNodeIdFactory(NodeIdFactory nodeIdFactory) {
method getNodeIdFactory (line 438) | public NodeIdFactory getNodeIdFactory() {
method getRepositoryStatistics (line 447) | public RepositoryStatisticsImpl getRepositoryStatistics() {
method getStatManager (line 454) | public StatManager getStatManager() {
method isGcRunning (line 462) | public synchronized boolean isGcRunning() {
method setGcRunning (line 470) | public synchronized void setGcRunning(boolean gcRunning) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryCopier.java
class RepositoryCopier (line 54) | public class RepositoryCopier {
method copy (line 81) | public static void copy(File source, File target)
method copy (line 95) | public static void copy(RepositoryConfig source, File target)
method copy (line 108) | public static void copy(RepositoryConfig source, RepositoryConfig target)
method copy (line 130) | public static void copy(RepositoryImpl source, File target)
method copy (line 146) | public static void copy(RepositoryImpl source, RepositoryConfig target)
method RepositoryCopier (line 176) | public RepositoryCopier(RepositoryImpl source, RepositoryImpl target) {
method copy (line 199) | public void copy() throws RepositoryException {
method copyNamespaces (line 214) | private void copyNamespaces() throws RepositoryException {
method copyNodeTypes (line 229) | private void copyNodeTypes() throws RepositoryException {
method copyVersionStore (line 250) | private void copyVersionStore() throws RepositoryException {
method copyWorkspaces (line 260) | private void copyWorkspaces() throws RepositoryException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryFactoryImpl.java
class RepositoryFactoryImpl (line 44) | public class RepositoryFactoryImpl implements JackrabbitRepositoryFactory {
method getRepository (line 71) | public Repository getRepository(Map parameters) throws RepositoryExcep...
method getRepository (line 102) | private Repository getRepository(String home, Map<?, ?> parameters)
method getOrCreateRepository (line 119) | private static synchronized TransientRepository getOrCreateRepository(
method getRepositoryManager (line 160) | public RepositoryManager getRepositoryManager(JackrabbitRepository rep...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
class RepositoryImpl (line 127) | public class RepositoryImpl extends AbstractRepository
method RepositoryImpl (line 252) | protected RepositoryImpl(RepositoryConfig repConfig) throws Repository...
method createNamespaceRegistry (line 396) | protected NamespaceRegistryImpl createNamespaceRegistry()
method createNodeTypeRegistry (line 409) | protected NodeTypeRegistry createNodeTypeRegistry()
method getRepositoryContext (line 424) | RepositoryContext getRepositoryContext() { // TODO: Get rid of this me...
method getCacheManager (line 435) | public CacheManager getCacheManager() {
method initSecurityManager (line 445) | private synchronized void initSecurityManager() throws RepositoryExcep...
method createVersionManager (line 507) | protected InternalVersionManagerImpl createVersionManager(VersioningCo...
method initStartupWorkspaces (line 536) | protected void initStartupWorkspaces() throws RepositoryException {
method loadRootNodeId (line 570) | private NodeId loadRootNodeId() throws RepositoryException {
method create (line 614) | public static RepositoryImpl create(RepositoryConfig config)
method sanityCheck (line 625) | protected void sanityCheck() throws RepositoryException {
method getSystemSearchManager (line 637) | protected SearchManager getSystemSearchManager(String wspName)
method createClusterNode (line 665) | protected ClusterNode createClusterNode() throws RepositoryException {
method getWorkspaceNames (line 681) | protected String[] getWorkspaceNames() {
method getWorkspaceInfo (line 697) | protected WorkspaceInfo getWorkspaceInfo(String workspaceName)
method createWorkspace (line 727) | protected void createWorkspace(String workspaceName)
method externalWorkspaceCreated (line 755) | public void externalWorkspaceCreated(String workspaceName,
method createWorkspaceInternal (line 776) | private void createWorkspaceInternal(String workspaceName,
method createWorkspace (line 803) | protected void createWorkspace(String workspaceName,
method getWorkspaceStateManager (line 816) | SharedItemStateManager getWorkspaceStateManager(String workspaceName)
method setReferentialIntegrityChecking (line 836) | protected void setReferentialIntegrityChecking(
method getObservationDispatcher (line 842) | ObservationDispatcher getObservationDispatcher(String workspaceName)
method getSearchManager (line 863) | SearchManager getSearchManager(String workspaceName)
method getLockManager (line 880) | LockManagerImpl getLockManager(String workspaceName) throws
method getRetentionRegistry (line 897) | RetentionRegistry getRetentionRegistry(String workspaceName) throws No...
method getSystemSession (line 912) | SystemSession getSystemSession(String workspaceName)
method markWorkspaceActive (line 931) | void markWorkspaceActive(String workspaceName) throws RepositoryExcept...
method createSession (line 952) | protected final SessionImpl createSession(AuthContext loginContext,
method createSession (line 981) | protected final SessionImpl createSession(Subject subject,
method onSessionCreated (line 999) | protected void onSessionCreated(SessionImpl session) {
method extendAuthentication (line 1022) | private Session extendAuthentication(String workspaceName)
method shutdown (line 1063) | public void shutdown() {
method doShutdown (line 1085) | protected synchronized void doShutdown() {
method getConfig (line 1198) | public RepositoryConfig getConfig() {
method initRepositoryDescriptors (line 1212) | protected void initRepositoryDescriptors() throws RepositoryException {
method getCustomRepositoryDescriptors (line 1320) | protected Properties getCustomRepositoryDescriptors() throws Repositor...
method setDescriptor (line 1339) | protected void setDescriptor(String desc, String value) {
method setDescriptor (line 1343) | protected void setDescriptor(String desc, Value value) {
method setDescriptor (line 1347) | protected void setDescriptor(String desc, Value[] values) {
method createPersistenceManager (line 1362) | private PersistenceManager createPersistenceManager(
method createItemStateManager (line 1393) | protected SharedItemStateManager createItemStateManager(
method createDataStoreGarbageCollector (line 1413) | public GarbageCollector createDataStoreGarbageCollector()
method login (line 1465) | public Session login(Credentials credentials, String workspaceName)
method getDescriptor (line 1538) | public String getDescriptor(String key) {
method getDescriptorKeys (line 1551) | public String[] getDescriptorKeys() {
method getDescriptorValue (line 1560) | public Value getDescriptorValue(String key) {
method getDescriptorValues (line 1568) | public Value[] getDescriptorValues(String key) {
method isSingleValueDescriptor (line 1576) | public boolean isSingleValueDescriptor(String key) {
method loggingOut (line 1585) | public void loggingOut(SessionImpl session) {
method loggedOut (line 1591) | public void loggedOut(SessionImpl session) {
method createSessionInstance (line 1610) | protected SessionImpl createSessionInstance(AuthContext loginContext,
method createSessionInstance (line 1627) | protected SessionImpl createSessionInstance(Subject subject,
method createWorkspaceInfo (line 1640) | protected WorkspaceInfo createWorkspaceInfo(WorkspaceConfig wspConfig) {
class WorkspaceInfo (line 1651) | public class WorkspaceInfo implements UpdateEventListener {
method WorkspaceInfo (line 1742) | protected WorkspaceInfo(WorkspaceConfig config) {
method getName (line 1753) | protected String getName() {
method getConfig (line 1762) | public WorkspaceConfig getConfig() {
method getIdleTimestamp (line 1773) | final long getIdleTimestamp() {
method setIdleTimestamp (line 1784) | final void setIdleTimestamp(long ts) {
method isInitialized (line 1794) | protected final boolean isInitialized() {
method isActive (line 1808) | public boolean isActive() {
method setActive (line 1812) | public void setActive(boolean active) {
method getFileSystem (line 1821) | protected FileSystem getFileSystem() {
method getPersistenceManager (line 1837) | public PersistenceManager getPersistenceManager()
method getItemStateProvider (line 1854) | protected SharedItemStateManager getItemStateProvider()
method getObservationDispatcher (line 1869) | protected ObservationDispatcher getObservationDispatcher() {
method getSearchManager (line 1885) | protected SearchManager getSearchManager() throws RepositoryException {
method getLockManager (line 1914) | protected LockManagerImpl getLockManager() throws RepositoryException {
method createLockManager (line 1941) | protected LockManagerImpl createLockManager() throws RepositoryExcep...
method getRetentionRegistry (line 1952) | protected RetentionRegistry getRetentionRegistry() throws Repository...
method getSystemSession (line 1970) | protected SystemSession getSystemSession() throws RepositoryException {
method initialize (line 2007) | final boolean initialize() throws RepositoryException {
method doInitialize (line 2049) | protected void doInitialize() throws RepositoryException {
method doVersionRecovery (line 2096) | protected void doVersionRecovery() throws RepositoryException {
method doPostInitialize (line 2112) | protected void doPostInitialize()
method disposeIfIdle (line 2152) | final void disposeIfIdle(long maxIdleTime) {
method dispose (line 2183) | final void dispose() {
method doDispose (line 2211) | protected void doDispose() {
method lockAcquire (line 2287) | void lockAcquire() throws TransactionException {
method lockRelease (line 2301) | void lockRelease() {
method externalUpdate (line 2310) | public void externalUpdate(ChangeLog external,
class WorkspaceJanitor (line 2334) | private class WorkspaceJanitor implements Runnable {
method WorkspaceJanitor (line 2354) | WorkspaceJanitor(long maxIdleTime) {
method run (line 2372) | public void run() {
class ExternalEventListener (line 2415) | class ExternalEventListener implements ClusterContext {
method getClusterConfig (line 2420) | public ClusterConfig getClusterConfig() {
method getRepositoryHome (line 2427) | public File getRepositoryHome() {
method getNamespaceResolver (line 2434) | public NamespaceResolver getNamespaceResolver() {
method updateEventsReady (line 2441) | public void updateEventsReady(String workspace) throws RepositoryExc...
method lockEventsReady (line 2449) | public void lockEventsReady(String workspace) throws RepositoryExcep...
class DescriptorValue (line 2459) | protected static final class DescriptorValue {
method DescriptorValue (line 2464) | protected DescriptorValue(Value val) {
method DescriptorValue (line 2468) | protected DescriptorValue(Value[] vals) {
method getValue (line 2472) | protected Value getValue() {
method getValues (line 2476) | protected Value[] getValues() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryManagerImpl.java
class RepositoryManagerImpl (line 27) | public class RepositoryManagerImpl implements RepositoryManager {
method RepositoryManagerImpl (line 31) | RepositoryManagerImpl(TransientRepository tr) {
method createDataStoreGarbageCollector (line 35) | public DataStoreGarbageCollector createDataStoreGarbageCollector() thr...
method stop (line 44) | public void stop() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java
class SearchManager (line 60) | public class SearchManager implements SynchronousEventListener {
method SearchManager (line 127) | public SearchManager(
method safeRegisterNamespace (line 190) | private void safeRegisterNamespace(String prefixHint, String uri)
method close (line 217) | public void close() {
method createQuery (line 238) | public Query createQuery(
method createQueryObjectModel (line 261) | public QueryObjectModel createQueryObjectModel(
method getWeaklyReferringNodes (line 280) | public Iterable<NodeId> getWeaklyReferringNodes(NodeId id)
method isExcluded (line 293) | private boolean isExcluded(EventImpl event) {
method getQueryHandler (line 312) | public QueryHandler getQueryHandler() {
method onEvent (line 318) | public void onEvent(EventIterator events) {
method createQueryInstance (line 431) | protected AbstractQueryImpl createQueryInstance() throws RepositoryExc...
method shutdownQueryHandler (line 455) | private void shutdownQueryHandler() throws IOException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionFactory.java
class SessionFactory (line 28) | public class SessionFactory {
method SessionFactory (line 32) | public SessionFactory(RepositoryContext context) {
method createAdminSession (line 36) | public SessionImpl createAdminSession(String workspace)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
class SessionImpl (line 115) | public class SessionImpl extends AbstractSession
method SessionImpl (line 235) | protected SessionImpl(
method SessionImpl (line 253) | protected SessionImpl(
method retrieveUserId (line 287) | protected String retrieveUserId(Subject subject, String workspaceName)...
method createSessionItemStateManager (line 297) | protected SessionItemStateManager createSessionItemStateManager() {
method createItemManager (line 309) | protected ItemManager createItemManager() {
method createObservationManager (line 315) | protected ObservationManagerImpl createObservationManager(String wspName)
method createVersionManager (line 332) | protected InternalVersionManager createVersionManager()
method createAccessManager (line 346) | protected AccessManager createAccessManager(Subject subject)
method perform (line 361) | private <T> T perform(SessionOperation<T> operation)
method sanityCheck (line 373) | private void sanityCheck() throws RepositoryException {
method getSubject (line 383) | public Subject getSubject() {
method isSystem (line 394) | public boolean isSystem() {
method isAdmin (line 406) | public boolean isAdmin() {
method createSession (line 439) | public Session createSession(String workspaceName)
method getAccessManager (line 455) | public AccessManager getAccessManager() {
method getNodeTypeManager (line 464) | public NodeTypeManagerImpl getNodeTypeManager() {
method getItemManager (line 473) | public ItemManager getItemManager() {
method getHierarchyManager (line 482) | public HierarchyManager getHierarchyManager() {
method getInternalVersionManager (line 491) | public InternalVersionManager getInternalVersionManager() {
method getRetentionRegistry (line 503) | protected RetentionRegistry getRetentionRegistry() throws RepositoryEx...
method setAttribute (line 516) | public void setAttribute(String name, Object value) {
method getNodeById (line 533) | public NodeImpl getNodeById(NodeId id) throws ItemNotFoundException, R...
method notifyLoggingOut (line 547) | protected void notifyLoggingOut() {
method notifyLoggedOut (line 561) | protected void notifyLoggedOut() {
method addListener (line 577) | public void addListener(SessionListener listener) {
method removeListener (line 588) | public void removeListener(SessionListener listener) {
method createDataStoreGarbageCollector (line 597) | public GarbageCollector createDataStoreGarbageCollector() throws Repos...
method getPrefix (line 613) | public String getPrefix(String uri) throws NamespaceException {
method getURI (line 623) | public String getURI(String prefix) throws NamespaceException {
method getJCRName (line 635) | public String getJCRName(Name name) throws NamespaceException {
method getQName (line 639) | public Name getQName(String name) throws IllegalNameException, Namespa...
method getJCRPath (line 645) | public String getJCRPath(Path path) throws NamespaceException {
method getQPath (line 649) | public Path getQPath(String path) throws MalformedPathException, Illeg...
method getQPath (line 653) | public Path getQPath(String path, boolean normalizeIdentifier) throws ...
method getPath (line 661) | public Path getPath(String identifier) throws MalformedPathException {
method checkFormat (line 672) | public void checkFormat(String identifier) throws MalformedPathExcepti...
method hasPermission (line 684) | @Override
method getPrincipalManager (line 692) | public PrincipalManager getPrincipalManager() throws RepositoryExcepti...
method getUserManager (line 703) | public UserManager getUserManager() throws AccessDeniedException, Repo...
method getItemOrNull (line 711) | @Override
method getPropertyOrNull (line 721) | @Override
method getNodeOrNull (line 731) | @Override
method isValidNamespaceName (line 741) | private static boolean isValidNamespaceName(String namespace) {
method getExpandedName (line 747) | @Override
method getExpandedPath (line 765) | @Override
method checkPermission (line 782) | public void checkPermission(String absPath, String actions)
method getWorkspace (line 792) | public Workspace getWorkspace() {
method impersonate (line 799) | @Override
method getRootNode (line 833) | public Node getRootNode() throws RepositoryException {
method getNodeByUUID (line 843) | public Node getNodeByUUID(String uuid) throws ItemNotFoundException, R...
method getItem (line 861) | @Override
method itemExists (line 869) | @Override
method save (line 886) | public void save() throws RepositoryException {
method refresh (line 896) | public void refresh(boolean keepChanges) throws RepositoryException {
method clusterSyncOnRefresh (line 913) | protected boolean clusterSyncOnRefresh() {
method autoFixCorruptions (line 927) | protected boolean autoFixCorruptions() {
method hasPendingChanges (line 934) | public boolean hasPendingChanges() throws RepositoryException {
method move (line 944) | public void move(String srcAbsPath, String destAbsPath)
method getImportContentHandler (line 952) | public ContentHandler getImportContentHandler(String parentAbsPath,
method isLive (line 989) | public boolean isLive() {
method removeRegisteredEventListeners (line 996) | @SuppressWarnings("unchecked")
method logout (line 1019) | @Override
method getRepository (line 1067) | public Repository getRepository() {
method getValueFactory (line 1074) | public ValueFactory getValueFactory() {
method getUserID (line 1081) | public String getUserID() {
method getAttribute (line 1088) | public Object getAttribute(String name) {
method getAttributeNames (line 1095) | public String[] getAttributeNames() {
method setNamespacePrefix (line 1102) | @Override
method addLockToken (line 1115) | public void addLockToken(String lt) {
method getLockTokens (line 1126) | public String[] getLockTokens() {
method removeLockToken (line 1138) | public void removeLockToken(String lt) {
method getLocks (line 1151) | public Lock[] getLocks() {
method getNodeByIdentifier (line 1172) | public Node getNodeByIdentifier(String id)
method getNode (line 1187) | @Override
method getProperty (line 1196) | @Override
method nodeExists (line 1205) | @Override
method propertyExists (line 1223) | @Override
method removeItem (line 1232) | @Override
method hasPermission (line 1241) | public boolean hasPermission(String absPath, String actions) throws Re...
method hasCapability (line 1287) | public boolean hasCapability(String methodName, Object target, Object[...
method getAccessControlManager (line 1356) | public AccessControlManager getAccessControlManager()
method getRetentionManager (line 1371) | public RetentionManager getRetentionManager()
method toString (line 1393) | @Override
method finalize (line 1403) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionListener.java
type SessionListener (line 25) | public interface SessionListener {
method loggingOut (line 34) | void loggingOut(SessionImpl session);
method loggedOut (line 42) | void loggedOut(SessionImpl session);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionMoveOperation.java
class SessionMoveOperation (line 39) | public class SessionMoveOperation implements SessionWriteOperation<Objec...
method SessionMoveOperation (line 52) | public SessionMoveOperation(
method getAbsolutePath (line 76) | private Path getAbsolutePath(PathResolver resolver, String path)
method getNode (line 89) | private NodeImpl getNode(
method perform (line 99) | public Object perform(SessionContext context) throws RepositoryExcepti...
method toString (line 216) | public String toString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SystemSession.java
class SystemSession (line 47) | class SystemSession extends SessionImpl {
method create (line 57) | static SystemSession create(
method SystemSession (line 74) | private SystemSession(
method retrieveUserId (line 85) | @Override
method createAccessManager (line 97) | @Override
method isSystem (line 110) | @Override
method isAdmin (line 120) | @Override
class SystemAccessManager (line 129) | private class SystemAccessManager extends AbstractAccessControlManager...
method SystemAccessManager (line 131) | SystemAccessManager() {
method init (line 141) | public void init(AMContext context)
method init (line 146) | public void init(AMContext context, AccessControlProvider acProvider...
method close (line 153) | public void close() throws Exception {
method checkPermission (line 163) | public void checkPermission(ItemId id, int permissions)
method checkPermission (line 171) | public void checkPermission(Path absPath, int permissions) throws Ac...
method checkRepositoryPermission (line 178) | public void checkRepositoryPermission(int permissions) throws Access...
method isGranted (line 188) | public boolean isGranted(ItemId id, int permissions) throws Reposito...
method isGranted (line 198) | public boolean isGranted(Path absPath, int permissions) throws Repos...
method isGranted (line 208) | public boolean isGranted(Path parentPath, Name childName, int permis...
method canRead (line 218) | public boolean canRead(Path itemPath, ItemId itemId) throws Reposito...
method canAccess (line 228) | public boolean canAccess(String workspaceName) throws RepositoryExce...
method checkInitialized (line 236) | @Override
method checkPermission (line 244) | @Override
method getPrivilegeManager (line 253) | @Override
method checkValidNodePath (line 261) | @Override
method hasPrivileges (line 279) | public boolean hasPrivileges(String absPath, Privilege[] privileges)
method getPrivileges (line 289) | public Privilege[] getPrivileges(String absPath)
method getEffectivePolicies (line 298) | public AccessControlPolicy[] getEffectivePolicies(String absPath) th...
method getEffectivePolicies (line 307) | public AccessControlPolicy[] getEffectivePolicies(Set<Principal> pri...
method hasPrivileges (line 315) | public boolean hasPrivileges(String absPath, Set<Principal> principa...
method getPrivileges (line 322) | public Privilege[] getPrivileges(String absPath, Set<Principal> prin...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TestContentLoader.java
class TestContentLoader (line 46) | public class TestContentLoader {
method loadTestContent (line 53) | public void loadTestContent(Session session) throws RepositoryExceptio...
method getOrAddNode (line 89) | private Node getOrAddNode(Node node, String name)
method addPropertyTestData (line 102) | private void addPropertyTestData(Node node) throws RepositoryException {
method addRetentionTestData (line 117) | private void addRetentionTestData(Node node) throws RepositoryExcepti...
method addQueryTestData (line 126) | private void addQueryTestData(Node node) throws RepositoryException {
method addNodeTestData (line 142) | private void addNodeTestData(Node node) throws RepositoryException, I...
method addLifecycleTestData (line 185) | private void addLifecycleTestData(Node node) throws RepositoryExcepti...
method addExportTestData (line 197) | private void addExportTestData(Node node) throws RepositoryException,...
method addExportValues (line 235) | private void addExportValues(Node node, String name)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java
class TransientRepository (line 48) | public class TransientRepository extends AbstractRepository
type RepositoryFactory (line 84) | public interface RepositoryFactory {
method getRepository (line 93) | RepositoryImpl getRepository() throws RepositoryException;
method TransientRepository (line 136) | public TransientRepository(RepositoryFactory factory, String home) {
method TransientRepository (line 166) | public TransientRepository() {
method TransientRepository (line 178) | public TransientRepository(final RepositoryConfig config) {
method TransientRepository (line 195) | public TransientRepository(String config, String home) {
method TransientRepository (line 207) | public TransientRepository(File dir) {
method TransientRepository (line 229) | public TransientRepository(final File xml, final File dir) {
method TransientRepository (line 246) | public TransientRepository(final Properties properties)
method getHomeDir (line 269) | public String getHomeDir() {
method startRepository (line 278) | private synchronized void startRepository() throws RepositoryException {
method stopRepository (line 288) | private synchronized void stopRepository() {
method getDescriptorKeys (line 305) | public synchronized String[] getDescriptorKeys() {
method getDescriptor (line 325) | public synchronized String getDescriptor(String key) {
method getDescriptorValue (line 333) | public Value getDescriptorValue(String key) {
method getDescriptorValues (line 342) | public Value[] getDescriptorValues(String key) {
method isSingleValueDescriptor (line 351) | public boolean isSingleValueDescriptor(String key) {
method login (line 372) | public synchronized Session login(
method shutdown (line 406) | public synchronized void shutdown() {
method loggedOut (line 422) | public synchronized void loggedOut(SessionImpl session) {
method loggingOut (line 440) | public void loggingOut(SessionImpl session) {
method getRepository (line 448) | RepositoryImpl getRepository() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/UserPerWorkspaceSecurityManager.java
class UserPerWorkspaceSecurityManager (line 68) | public class UserPerWorkspaceSecurityManager extends DefaultSecurityMana...
method getPrincipalProviderRegistry (line 79) | private PrincipalProviderRegistry getPrincipalProviderRegistry(Session...
method init (line 122) | @Override
method dispose (line 132) | @Override
method close (line 146) | @Override
method getUserManager (line 164) | @Override
method getAuthContext (line 198) | @Override
method createDefaultPrincipalProvider (line 215) | @Override
method getSystemUserManager (line 220) | @Override
method createUserManager (line 236) | @Override
method createPrincipalManager (line 271) | @Override
method createDefaultWorkspaceAccessManager (line 290) | @Override
class WorkspaceBasedPrincipalProviderRegistry (line 301) | private final class WorkspaceBasedPrincipalProviderRegistry implements...
method WorkspaceBasedPrincipalProviderRegistry (line 305) | public WorkspaceBasedPrincipalProviderRegistry(PrincipalProvider def...
method registerProvider (line 309) | public PrincipalProvider registerProvider(Properties configuration) ...
method getDefault (line 313) | public PrincipalProvider getDefault() {
method getProvider (line 317) | public PrincipalProvider getProvider(String className) {
method getProviders (line 325) | public PrincipalProvider[] getProviders() {
class WorkspaceAccessManagerImpl (line 333) | private final class WorkspaceAccessManagerImpl implements WorkspaceAcc...
method init (line 338) | public void init(Session systemSession) throws RepositoryException {
method close (line 346) | public void close() throws RepositoryException {
method grants (line 358) | public boolean grants(Set<Principal> principals, String workspaceNam...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java
class VersionManagerImpl (line 73) | public class VersionManagerImpl extends VersionManagerImplConfig
method VersionManagerImpl (line 88) | public VersionManagerImpl(
method perform (line 94) | private <T> T perform(SessionOperation<T> operation)
method checkin (line 100) | public Version checkin(String absPath) throws RepositoryException {
method checkin (line 113) | public Version checkin(final String absPath, final Calendar created)
method checkout (line 134) | public void checkout(final String absPath) throws RepositoryException {
method checkpoint (line 153) | public Version checkpoint(final String absPath) throws RepositoryExcep...
method isCheckedOut (line 171) | public boolean isCheckedOut(String absPath) throws RepositoryException {
method getVersionHistory (line 178) | public VersionHistory getVersionHistory(final String absPath)
method getBaseVersion (line 199) | public Version getBaseVersion(final String absPath)
method restore (line 215) | public void restore(Version version, boolean removeExisting)
method restore (line 223) | public void restore(final Version[] versions, final boolean removeExis...
method restore (line 271) | public void restore(
method restore (line 295) | public void restore(
method restore (line 346) | protected void restore(NodeImpl node, Version version, boolean removeE...
method restoreByLabel (line 359) | public void restoreByLabel(
method update (line 389) | public void update(NodeImpl node, String srcWorkspaceName)
method merge (line 398) | public NodeIterator merge(
method merge (line 407) | public NodeIterator merge(
method mergeOrUpdate (line 440) | private void mergeOrUpdate(NodeStateEx state, String srcWorkspaceName,
method doneMerge (line 480) | public void doneMerge(String absPath, Version version)
method cancelMerge (line 491) | public void cancelMerge(String absPath, Version version)
method createConfiguration (line 502) | public Node createConfiguration(String absPath) throws RepositoryExcep...
method setActivity (line 529) | public Node setActivity(Node activity) throws RepositoryException {
method getActivity (line 548) | public Node getActivity() throws RepositoryException {
method createActivity (line 559) | public Node createActivity(String title) throws RepositoryException {
method removeActivity (line 567) | public void removeActivity(Node node) throws RepositoryException {
method merge (line 584) | public NodeIterator merge(Node activityNode) throws RepositoryException {
method getNodeState (line 608) | private NodeStateEx getNodeState(String path) throws RepositoryExcepti...
method getNodeState (line 620) | private NodeStateEx getNodeState(String path, int options, int permiss...
method getNodeState (line 633) | private NodeStateEx getNodeState(NodeImpl node, int options, int permi...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
class WorkspaceImpl (line 76) | public class WorkspaceImpl extends AbstractWorkspace
method WorkspaceImpl (line 149) | public WorkspaceImpl(
method getHierarchyManager (line 168) | public HierarchyManager getHierarchyManager() {
method getItemStateManager (line 178) | public LocalItemStateManager getItemStateManager() {
method dispose (line 185) | void dispose() {
method sanityCheck (line 202) | public void sanityCheck() throws RepositoryException {
method createWorkspace (line 210) | public void createWorkspace(String name, String srcWorkspace)
method deleteWorkspace (line 250) | public void deleteWorkspace(String name) throws AccessDeniedException,
method getLockManager (line 264) | public javax.jcr.lock.LockManager getLockManager() throws UnsupportedR...
method getVersionManager (line 275) | public VersionManager getVersionManager() {
method getVersionManagerImpl (line 279) | VersionManagerImpl getVersionManagerImpl() {
method createWorkspace (line 312) | public void createWorkspace(String name)
method createWorkspace (line 334) | public void createWorkspace(
method getPrivilegeManager (line 351) | public PrivilegeManager getPrivilegeManager() throws RepositoryExcepti...
method getConfig (line 361) | public WorkspaceConfig getConfig() {
method internalCopy (line 384) | private String internalCopy(String srcAbsPath,
method internalClone (line 462) | private String internalClone(String srcAbsPath, String destAbsPath)
method getInternalLockManager (line 524) | public synchronized org.apache.jackrabbit.core.lock.LockManager getInt...
method getRetentionRegistry (line 547) | synchronized RetentionRegistry getRetentionRegistry() throws Repositor...
method getName (line 561) | public String getName() {
method getSession (line 568) | public Session getSession() {
method getNamespaceRegistry (line 575) | public NamespaceRegistry getNamespaceRegistry() throws RepositoryExcep...
method getNodeTypeManager (line 582) | public NodeTypeManager getNodeTypeManager() throws RepositoryException {
method clone (line 592) | public void clone(String srcWorkspace, String srcAbsPath,
method copy (line 648) | public void copy(String srcAbsPath, String destAbsPath)
method copy (line 662) | public void copy(String srcWorkspace, String srcAbsPath, String destAb...
method move (line 707) | public void move(String srcAbsPath, String destAbsPath)
method getObservationManager (line 770) | public ObservationManager getObservationManager() {
method getQueryManager (line 777) | public synchronized QueryManager getQueryManager() throws RepositoryEx...
method restore (line 806) | @Deprecated
method getAccessibleWorkspaceNames (line 823) | public String[] getAccessibleWorkspaceNames() throws RepositoryExcepti...
method getImportContentHandler (line 847) | public ContentHandler getImportContentHandler(String parentAbsPath,
method getSharedItemStateManager (line 879) | protected SharedItemStateManager getSharedItemStateManager()
method createItemStateManager (line 893) | protected LocalItemStateManager createItemStateManager()
method createEventStateCollection (line 917) | public EventStateCollection createEventStateCollection()
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceManager.java
class WorkspaceManager (line 31) | public class WorkspaceManager {
method WorkspaceManager (line 35) | WorkspaceManager(RepositoryImpl repository) {
method getDefaultWorkspaceName (line 44) | public String getDefaultWorkspaceName() {
method getWorkspaceNames (line 53) | public String[] getWorkspaceNames() {
method createWorkspace (line 64) | public void createWorkspace(String workspaceName)
method createWorkspace (line 78) | public void createWorkspace(
method getWorkspaceStateManager (line 85) | public SharedItemStateManager getWorkspaceStateManager(String workspac...
method getObservationDispatcher (line 91) | public ObservationDispatcher getObservationDispatcher(String workspace...
method createSession (line 97) | public SessionImpl createSession(Subject subject, String workspaceName)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java
class XASessionImpl (line 44) | @SuppressWarnings("deprecation")
method XASessionImpl (line 97) | protected XASessionImpl(
method XASessionImpl (line 115) | protected XASessionImpl(
method init (line 126) | private void init() throws RepositoryException {
method createVersionManager (line 159) | @Override
method getXAResource (line 173) | public XAResource getXAResource() {
method getTransactionTimeout (line 181) | public int getTransactionTimeout() {
method setTransactionTimeout (line 188) | public boolean setTransactionTimeout(int seconds) {
method isSameRM (line 199) | public boolean isSameRM(XAResource xares) throws XAException {
method start (line 219) | public void start(Xid xid, int flags) throws XAException {
method createTransaction (line 255) | private TransactionContext createTransaction(Xid xid) {
method end (line 277) | public void end(Xid xid, int flags) throws XAException {
method prepare (line 307) | public int prepare(Xid xid) throws XAException {
method commit (line 319) | public void commit(Xid xid, boolean onePhase) throws XAException {
method rollback (line 337) | public void rollback(Xid xid) throws XAException {
method recover (line 354) | public Xid[] recover(int flags) throws XAException {
method forget (line 363) | public void forget(Xid xid) throws XAException {
method associate (line 371) | public synchronized void associate(TransactionContext tx) {
method isAssociated (line 385) | private boolean isAssociated() {
method logout (line 392) | @Override
method stringsEqual (line 407) | private static boolean stringsEqual(String s1, String s2) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ZombieHierarchyManager.java
class ZombieHierarchyManager (line 36) | public class ZombieHierarchyManager extends HierarchyManagerImpl {
method ZombieHierarchyManager (line 43) | public ZombieHierarchyManager(HierarchyManagerImpl parent,
method getItemState (line 55) | protected ItemState getItemState(ItemId id)
method hasItemState (line 71) | protected boolean hasItemState(ItemId id) {
method getParentId (line 85) | protected NodeId getParentId(ItemState state) {
method getChildNodeEntry (line 99) | protected ChildNodeEntry getChildNodeEntry(NodeState parent,
method getChildNodeEntry (line 122) | protected ChildNodeEntry getChildNodeEntry(NodeState parent,
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/AbstractCache.java
class AbstractCache (line 35) | public abstract class AbstractCache implements Cache {
method isTooBig (line 98) | protected boolean isTooBig() {
method recordSizeChange (line 107) | protected void recordSizeChange(long delta) {
method recordCacheAccess (line 116) | protected void recordCacheAccess() {
method recordCacheMiss (line 127) | protected void recordCacheMiss() {
method getAccessCount (line 131) | public long getAccessCount() {
method resetAccessCount (line 135) | public void resetAccessCount() {
method getTotalAccessCount (line 139) | public long getTotalAccessCount(){
method getMissCount (line 143) | public long getMissCount() {
method resetMissCount (line 147) | public void resetMissCount() {
method getMemoryUsed (line 151) | public long getMemoryUsed() {
method getMaxMemorySize (line 155) | public long getMaxMemorySize() {
method setMaxMemorySize (line 159) | public void setMaxMemorySize(long size) {
method setAccessListener (line 168) | public void setAccessListener(CacheAccessListener listener) {
method dispose (line 175) | public void dispose() {
method getCacheInfoAsString (line 185) | public String getCacheInfoAsString() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/Cache.java
type Cache (line 24) | public interface Cache {
method setMaxMemorySize (line 30) | void setMaxMemorySize(long size);
method getMaxMemorySize (line 36) | long getMaxMemorySize();
method getMemoryUsed (line 42) | long getMemoryUsed();
method getAccessCount (line 48) | long getAccessCount();
method resetAccessCount (line 53) | void resetAccessCount();
method getTotalAccessCount (line 59) | long getTotalAccessCount();
method getMissCount (line 66) | long getMissCount();
method resetMissCount (line 71) | void resetMissCount();
method getElementCount (line 77) | long getElementCount();
method setAccessListener (line 82) | void setAccessListener(CacheAccessListener listener);
method getCacheInfoAsString (line 87) | String getCacheInfoAsString();
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/CacheAccessListener.java
type CacheAccessListener (line 23) | public interface CacheAccessListener {
method cacheAccessed (line 41) | void cacheAccessed(long accessCount);
method disposeCache (line 46) | void disposeCache(Cache cache);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/CacheManager.java
class CacheManager (line 38) | public class CacheManager implements CacheAccessListener {
method getMaxMemory (line 99) | public long getMaxMemory() {
method setMaxMemory (line 103) | public void setMaxMemory(final long maxMemory) {
method getMaxMemoryPerCache (line 107) | public long getMaxMemoryPerCache() {
method setMaxMemoryPerCache (line 111) | public void setMaxMemoryPerCache(final long maxMemoryPerCache) {
method getMinMemoryPerCache (line 115) | public long getMinMemoryPerCache() {
method setMinMemoryPerCache (line 119) | public void setMinMemoryPerCache(final long minMemoryPerCache) {
method getMinResizeInterval (line 123) | public long getMinResizeInterval() {
method setMinResizeInterval (line 127) | public void setMinResizeInterval(long minResizeInterval) {
method cacheAccessed (line 135) | public void cacheAccessed(long accessCount) {
method logCacheStats (line 158) | private void logCacheStats() {
method resizeAll (line 179) | private void resizeAll() {
method add (line 261) | public void add(Cache cache) {
method remove (line 275) | public void remove(Cache cache) {
class CacheInfo (line 284) | public static class CacheInfo {
method CacheInfo (line 295) | CacheInfo(Cache cache) {
method wasFull (line 311) | boolean wasFull() {
method getAccessCount (line 315) | long getAccessCount() {
method getMemoryUsed (line 319) | long getMemoryUsed() {
method setMemory (line 323) | void setMemory(long mem) {
method getMemory (line 327) | long getMemory() {
method getCache (line 331) | Cache getCache() {
method disposeCache (line 337) | public void disposeCache(Cache cache) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/ConcurrentCache.java
class ConcurrentCache (line 32) | public class ConcurrentCache<K, V> extends AbstractCache {
class E (line 47) | private static class E<V> {
method E (line 53) | public E(V value, long size) {
method ConcurrentCache (line 63) | @SuppressWarnings({ "unchecked", "serial" })
method ConcurrentCache (line 82) | public ConcurrentCache(String name) {
method getSegment (line 95) | private Map<K, E<V>> getSegment(K key) {
method containsKey (line 108) | public boolean containsKey(K key) {
method get (line 121) | public V get(K key) {
method values (line 143) | public List<V> values() {
method put (line 163) | public V put(K key, V value, long size) {
method remove (line 188) | public V remove(K key) {
method clear (line 207) | public void clear() {
method isEmpty (line 221) | public boolean isEmpty() {
method setMaxMemorySize (line 229) | @Override
method shrinkIfNeeded (line 238) | private void shrinkIfNeeded() {
method getElementCount (line 256) | public long getElementCount() {
method toString (line 264) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/GrowingLRUMap.java
class GrowingLRUMap (line 26) | public class GrowingLRUMap<K, V> extends LRUMap<K, V> {
method GrowingLRUMap (line 30) | public GrowingLRUMap(int initialSize, int maxSize) {
method removeLRU (line 35) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ChangeLogRecord.java
class ChangeLogRecord (line 46) | public class ChangeLogRecord extends ClusterRecord {
method ChangeLogRecord (line 128) | public ChangeLogRecord(ChangeLog changes, List<EventState> events,
method ChangeLogRecord (line 146) | ChangeLogRecord(int identifier, Record record, String workspace) {
method doRead (line 157) | @Override
method readEndMarker (line 189) | @Override
method readTimestampRecord (line 201) | private void readTimestampRecord() throws JournalException {
method readUserDataRecord (line 210) | private void readUserDataRecord() throws JournalException {
method readNodeRecord (line 219) | private void readNodeRecord() throws JournalException {
method readPropertyRecord (line 232) | private void readPropertyRecord() throws JournalException {
method apply (line 247) | private void apply(int operation, ItemState state) throws JournalExcep...
method readEventRecord (line 272) | private void readEventRecord() throws JournalException {
method createEventState (line 327) | private EventState createEventState(int type, NodeId parentId, Path pa...
method getOrCreateSession (line 361) | private Session getOrCreateSession(String userId) {
method doWrite (line 371) | @Override
method writeTimestampRecord (line 407) | private void writeTimestampRecord() throws JournalException {
method writeUserDataRecord (line 417) | private void writeUserDataRecord() throws JournalException {
method writeNodeRecord (line 431) | private void writeNodeRecord(int operation, NodeState state)
method writePropertyRecord (line 446) | private void writePropertyRecord(int operation, PropertyState state)
method writeEventRecord (line 460) | private void writeEventRecord(EventState event) throws JournalException {
method process (line 498) | @Override
method getChanges (line 508) | public ChangeLog getChanges() {
method getEvents (line 517) | public List<EventState> getEvents() {
method getTimestamp (line 526) | public long getTimestamp() {
method getUserData (line 535) | public String getUserData() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterContext.java
type ClusterContext (line 29) | public interface ClusterContext {
method getClusterConfig (line 36) | ClusterConfig getClusterConfig();
method getRepositoryHome (line 43) | File getRepositoryHome();
method getNamespaceResolver (line 50) | NamespaceResolver getNamespaceResolver();
method updateEventsReady (line 59) | void updateEventsReady(String workspace) throws RepositoryException;
method lockEventsReady (line 68) | void lockEventsReady(String workspace) throws RepositoryException;
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterException.java
class ClusterException (line 22) | public class ClusterException extends Exception {
method ClusterException (line 31) | public ClusterException(String message) {
method ClusterException (line 43) | public ClusterException(String message, Throwable rootCause) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java
class ClusterNode (line 53) | public class ClusterNode implements Runnable,
method init (line 212) | public void init(ClusterContext clusterContext) throws ClusterException {
method init (line 223) | protected void init() throws ClusterException {
method setStopDelay (line 249) | public void setStopDelay(long stopDelay) {
method getStopDelay (line 259) | public long getStopDelay() {
method disableAutoSync (line 266) | protected void disableAutoSync() {
method start (line 275) | public synchronized void start() throws ClusterException {
method run (line 292) | public void run() {
method internalSync (line 325) | private void internalSync(boolean startup) throws ClusterException {
method sync (line 355) | public void sync() throws ClusterException {
method syncOnStartup (line 364) | public void syncOnStartup() throws ClusterException {
method stop (line 371) | public synchronized void stop() {
method createUpdateChannel (line 402) | public UpdateEventChannel createUpdateChannel(String workspace) {
method createLockChannel (line 412) | public LockEventChannel createLockChannel(String workspace) {
method getJournal (line 421) | public Journal getJournal() {
method remapped (line 430) | public void remapped(String oldPrefix, String newPrefix, String uri) {
method setListener (line 457) | public void setListener(NamespaceEventListener listener) {
method registered (line 466) | public void registered(Collection ntDefs) {
method reregistered (line 496) | public void reregistered(QNodeTypeDefinition ntDef) {
method unregistered (line 526) | public void unregistered(Collection qnames) {
method setListener (line 556) | public void setListener(NodeTypeEventListener listener) {
method registeredPrivileges (line 565) | public void registeredPrivileges(Collection<PrivilegeDefinition> defin...
method setListener (line 592) | public void setListener(PrivilegeEventListener listener) {
class WorkspaceUpdateChannel (line 600) | class WorkspaceUpdateChannel implements UpdateEventChannel {
method WorkspaceUpdateChannel (line 622) | public WorkspaceUpdateChannel(String workspace) {
method updateCreated (line 629) | public void updateCreated(Update update) throws ClusterException {
method updatePrepared (line 650) | public void updatePrepared(Update update) throws ClusterException {
method updateCommitted (line 689) | public void updateCommitted(Update update, String path) {
method updateCancelled (line 729) | public void updateCancelled(Update update) {
method setListener (line 740) | public void setListener(UpdateEventListener listener) {
class WorkspaceLockChannel (line 760) | class WorkspaceLockChannel implements LockEventChannel {
method WorkspaceLockChannel (line 772) | public WorkspaceLockChannel(String workspace) {
method create (line 779) | public ClusterOperation create(NodeId nodeId, boolean deep, String o...
method create (line 802) | public ClusterOperation create(NodeId nodeId) {
method setListener (line 825) | public void setListener(LockEventListener listener) {
method getId (line 838) | public String getId() {
method getRevision (line 845) | public long getRevision() {
method consume (line 857) | public void consume(Record record) {
method setRevision (line 871) | public void setRevision(long revision) {
method process (line 884) | public void process(ChangeLogRecord record) {
method process (line 939) | public void process(LockRecord record) {
method process (line 977) | public void process(NamespaceRecord record) {
method process (line 995) | public void process(NodeTypeRecord record) {
method process (line 1024) | public void process(PrivilegeRecord record) {
method process (line 1038) | public void process(WorkspaceRecord record) {
method setListener (line 1058) | public void setListener(WorkspaceListener listener) {
method workspaceCreated (line 1062) | public void workspaceCreated(String workspaceName,
method ended (line 1100) | public void ended(DefaultClusterOperation operation, boolean successfu...
method getFirstUserId (line 1124) | private String getFirstUserId(List<EventState> eventStates) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterOperation.java
type ClusterOperation (line 23) | public interface ClusterOperation {
method ended (line 32) | void ended(boolean successful);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterRecord.java
class ClusterRecord (line 26) | public abstract class ClusterRecord {
method ClusterRecord (line 49) | protected ClusterRecord(Record record, String workspace) {
method ClusterRecord (line 60) | protected ClusterRecord(Record record) {
method read (line 69) | public final void read() throws JournalException {
method doRead (line 80) | protected abstract void doRead() throws JournalException;
method write (line 87) | public final void write() throws JournalException {
method doWrite (line 100) | protected abstract void doWrite() throws JournalException;
method readEndMarker (line 107) | protected void readEndMarker() throws JournalException {
method process (line 121) | public abstract void process(ClusterRecordProcessor processor);
method update (line 129) | public void update() throws JournalException {
method cancelUpdate (line 138) | public void cancelUpdate() {
method getRevision (line 148) | public long getRevision() {
method getWorkspace (line 157) | public String getWorkspace() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterRecordDeserializer.java
class ClusterRecordDeserializer (line 25) | public class ClusterRecordDeserializer {
method deserialize (line 34) | public ClusterRecord deserialize(Record record) throws JournalException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterRecordProcessor.java
type ClusterRecordProcessor (line 26) | public interface ClusterRecordProcessor {
method process (line 33) | void process(ChangeLogRecord record);
method process (line 40) | void process(LockRecord record);
method process (line 47) | void process(NamespaceRecord record);
method process (line 54) | void process(NodeTypeRecord record);
method process (line 61) | void process(PrivilegeRecord record);
method process (line 67) | void process(WorkspaceRecord record);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterSession.java
class ClusterSession (line 41) | class ClusterSession implements Session {
method ClusterSession (line 53) | public ClusterSession(String userId) {
method isUserId (line 65) | boolean isUserId(String userId) {
method getUserID (line 76) | public String getUserID() {
method getRepository (line 83) | public Repository getRepository() {
method getAttribute (line 90) | public Object getAttribute(String s) {
method getAttributeNames (line 97) | public String[] getAttributeNames() {
method getWorkspace (line 104) | public Workspace getWorkspace() {
method impersonate (line 111) | public Session impersonate(Credentials credentials) throws Unsupported...
method getRootNode (line 118) | public Node getRootNode() throws UnsupportedRepositoryOperationExcepti...
method getNodeByUUID (line 125) | public Node getNodeByUUID(String s) throws UnsupportedRepositoryOperat...
method getItem (line 132) | public Item getItem(String s) throws UnsupportedRepositoryOperationExc...
method itemExists (line 139) | public boolean itemExists(String s) throws UnsupportedRepositoryOperat...
method move (line 146) | public void move(String s, String s1) throws UnsupportedRepositoryOper...
method save (line 154) | public void save() throws UnsupportedRepositoryOperationException {
method refresh (line 161) | public void refresh(boolean b) throws UnsupportedRepositoryOperationEx...
method hasPendingChanges (line 168) | public boolean hasPendingChanges() throws UnsupportedRepositoryOperati...
method getValueFactory (line 175) | public ValueFactory getValueFactory() throws UnsupportedRepositoryOper...
method checkPermission (line 182) | public void checkPermission(String s, String s1) throws UnsupportedRep...
method getImportContentHandler (line 189) | public ContentHandler getImportContentHandler(String s, int i) throws ...
method importXML (line 196) | public void importXML(String s, InputStream inputStream, int i) throws...
method exportSystemView (line 203) | public void exportSystemView(String s, ContentHandler contentHandler, ...
method exportSystemView (line 212) | public void exportSystemView(String s, OutputStream outputStream, bool...
method exportDocumentView (line 221) | public void exportDocumentView(String s, ContentHandler contentHandler...
method exportDocumentView (line 230) | public void exportDocumentView(String s, OutputStream outputStream, bo...
method setNamespacePrefix (line 239) | public void setNamespacePrefix(String s, String s1) throws Unsupported...
method getNamespacePrefixes (line 246) | public String[] getNamespacePrefixes() throws UnsupportedRepositoryOpe...
method getNamespaceURI (line 253) | public String getNamespaceURI(String s) throws UnsupportedRepositoryOp...
method getNamespacePrefix (line 260) | public String getNamespacePrefix(String s) throws UnsupportedRepositor...
method logout (line 267) | public void logout() {
method isLive (line 273) | public boolean isLive() {
method addLockToken (line 280) | public void addLockToken(String s) {
method getLockTokens (line 286) | public String[] getLockTokens() {
method removeLockToken (line 293) | public void removeLockToken(String s) {
method equals (line 299) | public boolean equals(Object obj) {
method hashCode (line 310) | public int hashCode() {
method getAccessControlManager (line 314) | public AccessControlManager getAccessControlManager()
method getNode (line 319) | public Node getNode(String path) throws RepositoryException {
method getNodeByIdentifier (line 323) | public Node getNodeByIdentifier(String identifier)
method getProperty (line 328) | public Property getProperty(String arg0) throws RepositoryException {
method getRetentionManager (line 332) | public RetentionManager getRetentionManager()
method hasCapability (line 337) | public boolean hasCapability(String arg0, Object arg1, Object[] arg2)
method hasPermission (line 342) | public boolean hasPermission(String arg0, String arg1)
method nodeExists (line 347) | public boolean nodeExists(String path) throws RepositoryException {
method propertyExists (line 351) | public boolean propertyExists(String path) throws RepositoryException {
method removeItem (line 355) | public void removeItem(String path) throws RepositoryException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/DefaultClusterOperation.java
class DefaultClusterOperation (line 22) | public class DefaultClusterOperation implements ClusterOperation {
method DefaultClusterOperation (line 40) | public DefaultClusterOperation(ClusterNode clusterNode,
method ended (line 50) | public void ended(boolean successful) {
method getRecord (line 59) | public ClusterRecord getRecord() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/LockEventChannel.java
type LockEventChannel (line 24) | public interface LockEventChannel {
method create (line 37) | ClusterOperation create(NodeId nodeId, boolean deep, String owner);
method create (line 47) | ClusterOperation create(NodeId nodeId);
method setListener (line 54) | void setListener(LockEventListener listener);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/LockEventListener.java
type LockEventListener (line 26) | public interface LockEventListener {
method externalLock (line 37) | void externalLock(NodeId nodeId, boolean isDeep, String lockOwner) thr...
method externalUnlock (line 45) | void externalUnlock(NodeId nodeId) throws RepositoryException;
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/LockRecord.java
class LockRecord (line 26) | public class LockRecord extends ClusterRecord {
method LockRecord (line 63) | public LockRecord(NodeId nodeId, boolean isDeep, String lockOwner,
method LockRecord (line 81) | public LockRecord(NodeId nodeId, Record record, String workspace) {
method LockRecord (line 95) | LockRecord(Record record, String workspace) {
method doRead (line 102) | @Override
method doWrite (line 115) | @Override
method process (line 129) | @Override
method getNodeId (line 139) | public NodeId getNodeId() {
method isLock (line 149) | public boolean isLock() {
method isDeep (line 159) | public boolean isDeep() {
method getUserId (line 169) | @Deprecated
method getOwner (line 179) | public String getOwner() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NamespaceEventChannel.java
type NamespaceEventChannel (line 22) | public interface NamespaceEventChannel {
method remapped (line 31) | void remapped(String oldPrefix, String newPrefix, String uri);
method setListener (line 38) | void setListener(NamespaceEventListener listener);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NamespaceEventListener.java
type NamespaceEventListener (line 24) | public interface NamespaceEventListener {
method externalRemap (line 34) | void externalRemap(String oldPrefix, String newPrefix, String uri)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NamespaceRecord.java
class NamespaceRecord (line 26) | public class NamespaceRecord extends ClusterRecord {
method NamespaceRecord (line 57) | public NamespaceRecord(String oldPrefix, String newPrefix, String uri,
method NamespaceRecord (line 71) | NamespaceRecord(Record record) {
method doRead (line 78) | @Override
method doWrite (line 88) | @Override
method process (line 99) | @Override
method getOldPrefix (line 109) | public String getOldPrefix() {
method getNewPrefix (line 118) | public String getNewPrefix() {
method getUri (line 126) | public String getUri() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NodeTypeEventChannel.java
type NodeTypeEventChannel (line 27) | public interface NodeTypeEventChannel {
method registered (line 34) | void registered(Collection<QNodeTypeDefinition> ntDefs);
method reregistered (line 41) | void reregistered(QNodeTypeDefinition ntDef);
method unregistered (line 48) | void unregistered(Collection<Name> ntNames);
method setListener (line 55) | void setListener(NodeTypeEventListener listener);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NodeTypeEventListener.java
type NodeTypeEventListener (line 30) | public interface NodeTypeEventListener {
method externalRegistered (line 39) | void externalRegistered(Collection<QNodeTypeDefinition> ntDefs)
method externalReregistered (line 50) | void externalReregistered(QNodeTypeDefinition ntDef)
method externalUnregistered (line 60) | void externalUnregistered(Collection<Name> ntNames)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NodeTypeRecord.java
class NodeTypeRecord (line 34) | public class NodeTypeRecord extends ClusterRecord {
method NodeTypeRecord (line 95) | public NodeTypeRecord(Collection collection, boolean isRegister, Recor...
method NodeTypeRecord (line 109) | public NodeTypeRecord(QNodeTypeDefinition ntDef, Record record) {
method NodeTypeRecord (line 123) | NodeTypeRecord(Record record) {
method doRead (line 130) | @Override
method doWrite (line 165) | @Override
method getBitMask (line 188) | private int getBitMask() {
method process (line 203) | @Override
method getOperation (line 213) | public int getOperation() {
method getCollection (line 222) | public Collection getCollection() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/PrivilegeEventChannel.java
type PrivilegeEventChannel (line 26) | public interface PrivilegeEventChannel {
method registeredPrivileges (line 28) | void registeredPrivileges(Collection<PrivilegeDefinition> definitions);
method setListener (line 30) | void setListener(PrivilegeEventListener listener);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/PrivilegeEventListener.java
type PrivilegeEventListener (line 27) | public interface PrivilegeEventListener {
method externalRegisteredPrivileges (line 35) | void externalRegisteredPrivileges(Collection<PrivilegeDefinition> defi...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/PrivilegeRecord.java
class PrivilegeRecord (line 30) | public class PrivilegeRecord extends ClusterRecord {
method PrivilegeRecord (line 42) | protected PrivilegeRecord(Record record) {
method PrivilegeRecord (line 46) | protected PrivilegeRecord(Collection<PrivilegeDefinition> definitions,...
method doRead (line 52) | @Override
method doWrite (line 61) | @Override
method process (line 71) | @Override
method getDefinitions (line 81) | public Collection<PrivilegeDefinition> getDefinitions() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/Update.java
type Update (line 27) | public interface Update {
method setAttribute (line 36) | void setAttribute(String name, Object value);
method getAttribute (line 44) | Object getAttribute(String name);
method getChanges (line 51) | ChangeLog getChanges();
method getEvents (line 59) | List<EventState> getEvents();
method getTimestamp (line 66) | long getTimestamp();
method getUserData (line 73) | String getUserData();
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/UpdateEventChannel.java
type UpdateEventChannel (line 22) | public interface UpdateEventChannel {
method updateCreated (line 30) | void updateCreated(Update update) throws ClusterException;
method updatePrepared (line 38) | void updatePrepared(Update update) throws ClusterException;
method updateCommitted (line 46) | void updateCommitted(Update update, String path);
method updateCancelled (line 53) | void updateCancelled(Update update);
method setListener (line 60) | void setListener(UpdateEventListener listener);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/UpdateEventListener.java
type UpdateEventListener (line 28) | public interface UpdateEventListener {
method externalUpdate (line 39) | void externalUpdate(ChangeLog changes, List<EventState> events, long t...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/WorkspaceEventChannel.java
type WorkspaceEventChannel (line 24) | public interface WorkspaceEventChannel {
method workspaceCreated (line 26) | void workspaceCreated(String workspaceName, ClonedInputSource inputSou...
method setListener (line 28) | void setListener(WorkspaceListener listener);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/WorkspaceListener.java
type WorkspaceListener (line 26) | public interface WorkspaceListener {
method externalWorkspaceCreated (line 35) | void externalWorkspaceCreated(String workspaceName,
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/WorkspaceRecord.java
class WorkspaceRecord (line 32) | public class WorkspaceRecord extends ClusterRecord {
class Action (line 47) | public abstract static class Action {
method getType (line 48) | abstract int getType();
method write (line 50) | abstract void write(Record record) throws JournalException;
method read (line 52) | abstract void read(Record record) throws JournalException;
class CreateWorkspaceAction (line 58) | static final class CreateWorkspaceAction extends Action {
method getType (line 63) | @Override
method CreateWorkspaceAction (line 68) | CreateWorkspaceAction() {
method CreateWorkspaceAction (line 72) | CreateWorkspaceAction(ClonedInputSource inputSource) {
method write (line 78) | @Override
method read (line 103) | @Override
method getInputSource (line 123) | public InputSource getInputSource() {
method WorkspaceRecord (line 141) | protected WorkspaceRecord(String workspace, ClonedInputSource inputSou...
method WorkspaceRecord (line 153) | protected WorkspaceRecord(Record record) {
method doRead (line 157) | @Override
method doWrite (line 176) | @Override
method getActionType (line 193) | public int getActionType() {
method getCreateWorkspaceAction (line 197) | public CreateWorkspaceAction getCreateWorkspaceAction() {
method process (line 201) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/AccessManagerConfig.java
class AccessManagerConfig (line 28) | public class AccessManagerConfig extends BeanConfig {
method AccessManagerConfig (line 36) | public AccessManagerConfig(BeanConfig config) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/BeanConfig.java
class BeanConfig (line 41) | public class BeanConfig {
method BeanConfig (line 117) | public BeanConfig(String className, Properties properties) {
method BeanConfig (line 132) | public BeanConfig(BeanConfig config) {
method setValidate (line 143) | protected void setValidate(boolean validate) {
method setConnectionFactory (line 151) | public void setConnectionFactory(ConnectionFactory connectionFactory) {
method setInstanceFactory (line 159) | public void setInstanceFactory(BeanFactory instanceFactory) {
method getClassName (line 168) | public String getClassName() {
method getParameters (line 177) | public Properties getParameters() {
method newInstance (line 187) | @SuppressWarnings("unchecked")
method getSetters (line 221) | private Map<String, Method> getSetters(Class<?> klass) {
method setProperty (line 238) | private void setProperty(
method getClassLoader (line 295) | public ClassLoader getClassLoader() {
method setClassLoader (line 311) | public void setClassLoader(ClassLoader classLoader) {
method getDefaultClassLoader (line 324) | public static ClassLoader getDefaultClassLoader() {
method setDefaultClassLoader (line 340) | public static void setDefaultClassLoader(ClassLoader classLoader) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/BeanConfigVisitor.java
type BeanConfigVisitor (line 23) | public interface BeanConfigVisitor {
method visit (line 24) | void visit(BeanConfig config);
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/BeanFactory.java
type BeanFactory (line 20) | public interface BeanFactory {
method newInstance (line 21) | Object newInstance(Class<?> klass, BeanConfig config) throws Configura...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ClusterConfig.java
class ClusterConfig (line 28) | public class ClusterConfig implements JournalFactory {
method ClusterConfig (line 57) | public ClusterConfig(String id, long syncDelay, JournalFactory jf) {
method ClusterConfig (line 69) | public ClusterConfig(String id, long syncDelay,
method getId (line 82) | public String getId() {
method getSyncDelay (line 91) | public long getSyncDelay() {
method getStopDelay (line 98) | public long getStopDelay() {
method getJournal (line 110) | public Journal getJournal(NamespaceResolver resolver)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationEntityResolver.java
class ConfigurationEntityResolver (line 58) | public class ConfigurationEntityResolver implements EntityResolver {
method ConfigurationEntityResolver (line 79) | private ConfigurationEntityResolver() {
method resolveEntity (line 173) | public InputSource resolveEntity(String publicId, String systemId)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationErrorHandler.java
class ConfigurationErrorHandler (line 28) | public class ConfigurationErrorHandler implements ErrorHandler {
method error (line 36) | public void error(SAXParseException exception) throws SAXException {
method log (line 40) | private void log(String type, SAXParseException exception) {
method fatalError (line 48) | public void fatalError(SAXParseException exception) throws SAXException {
method warning (line 57) | public void warning(SAXParseException exception) throws SAXException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationParser.java
class ConfigurationParser (line 47) | public class ConfigurationParser {
method ConfigurationParser (line 75) | public ConfigurationParser(Properties variables) {
method getVariables (line 83) | public Properties getVariables() {
method parseBeanConfig (line 107) | protected BeanConfig parseBeanConfig(Element parent, String name)
method parseBeanConfig (line 134) | protected BeanConfig parseBeanConfig(Element element)
method parseParameters (line 159) | protected Properties parseParameters(Element element)
method replaceVariables (line 197) | protected String replaceVariables(String value)
method parseXML (line 218) | protected Element parseXML(InputSource xml) throws ConfigurationExcept...
method getErrorHandler (line 230) | protected ErrorHandler getErrorHandler() {
method getEntityResolver (line 242) | protected EntityResolver getEntityResolver() {
method postParseModificationHook (line 255) | protected Document postParseModificationHook(Document document) {
method parseXML (line 271) | protected Element parseXML(InputSource xml, boolean validate) throws C...
method getElement (line 306) | protected Element getElement(Element parent, String name)
method getElement (line 323) | protected Element getElement(Element parent, String name, boolean requ...
method getElements (line 359) | protected Element[] getElements(Element parent, String name, boolean r...
method getAttribute (line 386) | protected String getAttribute(Element element, String name)
method getAttribute (line 407) | protected String getAttribute(Element element, String name, String def) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ImportConfig.java
class ImportConfig (line 30) | public class ImportConfig {
method ImportConfig (line 39) | public ImportConfig() {
method ImportConfig (line 43) | public ImportConfig(List<BeanConfig> protectedItemImporters) {
method getProtectedItemImporters (line 47) | public List<? extends ProtectedItemImporter> getProtectedItemImporters...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/LoginModuleConfig.java
class LoginModuleConfig (line 30) | public class LoginModuleConfig extends BeanConfig {
method LoginModuleConfig (line 75) | public LoginModuleConfig(BeanConfig config) {
method getLoginModule (line 80) | public LoginModule getLoginModule() throws ConfigurationException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/NoOpConfigVisitor.java
class NoOpConfigVisitor (line 19) | public class NoOpConfigVisitor implements BeanConfigVisitor{
method visit (line 20) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/PersistenceManagerConfig.java
class PersistenceManagerConfig (line 28) | public class PersistenceManagerConfig extends BeanConfig {
method PersistenceManagerConfig (line 36) | public PersistenceManagerConfig(BeanConfig config) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfig.java
class RepositoryConfig (line 81) | public class RepositoryConfig
method install (line 108) | public static RepositoryConfig install(File dir)
method install (line 128) | public static RepositoryConfig install(Properties variables)
method getRepositoryHome (line 162) | public static File getRepositoryHome(Properties variables) {
method install (line 186) | public static RepositoryConfig install(File xml, File dir)
method installRepositorySkeleton (line 193) | private static void installRepositorySkeleton(
method create (line 233) | public static RepositoryConfig create(File dir)
method create (line 251) | public static RepositoryConfig create(File xml, File dir)
method create (line 277) | public static RepositoryConfig create(String file, String home)
method create (line 294) | public static RepositoryConfig create(URI uri, String home)
method create (line 310) | public static RepositoryConfig create(InputStream input, String home)
method create (line 326) | public static RepositoryConfig create(InputSource xml, String home)
method create (line 349) | public static RepositoryConfig create(InputSource xml, Properties vari...
method create (line 369) | public static RepositoryConfig create(RepositoryConfig config) throws ...
method RepositoryConfig (line 492) | public RepositoryConfig(
method init (line 529) | public void init() throws ConfigurationException, IllegalStateException {
method loadWorkspaceConfig (line 625) | private WorkspaceConfig loadWorkspaceConfig(File directory)
method loadWorkspaceConfig (line 665) | private WorkspaceConfig loadWorkspaceConfig(FileSystem fs, String conf...
method addWorkspaceConfig (line 706) | private void addWorkspaceConfig(WorkspaceConfig wc)
method internalCreateWorkspaceConfig (line 735) | private synchronized WorkspaceConfig internalCreateWorkspaceConfig(Str...
method createWorkspaceConfig (line 878) | public WorkspaceConfig createWorkspaceConfig(String name, StringBuffer...
method createWorkspaceConfig (line 902) | public WorkspaceConfig createWorkspaceConfig(String name,
method getHomeDir (line 915) | public String getHomeDir() {
method getFileSystem (line 925) | public FileSystem getFileSystem() throws RepositoryException {
method getAppName (line 936) | @Deprecated
method getAccessManagerConfig (line 947) | @Deprecated
method getLoginModuleConfig (line 959) | @Deprecated
method getSecurityConfig (line 969) | public SecurityConfig getSecurityConfig() {
method getWorkspacesConfigRootDir (line 978) | public String getWorkspacesConfigRootDir() {
method getDefaultWorkspaceName (line 987) | public String getDefaultWorkspaceName() {
method getWorkspaceMaxIdleTime (line 998) | public int getWorkspaceMaxIdleTime() {
method getWorkspaceConfigs (line 1007) | public Collection<WorkspaceConfig> getWorkspaceConfigs() {
method getWorkspaceConfig (line 1018) | public WorkspaceConfig getWorkspaceConfig(String name) {
method getVersioningConfig (line 1027) | public VersioningConfig getVersioningConfig() {
method isSearchEnabled (line 1037) | public boolean isSearchEnabled() {
method getQueryHandler (line 1047) | public QueryHandler getQueryHandler(QueryHandlerContext context)
method getClusterConfig (line 1063) | public ClusterConfig getClusterConfig() {
method getConnectionFactory (line 1073) | public ConnectionFactory getConnectionFactory() {
method getDataStore (line 1084) | public DataStore getDataStore() throws RepositoryException {
method getRepositoryLockMechanism (line 1096) | public RepositoryLockMechanism getRepositoryLockMechanism() throws Rep...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java
class RepositoryConfigurationParser (line 77) | public class RepositoryConfigurationParser extends ConfigurationParser {
method RepositoryConfigurationParser (line 256) | protected RepositoryConfigurationParser(
method RepositoryConfigurationParser (line 267) | public RepositoryConfigurationParser(Properties variables) {
method parseRepositoryConfig (line 321) | public RepositoryConfig parseRepositoryConfig(InputSource xml)
method parseBeanConfig (line 378) | @Override
method parseBeanConfig (line 390) | @Override
method parseSecurityConfig (line 421) | public SecurityConfig parseSecurityConfig(Element security)
method parseSecurityManagerConfig (line 439) | public SecurityManagerConfig parseSecurityManagerConfig(Element security)
method parseAccessManagerConfig (line 483) | public AccessManagerConfig parseAccessManagerConfig(Element security)
method parseLoginModuleConfig (line 501) | public LoginModuleConfig parseLoginModuleConfig(Element security)
method parseWorkspaceConfig (line 562) | public WorkspaceConfig parseWorkspaceConfig(InputSource xml)
method parseWorkspaceConfig (line 577) | protected WorkspaceConfig parseWorkspaceConfig(Element root)
method getQueryHandlerFactory (line 656) | protected QueryHandlerFactory getQueryHandlerFactory(final Element par...
method parseWorkspaceSecurityConfig (line 711) | public WorkspaceSecurityConfig parseWorkspaceSecurityConfig(Element pa...
method parseImportConfig (line 744) | public ImportConfig parseImportConfig(Element parent) throws Configura...
method getISMLockingFactory (line 787) | protected ISMLockingFactory getISMLockingFactory(final Element parent) {
method parseVersioningConfig (line 820) | protected VersioningConfig parseVersioningConfig(Element parent)
method parseClusterConfig (line 861) | protected ClusterConfig parseClusterConfig(Element parent, File home)
method getJournalFactory (line 922) | protected JournalFactory getJournalFactory(
method parseDataSourceConfig (line 964) | protected DataSourceConfig parseDataSourceConfig(Element parent)
method getDataStoreFactory (line 1020) | protected DataStoreFactory getDataStoreFactory(
method getRepositoryLockMechanismFactory (line 1103) | protected RepositoryLockMechanismFactory getRepositoryLockMechanismFac...
method parsePersistenceManagerConfig (line 1128) | protected PersistenceManagerConfig parsePersistenceManagerConfig(
method createSubParser (line 1141) | protected RepositoryConfigurationParser createSubParser(Properties var...
method getFileSystemFactory (line 1157) | protected FileSystemFactory getFileSystemFactory(Element parent, Strin...
method setBeanFactory (line 1175) | public void setBeanFactory(BeanFactory beanFactory) {
method setConfigVisitor (line 1179) | public void setConfigVisitor(BeanConfigVisitor configVisitor) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SearchConfig.java
class SearchConfig (line 34) | public class SearchConfig extends BeanConfig implements FileSystemFactory {
method SearchConfig (line 48) | public SearchConfig(
method getFileSystem (line 61) | public FileSystem getFileSystem() throws RepositoryException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SecurityConfig.java
class SecurityConfig (line 23) | public class SecurityConfig {
method SecurityConfig (line 53) | public SecurityConfig(
method getAppName (line 69) | public String getAppName() {
method getSecurityManagerConfig (line 78) | public SecurityManagerConfig getSecurityManagerConfig() {
method getAccessManagerConfig (line 87) | public AccessManagerConfig getAccessManagerConfig() {
method getLoginModuleConfig (line 97) | public LoginModuleConfig getLoginModuleConfig() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SecurityManagerConfig.java
class SecurityManagerConfig (line 31) | public class SecurityManagerConfig extends BeanConfig {
method SecurityManagerConfig (line 55) | public SecurityManagerConfig(BeanConfig config, String workspaceName,
method SecurityManagerConfig (line 69) | public SecurityManagerConfig(BeanConfig config, String workspaceName,
method getWorkspaceName (line 94) | public String getWorkspaceName() {
method getWorkspaceAccessConfig (line 103) | public BeanConfig getWorkspaceAccessConfig() {
method getUserManagerConfig (line 112) | public UserManagerConfig getUserManagerConfig() {
method getUserIdClass (line 121) | public Class getUserIdClass() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SimpleBeanFactory.java
class SimpleBeanFactory (line 25) | public class SimpleBeanFactory implements BeanFactory {
method newInstance (line 28) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/UserManagerConfig.java
class UserManagerConfig (line 36) | public class UserManagerConfig extends BeanConfig {
method UserManagerConfig (line 47) | public UserManagerConfig(BeanConfig config) {
method UserManagerConfig (line 51) | public UserManagerConfig(BeanConfig config, BeanConfig[] actionConfig) {
method getUserManager (line 79) | public UserManager getUserManager(Class<? extends UserManager> assigna...
method getAuthorizableActions (line 103) | public AuthorizableAction[] getAuthorizableActions() throws Configurat...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/VersioningConfig.java
class VersioningConfig (line 38) | public class VersioningConfig implements FileSystemFactory, ISMLockingFa...
method VersioningConfig (line 68) | public VersioningConfig(String home,
method getHomeDir (line 83) | public File getHomeDir() {
method getFileSystem (line 93) | public FileSystem getFileSystem() throws RepositoryException {
method getPersistenceManagerConfig (line 102) | public PersistenceManagerConfig getPersistenceManagerConfig() {
method getISMLocking (line 112) | public ISMLocking getISMLocking() throws RepositoryException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java
class WorkspaceConfig (line 38) | public class WorkspaceConfig
method WorkspaceConfig (line 107) | public WorkspaceConfig(String home, String name, boolean clustered,
method WorkspaceConfig (line 127) | public WorkspaceConfig(String home, String name, boolean clustered,
method WorkspaceConfig (line 149) | public WorkspaceConfig(String home, String name, boolean clustered, Fi...
method getHomeDir (line 169) | public String getHomeDir() {
method getName (line 178) | public String getName() {
method isClustered (line 188) | public boolean isClustered() {
method getDefaultLockTimeout (line 199) | public long getDefaultLockTimeout() {
method getISMLocking (line 209) | public ISMLocking getISMLocking() throws RepositoryException {
method getFileSystem (line 219) | public FileSystem getFileSystem() throws RepositoryException {
method getPersistenceManagerConfig (line 228) | public PersistenceManagerConfig getPersistenceManagerConfig() {
method isSearchEnabled (line 238) | public boolean isSearchEnabled() {
method getQueryHandler (line 248) | public QueryHandler getQueryHandler(QueryHandlerContext context)
method getSecurityConfig (line 260) | public WorkspaceSecurityConfig getSecurityConfig() {
method getImportConfig (line 267) | public ImportConfig getImportConfig() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceSecurityConfig.java
class WorkspaceSecurityConfig (line 22) | public class WorkspaceSecurityConfig {
method WorkspaceSecurityConfig (line 30) | public WorkspaceSecurityConfig(BeanConfig accessControlProviderConfig) {
method getAccessControlProviderConfig (line 38) | public BeanConfig getAccessControlProviderConfig() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DB2FileSystem.java
class DB2FileSystem (line 46) | public class DB2FileSystem extends DbFileSystem {
method DB2FileSystem (line 51) | public DB2FileSystem() {
method buildSQLStatements (line 65) | protected void buildSQLStatements() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java
class DatabaseFileSystem (line 54) | public abstract class DatabaseFileSystem implements FileSystem {
method DatabaseFileSystem (line 100) | public DatabaseFileSystem() {
method getSchemaObjectPrefix (line 107) | public String getSchemaObjectPrefix() {
method setSchemaObjectPrefix (line 111) | public void setSchemaObjectPrefix(String schemaObjectPrefix) {
method getSchema (line 116) | public String getSchema() {
method setSchema (line 120) | public void setSchema(String schema) {
method isSchemaCheckEnabled (line 127) | public final boolean isSchemaCheckEnabled() {
method setSchemaCheckEnabled (line 134) | public final void setSchemaCheckEnabled(boolean enabled) {
method equals (line 142) | public boolean equals(Object obj) {
method equals (line 154) | private static boolean equals(Object a, Object b) {
method hashCode (line 171) | public int hashCode() {
method init (line 180) | public void init() throws FileSystemException {
method getDataSource (line 214) | protected abstract DataSource getDataSource() throws Exception;
method createConnectionHelper (line 225) | protected ConnectionHelper createConnectionHelper(DataSource dataSrc) ...
method createCheckSchemaOperation (line 236) | protected CheckSchemaOperation createCheckSchemaOperation() {
method close (line 245) | public void close() throws FileSystemException {
method createFolder (line 254) | public void createFolder(String folderPath) throws FileSystemException {
method deleteFile (line 271) | public void deleteFile(String filePath) throws FileSystemException {
method deleteFolder (line 301) | public void deleteFolder(String folderPath) throws FileSystemException {
method exists (line 338) | public boolean exists(String path) throws FileSystemException {
method isFile (line 370) | public boolean isFile(String path) throws FileSystemException {
method isFolder (line 401) | public boolean isFolder(String path) throws FileSystemException {
method lastModified (line 432) | public long lastModified(String path) throws FileSystemException {
method length (line 464) | public long length(String filePath) throws FileSystemException {
method hasChildren (line 496) | public boolean hasChildren(String path) throws FileSystemException {
method list (line 533) | public String[] list(String folderPath) throws FileSystemException {
method listFiles (line 573) | public String[] listFiles(String folderPath) throws FileSystemException {
method listFolders (line 607) | public String[] listFolders(String folderPath) throws FileSystemExcept...
method getInputStream (line 647) | public InputStream getInputStream(String filePath) throws FileSystemEx...
method getOutputStream (line 688) | public OutputStream getOutputStream(final String filePath)
method buildSQLStatements (line 777) | protected void buildSQLStatements() {
method verifyRootExists (line 873) | protected void verifyRootExists() throws Exception {
method createDeepFolder (line 906) | protected void createDeepFolder(String folderPath)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DbFileSystem.java
class DbFileSystem (line 109) | public class DbFileSystem extends DatabaseFileSystem implements Database...
method setConnectionFactory (line 141) | public void setConnectionFactory(ConnectionFactory connnectionFactory) {
method getUrl (line 146) | public String getUrl() {
method setUrl (line 150) | public void setUrl(String url) {
method getUser (line 154) | public String getUser() {
method setUser (line 158) | public void setUser(String user) {
method getPassword (line 162) | public String getPassword() {
method setPassword (line 166) | public void setPassword(String password) {
method getDriver (line 170) | public String getDriver() {
method setDriver (line 174) | public void setDriver(String driver) {
method getDataSourceName (line 178) | public String getDataSourceName() {
method setDataSourceName (line 182) | public void setDataSourceName(String dataSourceName) {
method equals (line 190) | public boolean equals(Object obj) {
method hashCode (line 214) | public int hashCode() {
method getDataSource (line 223) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DerbyFileSystem.java
class DerbyFileSystem (line 56) | public class DerbyFileSystem extends DbFileSystem {
method DerbyFileSystem (line 66) | public DerbyFileSystem() {
method getShutdownOnClose (line 76) | public boolean getShutdownOnClose() {
method setShutdownOnClose (line 80) | public void setShutdownOnClose(boolean shutdownOnClose) {
method createConnectionHelper (line 89) | @Override
method close (line 97) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/JNDIDatabaseFileSystem.java
class JNDIDatabaseFileSystem (line 38) | @Deprecated
method getDataSourceLocation (line 53) | public String getDataSourceLocation() {
method setDataSourceLocation (line 62) | public void setDataSourceLocation(String dataSourceLocation) {
method getDataSource (line 71) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/MSSqlFileSystem.java
class MSSqlFileSystem (line 52) | public class MSSqlFileSystem extends DbFileSystem {
method getTableSpace (line 64) | public String getTableSpace() {
method setTableSpace (line 72) | public void setTableSpace(String tableSpace) {
method MSSqlFileSystem (line 83) | public MSSqlFileSystem() {
method createCheckSchemaOperation (line 92) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/Oracle9FileSystem.java
class Oracle9FileSystem (line 27) | public class Oracle9FileSystem extends OracleFileSystem {
method createConnectionHelper (line 32) | @Override
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java
class OracleFileSystem (line 58) | public class OracleFileSystem extends DbFileSystem {
method OracleFileSystem (line 84) | public OracleFileSystem() {
method getTablespace (line 98) | public String getTablespace() {
method setTablespace (line 106) | public void setTablespace(String tablespaceName) {
method getIndexTablespace (line 114) | public String getIndexTablespace() {
method setIndexTablespace (line 122) | public void setIndexTablespace(String tablespaceName) {
method buildTablespaceClause (line 135) | private String buildTablespaceClause(String tablespaceName) {
method createConnectionHelper (line 148) | @Override
method createCheckSchemaOperation (line 158) | @Override
method buildSQLStatements (line 187) | protected void buildSQLStatements() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFile.java
class MemoryFile (line 22) | public class MemoryFile extends MemoryFileSystemEntry {
method isFolder (line 26) | public boolean isFolder() {
method getData (line 30) | protected byte[] getData() {
method setData (line 34) | protected void setData(byte[] data) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystem.java
class MemoryFileSystem (line 36) | public class MemoryFileSystem implements FileSystem {
method close (line 40) | public void close() {
method getFile (line 43) | private MemoryFile getFile(String filePath) throws FileSystemException {
method createFolder (line 49) | public void createFolder(String folderPath) throws FileSystemException {
method createFolderInternal (line 67) | private void createFolderInternal(String folderPath) {
method deleteFile (line 72) | public void deleteFile(String filePath) throws FileSystemException {
method deleteFolder (line 77) | public void deleteFolder(String folderPath) throws FileSystemException {
method exists (line 90) | public boolean exists(String path) throws FileSystemException {
method getInputStream (line 94) | public InputStream getInputStream(String filePath)
method assertIsFolder (line 103) | private void assertIsFolder(String folderPath) throws FileSystemExcept...
method assertIsFile (line 111) | private void assertIsFile(String filePath) throws FileSystemException {
method getOutputStream (line 117) | public OutputStream getOutputStream(String filePath)
method hasChildren (line 145) | public boolean hasChildren(String path) throws FileSystemException {
method init (line 150) | public void init() {
method isFile (line 154) | public boolean isFile(String path) throws FileSystemException {
method getEntry (line 158) | private MemoryFileSystemEntry getEntry(String path) {
method assertExistence (line 162) | private void assertExistence(String path) throws FileSystemException {
method isFolder (line 168) | public boolean isFolder(String path) throws FileSystemException {
method lastModified (line 176) | public long lastModified(String path) throws FileSystemException {
method length (line 181) | public long length(String filePath) throws FileSystemException {
method list (line 186) | public String[] list(String folderPath) {
method listFiles (line 199) | public String[] listFiles(String folderPath) {
method listFolders (line 203) | public String[] listFolders(String folderPath) {
method listInternal (line 207) | private String[] listInternal(String folderPath, boolean isFolder) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystemEntry.java
class MemoryFileSystemEntry (line 22) | public abstract class MemoryFileSystemEntry {
method isFolder (line 26) | public abstract boolean isFolder();
method MemoryFileSystemEntry (line 28) | public MemoryFileSystemEntry() {
method getLastModified (line 32) | public long getLastModified() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFolder.java
class MemoryFolder (line 22) | public class MemoryFolder extends MemoryFileSystemEntry {
method isFolder (line 24) | public boolean isFolder() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/gc/GarbageCollector.java
class GarbageCollector (line 88) | public class GarbageCollector implements DataStoreGarbageCollector {
class ScanNodeIdListTask (line 90) | private class ScanNodeIdListTask implements Callable<Void> {
method ScanNodeIdListTask (line 97) | public ScanNodeIdListTask(int split, List<NodeId> nodeList, Persiste...
method call (line 104) | public Void call() throws Exception {
method GarbageCollector (line 164) | public GarbageCollector(RepositoryContext context,
method setSleepBetweenNodes (line 174) | public void setSleepBetweenNodes(long millis) {
method getSleepBetweenNodes (line 178) | public long getSleepBetweenNodes() {
method getMinSplitSize (line 182) | public long getMinSplitSize() {
method setMinSplitSize (line 186) | public void setMinSplitSize(long minSplitSize) {
method getConcurrentThreadSize (line 190) | public int getConcurrentThreadSize() {
method setConcurrentThreadSize (line 194) | public void setConcurrentThreadSize(int concurrentThreadSize) {
method setTestDelay (line 203) | public void setTestDelay(int testDelay) {
method setMarkEventListener (line 207) | public void setMarkEventListener(MarkEventListener callback) {
method mark (line 211) | public void mark() throws RepositoryException {
method scanNodes (line 238) | private void scanNodes(SessionImpl session) throws RepositoryException {
method setPersistenceManagerScan (line 249) | public void setPersistenceManagerScan(boolean allow) {
method isPersistenceManagerScan (line 253) | public boolean isPersistenceManagerScan() {
method scanPersistenceManagersByNodeInfos (line 257) | private void scanPersistenceManagersByNodeInfos() throws RepositoryExc...
method scanPersistenceManagersByNodeIds (line 300) | private void scanPersistenceManagersByNodeIds() throws RepositoryExcep...
method scanNodeIdList (line 331) | private void scanNodeIdList(int split, List<NodeId> nodeList, Persiste...
method splitIntoParts (line 366) | private <T> List<List<T>> splitIntoParts(List<T> ls, int parts) {
method stopScan (line 388) | public void stopScan() throws RepositoryException {
method sweep (line 402) | public int sweep() throws RepositoryException {
method getDataStore (line 415) | public DataStore getDataStore() {
method recurse (line 419) | void recurse(final Node n, long sleep) throws RepositoryException {
method rememberNode (line 463) | private void rememberNode(String path) {
method checkLengths (line 499) | private static void checkLengths(long... lengths) throws RepositoryExc...
method close (line 507) | public void close() {
method checkObservationException (line 520) | private void checkObservationException() throws RepositoryException {
method onObservationException (line 530) | void onObservationException(Exception e) {
method finalize (line 541) | protected void finalize() throws Throwable {
class Listener (line 550) | class Listener implements SynchronousEventListener {
method Listener (line 556) | Listener(GarbageCollector gc, Session session)
method stop (line 567) | void stop() throws RepositoryException {
method onEvent (line 572) | public void onEvent(EventIterator events) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/ItemId.java
type ItemId (line 29) | public interface ItemId extends Serializable {
method denotesNode (line 39) | boolean denotesNode();
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/NodeId.java
class NodeId (line 25) | public class NodeId implements ItemId, Comparable<NodeId> {
method valueOf (line 50) | public static NodeId valueOf(String uuid) throws IllegalArgumentExcept...
method NodeId (line 74) | public NodeId(long msb, long lsb) {
method NodeId (line 87) | public NodeId(byte[] bytes)
method NodeId (line 114) | public NodeId(UUID uuid) {
method NodeId (line 124) | public NodeId(String uuidString) throws IllegalArgumentException {
method randomId (line 164) | public static NodeId randomId() {
method getMostSignificantBits (line 179) | public long getMostSignificantBits() {
method getLeastSignificantBits (line 188) | public long getLeastSignificantBits() {
method getRawBytes (line 197) | public byte[] getRawBytes() {
method denotesNode (line 215) | public boolean denotesNode() {
method compareTo (line 228) | public int compareTo(NodeId that) {
method toString (line 251) | public String toString() {
method hex4 (line 268) | private static final void hex4(char[] c, int index, long value) {
method equals (line 284) | public boolean equals(Object that) {
method hashCode (line 295) | public int hashCode() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/NodeIdFactory.java
class NodeIdFactory (line 30) | public class NodeIdFactory {
method NodeIdFactory (line 48) | public NodeIdFactory(String repositoryHome) {
method setCacheSize (line 52) | public void setCacheSize(int cacheSize) {
method open (line 56) | public void open() throws RepositoryException {
method close (line 105) | public void close() throws RepositoryException {
method store (line 111) | private void store(long lsb) throws RepositoryException {
method newNodeId (line 132) | public NodeId newNodeId() throws RepositoryException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/PropertyId.java
class PropertyId (line 27) | public class PropertyId implements ItemId {
method PropertyId (line 47) | public PropertyId(NodeId parentId, Name propName) {
method denotesNode (line 70) | public boolean denotesNode() {
method getParentId (line 79) | public NodeId getParentId() {
method getName (line 88) | public Name getName() {
method valueOf (line 104) | public static PropertyId valueOf(String s) throws IllegalArgumentExcep...
method equals (line 122) | public boolean equals(Object obj) {
method toString (line 139) | public String toString() {
method hashCode (line 149) | public int hashCode() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/SeededSecureRandom.java
class SeededSecureRandom (line 28) | class SeededSecureRandom extends SecureRandom implements Runnable {
method getInstance (line 46) | public static Random getInstance() {
method SeededSecureRandom (line 65) | private SeededSecureRandom() {
method run (line 106) | public void run() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jdkcompat/Java23Subject.java
class Java23Subject (line 35) | public class Java23Subject {
method getSubject (line 45) | public static Subject getSubject() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/BindableRepository.java
class BindableRepository (line 61) | public class BindableRepository extends AbstractRepository
method BindableRepository (line 104) | public BindableRepository(Reference reference) throws RepositoryExcept...
method init (line 116) | private void init() throws RepositoryException {
method createRepository (line 136) | protected JackrabbitRepository createRepository()
method getRepository (line 150) | protected JackrabbitRepository getRepository() {
method login (line 160) | public Session login(Credentials credentials, String workspaceName)
method getDescriptor (line 169) | public String getDescriptor(String key) {
method getDescriptorKeys (line 177) | public String[] getDescriptorKeys() {
method getDescriptorValue (line 185) | public Value getDescriptorValue(String key) {
method getDescriptorValues (line 193) | public Value[] getDescriptorValues(String key) {
method isSingleValueDescriptor (line 201) | public boolean isSingleValueDescriptor(String key) {
method isStandardDescriptor (line 209) | public boolean isStandardDescriptor(String key) {
method getReference (line 222) | public Reference getReference() {
method readObject (line 239) | private void readObject(ObjectInputStream in)
method shutdown (line 257) | public void shutdown() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/BindableRepositoryFactory.java
class BindableRepositoryFactory (line 35) | public class BindableRepositoryFactory implements ObjectFactory {
method getObjectInstance (line 46) | public Object getObjectInstance(
method removeReference (line 66) | static void removeReference(Reference reference) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/RegistryHelper.java
class RegistryHelper (line 35) | public class RegistryHelper {
method RegistryHelper (line 40) | private RegistryHelper() {
method registerRepository (line 59) | public static void registerRepository(Context ctx, String name,
method unregisterRepository (line 98) | public static void unregisterRepository(Context ctx, String name)
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/provider/DummyContext.java
class DummyContext (line 42) | class DummyContext extends Hashtable implements Context, Cloneable {
method DummyContext (line 51) | DummyContext() {
method DummyContext (line 60) | DummyContext(Hashtable environment) {
method getComponentName (line 68) | protected String getComponentName(Name name) throws NamingException {
method getBoundObject (line 80) | protected Object getBoundObject(String name) throws NamingException {
method clone (line 89) | public Object clone() {
method bind (line 99) | public void bind(Name name, Object obj) throws NamingException {
method bind (line 113) | public void bind(String name, Object obj) throws NamingException {
method close (line 120) | public void close() throws NamingException {
method composeName (line 126) | public Name composeName(Name name, Name prefix) throws NamingException {
method composeName (line 134) | public String composeName(String name, String prefix) throws NamingExc...
method createSubcontext (line 141) | public Context createSubcontext(Name name) throws NamingException {
method createSubcontext (line 148) | public Context createSubcontext(String name) throws NamingException {
method destroySubcontext (line 155) | public void destroySubcontext(Name name) throws NamingException {
method destroySubcontext (line 162) | public void destroySubcontext(String name) throws NamingException {
method getEnvironment (line 169) | public Hashtable getEnvironment() throws NamingException {
method getNameInNamespace (line 176) | public String getNameInNamespace() throws NamingException {
method getNameParser (line 183) | public NameParser getNameParser(Name name) throws NamingException {
method getNameParser (line 190) | public NameParser getNameParser(String name) throws NamingException {
method list (line 197) | public NamingEnumeration list(Name name) throws NamingException {
method list (line 213) | public NamingEnumeration list(String name) throws NamingException {
method listBindings (line 220) | public NamingEnumeration listBindings(Name name) throws NamingException {
method listBindings (line 236) | public NamingEnumeration listBindings(String name) throws NamingExcept...
method lookup (line 243) | public Object lookup(Name name) throws NamingException {
method lookup (line 254) | public Object lookup(String name) throws NamingException {
method lookupLink (line 261) | public Object lookupLink(Name name) throws NamingException {
method lookupLink (line 269) | public Object lookupLink(String name) throws NamingException {
method rebind (line 276) | public void rebind(Name name, Object obj) throws NamingException {
method rebind (line 287) | public void rebind(String name, Object obj) throws NamingException {
method removeFromEnvironment (line 294) | public Object removeFromEnvironment(String propName) throws NamingExce...
method rename (line 301) | public void rename(Name oldName, Name newName) throws NamingException {
method rename (line 314) | public void rename(String oldName, String newName) throws NamingExcept...
method unbind (line 321) | public void unbind(Name name) throws NamingException {
method unbind (line 332) | public void unbind(String name) throws NamingException {
method addToEnvironment (line 339) | public Object addToEnvironment(String propName, Object propVal) throws...
class FlatNameParser (line 347) | static class FlatNameParser implements NameParser {
method parse (line 359) | public Name parse(String name) throws NamingException {
class NamingEnum (line 367) | class NamingEnum implements NamingEnumeration {
method NamingEnum (line 371) | NamingEnum(Hashtable bindings) {
method hasMoreElements (line 376) | public boolean hasMoreElements() {
method hasMore (line 380) | public boolean hasMore() throws NamingException {
method next (line 384) | public Object next() throws NamingException {
method nextElement (line 388) | public Object nextElement() {
method close (line 394) | public void close() throws NamingException {
class BindingEnum (line 401) | class BindingEnum extends NamingEnum {
method BindingEnum (line 403) | BindingEnum(Hashtable bindings) {
method nextElement (line 407) | public Object nextElement() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/provider/DummyInitialContextFactory.java
class DummyInitialContextFactory (line 28) | public class DummyInitialContextFactory implements InitialContextFactory {
method getInitialContext (line 38) | public Context getInitialContext(Hashtable environment) throws NamingE...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java
class AbstractJournal (line 36) | public abstract class AbstractJournal implements Journal {
method init (line 96) | public void init(String id, NamespaceResolver resolver) throws Journal...
method register (line 105) | public void register(RecordConsumer consumer) throws JournalException {
method unregister (line 120) | public boolean unregister(RecordConsumer consumer) {
method getConsumer (line 134) | public RecordConsumer getConsumer(String identifier) {
method getProducer (line 143) | public RecordProducer getProducer(String identifier) {
method createProducer (line 160) | protected RecordProducer createProducer(String identifier) {
method getMinimalRevision (line 167) | private long getMinimalRevision() {
method sync (line 184) | public void sync(boolean startup) throws JournalException {
method internalSync (line 215) | private void internalSync(boolean startup) throws JournalException {
method doSync (line 230) | protected void doSync(long startRevision, boolean startup) throws Jour...
method doSync (line 243) | protected void doSync(long startRevision) throws JournalException {
method syncAgainOnNewRecords (line 283) | protected boolean syncAgainOnNewRecords() {
method lockAndSync (line 293) | public void lockAndSync() throws JournalException {
method internalLockAndSync (line 308) | private void internalLockAndSync() throws JournalException {
method unlock (line 345) | public void unlock(boolean successful) {
method doLock (line 361) | protected abstract void doLock() throws JournalException;
method appending (line 370) | protected void appending(AppendRecord record) {
method append (line 384) | protected abstract void append(AppendRecord record, InputStream in, in...
method doUnlock (line 393) | protected abstract void doUnlock(boolean successful);
method getId (line 400) | public String getId() {
method getResolver (line 409) | public NamespaceResolver getResolver() {
method getNamePathResolver (line 418) | public NamePathResolver getNamePathResolver() {
method setRepositoryHome (line 428) | public void setRepositoryHome(File repHome) {
method setInternalVersionManager (line 435) | public void setInternalVersionManager(InternalVersionManagerImpl inter...
method getRepositoryHome (line 445) | public File getRepositoryHome() {
method getRevision (line 456) | public String getRevision() {
method setRevision (line 463) | public void setRevision(String revision) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java
class AbstractRecord (line 52) | public abstract class AbstractRecord implements Record {
method AbstractRecord (line 84) | public AbstractRecord(NamespaceResolver nsResolver, NamePathResolver r...
method writeQName (line 92) | public void writeQName(Name name) throws JournalException {
method writePathElement (line 104) | public void writePathElement(Path path) throws JournalException {
method writePath (line 112) | public void writePath(Path path) throws JournalException {
method writeNodeId (line 124) | public void writeNodeId(NodeId nodeId) throws JournalException {
method writePropertyId (line 143) | public void writePropertyId(PropertyId propertyId) throws JournalExcep...
method writeNodeTypeDef (line 151) | public void writeNodeTypeDef(QNodeTypeDefinition ntd) throws JournalEx...
method writePrivilegeDef (line 168) | public void writePrivilegeDef(PrivilegeDefinition privilegeDefinition)...
method readQName (line 196) | public Name readQName() throws JournalException {
method readPathElement (line 211) | public Path readPathElement() throws JournalException {
method readPath (line 232) | public Path readPath() throws JournalException {
method readNodeId (line 250) | public NodeId readNodeId() throws JournalException {
method readPropertyId (line 274) | public PropertyId readPropertyId() throws JournalException {
method readNodeTypeDef (line 281) | public QNodeTypeDefinition readNodeTypeDef() throws JournalException {
method readPrivilegeDef (line 304) | public PrivilegeDefinition readPrivilegeDef() throws JournalException {
method getOrCreateIndex (line 328) | private int getOrCreateIndex(NodeId nodeId) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AppendRecord.java
class AppendRecord (line 36) | public class AppendRecord extends AbstractRecord {
method AppendRecord (line 109) | public AppendRecord(AbstractJournal journal, String producerId) {
method getJournalId (line 123) | public String getJournalId() {
method getProducerId (line 130) | public String getProducerId() {
method getRevision (line 137) | public long getRevision() {
method setRevision (line 146) | public void setRevision(long revision) {
method writeByte (line 153) | public void writeByte(int n) throws JournalException {
method writeChar (line 167) | public void writeChar(char c) throws JournalException {
method writeBoolean (line 181) | public void writeBoolean(boolean b) throws JournalException {
method writeInt (line 195) | public void writeInt(int n) throws JournalException {
method writeLong (line 209) | public void writeLong(long n) throws JournalException {
method writeString (line 223) | public void writeString(String s) throws JournalException {
method write (line 242) | public void write(byte[] b) throws JournalException {
method update (line 256) | public long update() throws JournalException {
method cancelUpdate (line 287) | public void cancelUpdate() {
method openInput (line 298) | private InputStream openInput() throws JournalException {
method checkOutput (line 316) | private void checkOutput() throws JournalException {
method closeOutput (line 349) | private void closeOutput() throws JournalException {
method dispose (line 369) | private void dispose() {
method readByte (line 389) | public byte readByte() throws JournalException {
method readChar (line 393) | public char readChar() throws JournalException {
method readBoolean (line 397) | public boolean readBoolean() throws JournalException {
method readInt (line 401) | public int readInt() throws JournalException {
method readLong (line 405) | public long readLong() throws JournalException {
method readString (line 409) | public String readString() throws JournalException {
method readFully (line 413) | public void readFully(byte[] b) throws JournalException {
method unsupported (line 417) | private JournalException unsupported() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java
class DatabaseJournal (line 81) | public class DatabaseJournal extends AbstractJournal implements Database...
method DatabaseJournal (line 236) | public DatabaseJournal() {
method setConnectionFactory (line 244) | public void setConnectionFactory(ConnectionFactory connnectionFactory) {
method init (line 251) | public void init(String id, NamespaceResolver resolver)
method getDataSource (line 283) | private DataSource getDataSource() throws Exception {
method createConnectionHelper (line 300) | protected ConnectionHelper createConnectionHelper(DataSource dataSrc) ...
method createCheckSchemaOperation (line 311) | protected CheckSchemaOperation createCheckSchemaOperation() {
method init (line 326) | protected void init() throws JournalException {
method initInstanceRevisionAndJanitor (line 360) | protected void initInstanceRevisionAndJanitor() throws Exception {
method getInstanceRevision (line 390) | public InstanceRevision getInstanceRevision() throws JournalException {
method getDatabaseTypeFromURL (line 402) | private static String getDatabaseTypeFromURL(String url) throws Illega...
method getRecords (line 416) | public RecordIterator getRecords(long startRevision) throws JournalExc...
method getRecords (line 428) | public RecordIterator getRecords() throws JournalException {
method doSync (line 448) | @Override
method doLock (line 475) | protected void doLock() throws JournalException {
method doUnlock (line 507) | protected void doUnlock(boolean successful) {
method startBatch (line 511) | private void startBatch() throws SQLException {
method endBatch (line 517) | private void endBatch(boolean successful) {
method appending (line 532) | protected void appending(AppendRecord record) {
method append (line 541) | protected void append(AppendRecord record, InputStream in, int length)
method close (line 557) | public void close() {
method checkLocalRevisionSchema (line 569) | private void checkLocalRevisionSchema() throws Exception {
method buildSQLStatements (line 598) | protected void buildSQLStatements() {
method getDriver (line 630) | public String getDriver() {
method getUrl (line 634) | public String getUrl() {
method getDatabaseType (line 643) | public String getDatabaseType() {
method getSchema (line 654) | @Deprecated
method getSchemaObjectPrefix (line 659) | public String getSchemaObjectPrefix() {
method getUser (line 663) | public String getUser() {
method getPassword (line 667) | public String getPassword() {
method getJanitorEnabled (line 671) | public boolean getJanitorEnabled() {
method getJanitorSleep (line 675) | public int getJanitorSleep() {
method getJanitorFirstRunHourOfDay (line 679) | public int getJanitorFirstRunHourOfDay() {
method setDriver (line 686) | public void setDriver(String driver) {
method setUrl (line 690) | public void setUrl(String url) {
method setDatabaseType (line 699) | public void setDatabaseType(String databaseType) {
method setSchema (line 710) | @Deprecated
method setSchemaObjectPrefix (line 715) | public void setSchemaObjectPrefix(String schemaObjectPrefix) {
method setUser (line 719) | public void setUser(String user) {
method setPassword (line 723) | public void setPassword(String password) {
method setJanitorEnabled (line 727) | public void setJanitorEnabled(boolean enabled) {
method setJanitorSleep (line 731) | public void setJanitorSleep(int sleep) {
method setJanitorFirstRunHourOfDay (line 735) | public void setJanitorFirstRunHourOfDay(int hourOfDay) {
method getDataSourceName (line 746) | public String getDataSourceName() {
method setDataSourceName (line 750) | public void setDataSourceName(String dataSourceName) {
method isSchemaCheckEnabled (line 757) | public final boolean isSchemaCheckEnabled() {
method setSchemaCheckEnabled (line 764) | public final void setSchemaCheckEnabled(boolean enabled) {
class DatabaseRevision (line 773) | public class DatabaseRevision implements InstanceRevision {
method init (line 793) | protected synchronized long init(long revision) throws JournalExcept...
method get (line 821) | public synchronized long get() {
method set (line 828) | public synchronized void set(long localRevision) throws JournalExcep...
method close (line 844) | public void close() {
class RevisionTableJanitor (line 854) | public class RevisionTableJanitor implements Runnable {
method run (line 859) | public void run() {
method cleanUpOldRevisions (line 879) | protected void cleanUpOldRevisions() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseRecordIterator.java
class DatabaseRecordIterator (line 33) | class DatabaseRecordIterator implements RecordIterator {
method DatabaseRecordIterator (line 73) | public DatabaseRecordIterator(ResultSet rs, NamespaceResolver resolver...
method hasNext (line 82) | public boolean hasNext() {
method nextRecord (line 104) | public Record nextRecord() throws NoSuchElementException, JournalExcep...
method close (line 119) | public void close() {
method fetchRecord (line 135) | private void fetchRecord() throws SQLException {
method close (line 152) | private static void close(ReadRecord record) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DefaultRecordProducer.java
class DefaultRecordProducer (line 22) | public class DefaultRecordProducer implements RecordProducer {
method DefaultRecordProducer (line 40) | public DefaultRecordProducer(AbstractJournal journal, String id) {
method append (line 48) | public Record append() throws JournalException {
method createRecord (line 69) | protected AppendRecord createRecord() throws JournalException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileJournal.java
class FileJournal (line 43) | public class FileJournal extends AbstractJournal {
method init (line 108) | public void init(String id, NamespaceResolver resolver) throws Journal...
method getGlobalRevision (line 151) | protected long getGlobalRevision() throws JournalException {
method getRecords (line 158) | public RecordIterator getRecords(long startRevision)
method getRecords (line 178) | public RecordIterator getRecords() throws JournalException {
method doLock (line 204) | protected void doLock() throws JournalException {
method append (line 211) | protected void append(AppendRecord record, InputStream in, int length)
method doUnlock (line 237) | protected void doUnlock(boolean successful) {
method close (line 244) | public void close() {
method getInstanceRevision (line 250) | public InstanceRevision getInstanceRevision() throws JournalException {
method getDirectory (line 257) | public String getDirectory() {
method getBasename (line 261) | public String getBasename() {
method getMaximumSize (line 265) | public int getMaximumSize() {
method setDirectory (line 272) | public void setDirectory(String directory) {
method setBasename (line 276) | public void setBasename(String basename) {
method setMaximumSize (line 280) | public void setMaximumSize(int maximumSize) {
method rotateLogs (line 290) | private void rotateLogs() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordIterator.java
class FileRecordIterator (line 30) | public class FileRecordIterator implements RecordIterator {
method FileRecordIterator (line 74) | public FileRecordIterator(File[] logFiles, long startRevision, long st...
method hasNext (line 87) | public boolean hasNext() {
method nextRecord (line 94) | public Record nextRecord() throws NoSuchElementException, JournalExcep...
method close (line 139) | public void close() {
method getRecordLog (line 152) | private FileRecordLog getRecordLog(long revision) throws IOException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java
class FileRecordLog (line 68) | public class FileRecordLog {
method FileRecordLog (line 142) | public FileRecordLog(File logFile) throws IOException {
method init (line 165) | public void init(long previousRevision) throws IOException {
method contains (line 190) | public boolean contains(long revision) {
method isNew (line 200) | public boolean isNew() {
method exceeds (line 207) | public boolean exceeds(long size) {
method seek (line 218) | public void seek(long revision) throws IOException {
method skip (line 236) | private void skip(long n) throws IOException {
method read (line 258) | public ReadRecord read(NamespaceResolver resolver, NamePathResolver np...
method append (line 279) | public long append(String journalId, String producerId, InputStream in...
method getPreviousRevision (line 309) | public long getPreviousRevision() {
method getLastRevision (line 318) | public long getLastRevision() {
method close (line 325) | public void close() {
method readHeader (line 343) | private void readHeader(DataInputStream in) throws IOException {
method writeHeader (line 370) | private void writeHeader(DataOutputStream out) throws IOException {
method close (line 379) | private static void close(InputStream in) {
method close (line 391) | private static void close(OutputStream out) {
method toHexString (line 403) | private static String toHexString(byte[] b) {
method utfLength (line 420) | private static int utfLength(String s) {
class DataBuffer (line 441) | private static final class DataBuffer extends DataOutputStream {
method DataBuffer (line 443) | public DataBuffer() {
method copy (line 455) | public void copy(OutputStream out) throws IOException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRevision.java
class FileRevision (line 29) | public class FileRevision implements InstanceRevision {
method FileRevision (line 64) | public FileRevision(File file, boolean sync) throws JournalException {
method get (line 87) | public synchronized long get() throws JournalException {
method set (line 106) | public synchronized void set(long value) throws JournalException {
method close (line 125) | public synchronized void close() {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/InstanceRevision.java
type InstanceRevision (line 22) | public interface InstanceRevision {
method get (line 30) | long get() throws JournalException;
method set (line 38) | void set(long value) throws JournalException;
method close (line 43) | void close();
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/JNDIDatabaseJournal.java
class JNDIDatabaseJournal (line 41) | @Deprecated
method getDataSourceLocation (line 56) | public String getDataSourceLocation() {
method setDataSourceLocation (line 65) | public void setDataSourceLocation(String dataSourceLocation) {
method getConnection (line 79) | protected Connection getConnection() throws SQLException {
method init (line 95) | protected void init() throws JournalException {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Journal.java
type Journal (line 24) | public interface Journal {
method init (line 33) | void init(String id, NamespaceResolver resolver) throws JournalException;
method register (line 41) | void register(RecordConsumer consumer) throws JournalException;
method unregister (line 50) | boolean unregister(RecordConsumer consumer);
method sync (line 65) | void sync(boolean startup) throws JournalException;
method getProducer (line 74) | RecordProducer getProducer(String identifier) throws JournalException;
method close (line 79) | void close();
method getInstanceRevision (line 87) | InstanceRevision getInstanceRevision() throws JournalException;
method getRecords (line 96) | RecordIterator getRecords(long startRevision)
method getRecords (line 105) | RecordIterator getRecords() throws JournalException;
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/JournalException.java
class JournalException (line 22) | public class JournalException extends Exception {
method JournalException (line 31) | public JournalException(String message) {
method JournalException (line 43) | public JournalException(String message, Throwable rootCause) {
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/JournalFactory.java
type JournalFactory (line 28) | public interface JournalFactory {
method getJournal (line 38) | Journal getJournal(NamespaceResolver resolver) throws RepositoryExcept...
FILE: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/LockableFileRevision.java
class LockableFileRevision (line 30) | class LockableFileRevision {
method LockableFileRevision (line 62) | public LockableFileRevision(File file) {
method lock (line 80) | public synchronized void lock(boolean shared) throws JournalException {
method unlock (line 106) | public synchronized void unlock() {
method get (line 134) | public long get() throws JournalException {
method se
Copy disabled (too large)
Download .json
Condensed preview — 3373 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (25,155K chars).
[
{
"path": ".asf.yaml",
"chars": 1107,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE f"
},
{
"path": ".github/workflows/build.yml",
"chars": 4714,
"preview": "# ~ Licensed to the Apache Software Foundation (ASF) under one\n# ~ or more contributor license agreements. See the NO"
},
{
"path": ".gitignore",
"chars": 61,
"preview": "target\n.classpath\n.project\n.settings\n*.iml\n*.ipr\n*.iws\n.idea\n"
},
{
"path": ".mvn/README.md",
"chars": 107,
"preview": "Used for determining [`maven.multiModuleProjectDirectory`](https://issues.apache.org/jira/browse/MNG-5786)."
},
{
"path": "LICENSE.txt",
"chars": 14349,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "NOTICE.txt",
"chars": 248,
"preview": "Apache Jackrabbit\nCopyright 2014 The Apache Software Foundation\n\nThis product includes software developed at\nThe Apache "
},
{
"path": "README.txt",
"chars": 2496,
"preview": "=============================================================\nWelcome to Apache Jackrabbit <http://jackrabbit.apache.or"
},
{
"path": "RELEASE-NOTES.txt",
"chars": 3249,
"preview": "Release Notes -- Apache Jackrabbit -- Version 2.23.4-beta\n\nIntroduction\n------------\n\nThis is Apache Jackrabbit(TM) 2.23"
},
{
"path": "assembly.xml",
"chars": 1121,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOTIC"
},
{
"path": "examples/jackrabbit-firsthops/pom.xml",
"chars": 2659,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the N"
},
{
"path": "examples/jackrabbit-firsthops/src/main/java/org/apache/jackrabbit/firsthops/FirstHop.java",
"chars": 1822,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "examples/jackrabbit-firsthops/src/main/java/org/apache/jackrabbit/firsthops/SecondHop.java",
"chars": 2215,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "examples/jackrabbit-firsthops/src/main/java/org/apache/jackrabbit/firsthops/ThirdHop.java",
"chars": 3696,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "examples/jackrabbit-firsthops/src/main/resources/log4j.properties",
"chars": 996,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE f"
},
{
"path": "examples/jackrabbit-firsthops/src/main/resources/test.xml",
"chars": 2243,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the N"
},
{
"path": "jackrabbit-aws-ext/README.txt",
"chars": 1198,
"preview": "====================================================\nWelcome to Jackrabbit Amazon WebServices Extension\n================"
},
{
"path": "jackrabbit-aws-ext/pom.xml",
"chars": 4966,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!-- Licensed to the Apache Software Foundation (ASF) under one or more contribu"
},
{
"path": "jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3Constants.java",
"chars": 3165,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3RequestDecorator.java",
"chars": 2947,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/Utils.java",
"chars": 8793,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/S3Backend.java",
"chars": 38749,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/S3BackendResourceAbortableInputStream.java",
"chars": 1717,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/S3DataStore.java",
"chars": 1587,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/ds/package-info.java",
"chars": 914,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/TestAll.java",
"chars": 2415,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/S3TestDataStore.java",
"chars": 1627,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DSAsyncTouch.java",
"chars": 1923,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DSWithSSES3.java",
"chars": 3281,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DSWithSmallCache.java",
"chars": 2003,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3Ds.java",
"chars": 5108,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/test/java/org/apache/jackrabbit/aws/ext/ds/TestS3DsCacheOff.java",
"chars": 1799,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-aws-ext/src/test/resources/aws.properties",
"chars": 1538,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE"
},
{
"path": "jackrabbit-aws-ext/src/test/resources/log4j.properties",
"chars": 1364,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE"
},
{
"path": "jackrabbit-aws-ext/src/test/resources/repository_sample.xml",
"chars": 6973,
"preview": "<?xml version=\"1.0\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license "
},
{
"path": "jackrabbit-core/HEADER.txt",
"chars": 803,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/README.txt",
"chars": 260,
"preview": "==========================\nWelcome to Jackrabbit Core\n==========================\n\nThis is the Core component of the Apac"
},
{
"path": "jackrabbit-core/checkstyle-suppressions.xml",
"chars": 1226,
"preview": "<?xml version=\"1.0\"?>\n\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license"
},
{
"path": "jackrabbit-core/checkstyle.xml",
"chars": 7004,
"preview": "<?xml version=\"1.0\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license "
},
{
"path": "jackrabbit-core/jdepend.properties",
"chars": 993,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE"
},
{
"path": "jackrabbit-core/pom.xml",
"chars": 24393,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n co"
},
{
"path": "jackrabbit-core/src/main/appended-resources/META-INF/NOTICE",
"chars": 81,
"preview": "Based on source code originally developed by\nDay Software (http://www.day.com/).\n"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AbstractNodeData.java",
"chars": 3491,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/AddMixinOperation.java",
"chars": 7576,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java",
"chars": 82202,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java",
"chars": 37321,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/DefaultSecurityManager.java",
"chars": 27616,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManager.java",
"chars": 9023,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java",
"chars": 25365,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemData.java",
"chars": 4258,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java",
"chars": 14636,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemLifeCycleListener.java",
"chars": 2467,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java",
"chars": 49039,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemRefreshOperation.java",
"chars": 5623,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemRemoveOperation.java",
"chars": 3328,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java",
"chars": 44804,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemValidator.java",
"chars": 21816,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/JackrabbitRepositoryStub.java",
"chars": 7772,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/JackrabbitThreadPool.java",
"chars": 7444,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/LazyItemIterator.java",
"chars": 8900,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/LowPriorityTask.java",
"chars": 1104,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java",
"chars": 18166,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeData.java",
"chars": 1345,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeDataRef.java",
"chars": 2531,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java",
"chars": 158744,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeTypeInstanceHandler.java",
"chars": 5910,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyData.java",
"chars": 1842,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java",
"chars": 33636,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ProtectedItemModifier.java",
"chars": 8754,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RemoveMixinOperation.java",
"chars": 13866,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryChecker.java",
"chars": 13240,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryContext.java",
"chars": 13759,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryCopier.java",
"chars": 11591,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryFactoryImpl.java",
"chars": 6681,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java",
"chars": 97202,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryManagerImpl.java",
"chars": 1648,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java",
"chars": 18149,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionFactory.java",
"chars": 1695,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java",
"chars": 50812,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionListener.java",
"chars": 1642,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionMoveOperation.java",
"chars": 9405,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SystemSession.java",
"chars": 11655,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TestContentLoader.java",
"chars": 10553,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTI"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java",
"chars": 16288,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/UserPerWorkspaceSecurityManager.java",
"chars": 17189,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java",
"chars": 25660,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java",
"chars": 32797,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceManager.java",
"chars": 3714,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java",
"chars": 13986,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ZombieHierarchyManager.java",
"chars": 4842,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/AbstractCache.java",
"chars": 6919,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/Cache.java",
"chars": 2348,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/CacheAccessListener.java",
"chars": 1653,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/CacheManager.java",
"chars": 11742,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/ConcurrentCache.java",
"chars": 8666,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/GrowingLRUMap.java",
"chars": 1467,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ChangeLogRecord.java",
"chars": 16257,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterContext.java",
"chars": 2328,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterException.java",
"chars": 1760,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java",
"chars": 35999,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterOperation.java",
"chars": 1334,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterRecord.java",
"chars": 4013,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterRecordDeserializer.java",
"chars": 3357,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterRecordProcessor.java",
"chars": 1943,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterSession.java",
"chars": 9617,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/DefaultClusterOperation.java",
"chars": 1744,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/LockEventChannel.java",
"chars": 2054,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/LockEventListener.java",
"chars": 1699,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/LockRecord.java",
"chars": 4774,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NamespaceEventChannel.java",
"chars": 1530,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NamespaceEventListener.java",
"chars": 1483,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NamespaceRecord.java",
"chars": 3126,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NodeTypeEventChannel.java",
"chars": 1875,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NodeTypeEventListener.java",
"chars": 2576,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/NodeTypeRecord.java",
"chars": 6333,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/PrivilegeEventChannel.java",
"chars": 1157,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/PrivilegeEventListener.java",
"chars": 1387,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/PrivilegeRecord.java",
"chars": 2550,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/Update.java",
"chars": 2205,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/UpdateEventChannel.java",
"chars": 2069,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/UpdateEventListener.java",
"chars": 1652,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/WorkspaceEventChannel.java",
"chars": 1146,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/WorkspaceListener.java",
"chars": 1302,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/WorkspaceRecord.java",
"chars": 6157,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/AccessManagerConfig.java",
"chars": 1442,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/BeanConfig.java",
"chars": 12869,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/BeanConfigVisitor.java",
"chars": 1061,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/BeanFactory.java",
"chars": 970,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ClusterConfig.java",
"chars": 3147,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationEntityResolver.java",
"chars": 7712,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationErrorHandler.java",
"chars": 2359,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationParser.java",
"chars": 16066,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ImportConfig.java",
"chars": 1982,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/LoginModuleConfig.java",
"chars": 3073,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/NoOpConfigVisitor.java",
"chars": 974,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/PersistenceManagerConfig.java",
"chars": 1472,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfig.java",
"chars": 42246,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java",
"chars": 50014,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SearchConfig.java",
"chars": 2465,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SecurityConfig.java",
"chars": 3003,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SecurityManagerConfig.java",
"chars": 4658,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SimpleBeanFactory.java",
"chars": 2702,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/UserManagerConfig.java",
"chars": 5079,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/VersioningConfig.java",
"chars": 3658,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java",
"chars": 9349,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceSecurityConfig.java",
"chars": 1532,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DB2FileSystem.java",
"chars": 3599,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java",
"chars": 33035,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DbFileSystem.java",
"chars": 8943,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DerbyFileSystem.java",
"chars": 3979,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/JNDIDatabaseFileSystem.java",
"chars": 2698,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/MSSqlFileSystem.java",
"chars": 3603,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/Oracle9FileSystem.java",
"chars": 1456,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java",
"chars": 11581,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFile.java",
"chars": 1173,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystem.java",
"chars": 7396,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystemEntry.java",
"chars": 1176,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFolder.java",
"chars": 1000,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/gc/GarbageCollector.java",
"chars": 22361,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/ItemId.java",
"chars": 1549,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/NodeId.java",
"chars": 9455,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/NodeIdFactory.java",
"chars": 4913,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/PropertyId.java",
"chars": 4870,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/SeededSecureRandom.java",
"chars": 3785,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jdkcompat/Java23Subject.java",
"chars": 2086,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/BindableRepository.java",
"chars": 9184,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/BindableRepositoryFactory.java",
"chars": 2517,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/RegistryHelper.java",
"chars": 4442,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/provider/DummyContext.java",
"chars": 11269,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/provider/DummyInitialContextFactory.java",
"chars": 1942,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java",
"chars": 14320,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java",
"chars": 11631,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AppendRecord.java",
"chars": 10898,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java",
"chars": 30499,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseRecordIterator.java",
"chars": 4500,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DefaultRecordProducer.java",
"chars": 2040,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileJournal.java",
"chars": 8998,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordIterator.java",
"chars": 4795,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java",
"chars": 13829,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRevision.java",
"chars": 3848,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/InstanceRevision.java",
"chars": 1367,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/JNDIDatabaseJournal.java",
"chars": 3428,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Journal.java",
"chars": 3804,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/JournalException.java",
"chars": 1760,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/JournalFactory.java",
"chars": 1508,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/LockableFileRevision.java",
"chars": 4714,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/MSSqlDatabaseJournal.java",
"chars": 2256,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/MemoryJournal.java",
"chars": 8911,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/MemoryRevision.java",
"chars": 1392,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/OracleDatabaseJournal.java",
"chars": 4873,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/ReadRecord.java",
"chars": 7135,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Record.java",
"chars": 8113,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/RecordConsumer.java",
"chars": 1556,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/RecordIterator.java",
"chars": 1705,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/RecordProducer.java",
"chars": 1305,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/RotatingLogFile.java",
"chars": 5506,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockImpl.java",
"chars": 4773,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockInfo.java",
"chars": 10411,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManager.java",
"chars": 6953,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java",
"chars": 47486,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/SessionLockManager.java",
"chars": 8680,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
}
]
// ... and 3173 more files (download for full content)
About this extraction
This page contains the full source code of the apache/jackrabbit GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3373 files (33.8 MB), approximately 6.2M tokens, and a symbol index with 30523 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.