Repository: DragonKingpin/Hydra
Branch: beta
Commit: 268d95a736a5
Files: 3349
Total size: 7.5 MB
Directory structure:
gitextract_py8snoc4/
├── .gitignore
├── .idea/
│ ├── .gitignore
│ ├── ApifoxUploaderProjectSetting.xml
│ ├── codeStyles/
│ │ └── codeStyleConfig.xml
│ ├── compiler.xml
│ ├── dataSources.xml
│ ├── dictionaries/
│ │ ├── project.xml
│ │ └── undefined.xml
│ ├── encodings.xml
│ ├── jarRepositories.xml
│ ├── misc.xml
│ ├── sqldialects.xml
│ ├── uiDesigner.xml
│ └── vcs.xml
├── Archcraft/
│ ├── ender-system-hydra/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── archcraft/
│ │ └── ender/
│ │ ├── EnderHydra.java
│ │ └── system/
│ │ ├── HydraEmpire.java
│ │ ├── Hydroxy.java
│ │ └── HydroxyImage.java
│ ├── pom.xml
│ ├── redstone-architecture/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── archcraft/
│ │ └── redstone/
│ │ ├── architect/
│ │ │ ├── Bedrock.java
│ │ │ ├── Redstone.java
│ │ │ └── Stone.java
│ │ ├── response/
│ │ │ ├── ArchResponseObjectManager.java
│ │ │ ├── GenericResultResponse.java
│ │ │ ├── RedResponse.java
│ │ │ ├── RedResponseEntity.java
│ │ │ ├── RedTraceableResponse.java
│ │ │ └── ResponseObjectManager.java
│ │ ├── system/
│ │ │ └── Dummy.java
│ │ └── util/
│ │ └── Dummy.java
│ └── redstone-message-stones/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── walnut/
│ └── archcraft/
│ └── redstone/
│ ├── Dummy.java
│ └── messge/
│ └── PrimaryMessageWareStone.java
├── CHANGELOG.md
├── File/
│ ├── File.iml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── genius/
│ │ ├── App.java
│ │ ├── cache/
│ │ │ ├── FileCache.java
│ │ │ ├── FileCacheManager.java
│ │ │ └── FileCacheManagerInstance.java
│ │ ├── constpool/
│ │ │ └── GlobalFileCache.java
│ │ ├── exception/
│ │ │ └── FileCacheException.java
│ │ ├── method/
│ │ │ └── FileCondition.java
│ │ ├── pojo/
│ │ │ ├── CommonConfigFile.java
│ │ │ ├── ConfigFile.java
│ │ │ ├── FileType.java
│ │ │ └── oss/
│ │ │ ├── AliyunOSS.java
│ │ │ └── OssAble.java
│ │ └── util/
│ │ ├── FileUtil.java
│ │ ├── JsonFileUtil.java
│ │ └── OSSUtil.java
│ └── test/
│ └── java/
│ └── com/
│ └── genius/
│ └── AppTest.java
├── Hydra/
│ ├── hydra-architecture/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ ├── Hydra.java
│ │ ├── Hydradom.java
│ │ ├── deploy/
│ │ │ ├── Container.java
│ │ │ ├── Deploy.java
│ │ │ ├── Integration.java
│ │ │ ├── Namespace.java
│ │ │ ├── PhysicalHost.java
│ │ │ ├── Quick.java
│ │ │ ├── Server.java
│ │ │ └── VirtualMachine.java
│ │ ├── device/
│ │ │ ├── Deployment.java
│ │ │ ├── Device.java
│ │ │ └── Disk.java
│ │ ├── express/
│ │ │ ├── Deliver.java
│ │ │ ├── Express.java
│ │ │ └── Package.java
│ │ ├── system/
│ │ │ ├── ArchModularizedSubsystem.java
│ │ │ ├── ArchSystemAutoAssembleComponent.java
│ │ │ ├── ArchSystemCascadeComponent.java
│ │ │ ├── ArchSystemCascadeComponentManager.java
│ │ │ ├── BlockSystem.java
│ │ │ ├── DistributedSystem.java
│ │ │ ├── FederalSystem.java
│ │ │ ├── HierarchySystem.java
│ │ │ ├── HyComponent.java
│ │ │ ├── HyHierarchy.java
│ │ │ ├── HySkeleton.java
│ │ │ ├── Hydrogen.java
│ │ │ ├── MultiComponentSystem.java
│ │ │ ├── ScopedSystem.java
│ │ │ ├── SystemCascadeComponent.java
│ │ │ ├── SystemCascadeComponentManager.java
│ │ │ ├── SystemSkeleton.java
│ │ │ ├── centrum/
│ │ │ │ ├── CentralControlSubsystem.java
│ │ │ │ ├── Centrum.java
│ │ │ │ ├── Metasystem.java
│ │ │ │ └── UniformCentralSystem.java
│ │ │ ├── component/
│ │ │ │ ├── ComponentInitializationException.java
│ │ │ │ ├── GenericResourceDispenserCenter.java
│ │ │ │ ├── GenericTracerScope.java
│ │ │ │ ├── LogStatuses.java
│ │ │ │ ├── LoggingConfigurator.java
│ │ │ │ ├── ResourceDispenserCenter.java
│ │ │ │ ├── Slf4jTraceable.java
│ │ │ │ ├── Slf4jTracerScope.java
│ │ │ │ ├── TracerConfigurator.java
│ │ │ │ └── TracerScope.java
│ │ │ ├── identifier/
│ │ │ │ └── KOPathResolver.java
│ │ │ ├── imperium/
│ │ │ │ ├── ImperiumPrivy.java
│ │ │ │ ├── KernelObjectRootMountPoint.java
│ │ │ │ ├── KernelPrivyFileSystemConstants.java
│ │ │ │ └── KernelRootMountPoint.java
│ │ │ ├── ko/
│ │ │ │ ├── ArchKernelObjectConfig.java
│ │ │ │ ├── CascadeInstrument.java
│ │ │ │ ├── CascadeKOTreeInstrument.java
│ │ │ │ ├── CascadeKernelObjectInstrument.java
│ │ │ │ ├── InstrumentException.java
│ │ │ │ ├── KernelObject.java
│ │ │ │ ├── KernelObjectConfig.java
│ │ │ │ ├── KernelObjectConstants.java
│ │ │ │ ├── KernelObjectInstrument.java
│ │ │ │ ├── KernelObjectTreeInstrument.java
│ │ │ │ ├── MetaPersistenceException.java
│ │ │ │ ├── QueryableInstrument.java
│ │ │ │ ├── UOIUtils.java
│ │ │ │ ├── action/
│ │ │ │ │ ├── ActionObject.java
│ │ │ │ │ └── EventObject.java
│ │ │ │ ├── control/
│ │ │ │ │ └── ControlObject.java
│ │ │ │ ├── dao/
│ │ │ │ │ └── GUIDNameManipulator.java
│ │ │ │ ├── driver/
│ │ │ │ │ ├── KOIMappingDriver.java
│ │ │ │ │ ├── KOIMappingDriverFactory.java
│ │ │ │ │ ├── KOIMasterManipulator.java
│ │ │ │ │ └── KOISkeletonMasterManipulator.java
│ │ │ │ ├── entity/
│ │ │ │ │ ├── ObjectHandle.java
│ │ │ │ │ └── ObjectTable.java
│ │ │ │ ├── handle/
│ │ │ │ │ ├── AppliableKHandle.java
│ │ │ │ │ ├── ArchKHandle.java
│ │ │ │ │ ├── HandleObject.java
│ │ │ │ │ ├── HandleType.java
│ │ │ │ │ ├── KHandle.java
│ │ │ │ │ ├── KOMMountPointHandle.java
│ │ │ │ │ ├── ObjectTreeAddressingSectionHandle.java
│ │ │ │ │ ├── ObjectTreeGUIDAddressingSectionHandle.java
│ │ │ │ │ └── SectionHandle.java
│ │ │ │ ├── kom/
│ │ │ │ │ ├── ArchKOMTree.java
│ │ │ │ │ ├── ArchReparseKOMTree.java
│ │ │ │ │ ├── ExpressInstrument.java
│ │ │ │ │ ├── GenericReparseKOMTreeAddition.java
│ │ │ │ │ ├── KOMInstrument.java
│ │ │ │ │ ├── KOMSelector.java
│ │ │ │ │ ├── MultiFolderPathSelector.java
│ │ │ │ │ ├── PathSelector.java
│ │ │ │ │ ├── ProxiedKOMMountPointHandle.java
│ │ │ │ │ ├── ReparseKOMTree.java
│ │ │ │ │ ├── ReparseKOMTreeAddition.java
│ │ │ │ │ ├── ReparseLinkSelector.java
│ │ │ │ │ ├── ReparsePointSelector.java
│ │ │ │ │ ├── SimpleMultiFolderPathSelector.java
│ │ │ │ │ ├── SimplePathSelector.java
│ │ │ │ │ └── StandardPathSelector.java
│ │ │ │ ├── meta/
│ │ │ │ │ └── ElementObject.java
│ │ │ │ └── runtime/
│ │ │ │ ├── ArchDirectMappingTrieRuntimeKOMTree.java
│ │ │ │ ├── ArchRuntimeKOMTree.java
│ │ │ │ ├── CentralizedRuntimeInstrument.java
│ │ │ │ ├── DirectMappingTrieRuntimeInstrument.java
│ │ │ │ ├── GenericRuntimeInstrumentConfig.java
│ │ │ │ ├── KernelExpressInstrument.java
│ │ │ │ └── RuntimeInstrument.java
│ │ │ ├── polity/
│ │ │ │ └── RepublicSystem.java
│ │ │ ├── subsystem/
│ │ │ │ ├── ArchMicroSystem.java
│ │ │ │ ├── ArchSubsystemDirector.java
│ │ │ │ ├── Cabinet.java
│ │ │ │ ├── CentralKernelLordFederation.java
│ │ │ │ ├── CentralMicroSystemCabinet.java
│ │ │ │ ├── Federation.java
│ │ │ │ ├── KernelLordFederation.java
│ │ │ │ ├── KernelMicroSystemCabinet.java
│ │ │ │ ├── MicroSystem.java
│ │ │ │ └── SubsystemDirector.java
│ │ │ └── types/
│ │ │ └── HydraKingdom.java
│ │ ├── unit/
│ │ │ ├── imperium/
│ │ │ │ ├── ArchRegimentObjectModel.java
│ │ │ │ ├── ArchUniformInstitutionalizedInstrument.java
│ │ │ │ ├── GUIDImperialTrieNode.java
│ │ │ │ ├── ImperialTree.java
│ │ │ │ ├── ImperialTreeConstants.java
│ │ │ │ ├── ImperialTreeNode.java
│ │ │ │ ├── LinkedType.java
│ │ │ │ ├── RegimentedImperialTree.java
│ │ │ │ ├── UniImperialTree.java
│ │ │ │ ├── entity/
│ │ │ │ │ ├── BranchNode.java
│ │ │ │ │ ├── ElementumNode.java
│ │ │ │ │ ├── EntityNode.java
│ │ │ │ │ ├── MetaEntryNode.java
│ │ │ │ │ ├── MetadataNode.java
│ │ │ │ │ ├── ReparseLinkNode.java
│ │ │ │ │ ├── SkeletonNode.java
│ │ │ │ │ ├── TreeNode.java
│ │ │ │ │ └── TreeReparseLinkNode.java
│ │ │ │ ├── operator/
│ │ │ │ │ ├── OperatorFactory.java
│ │ │ │ │ └── TreeNodeOperator.java
│ │ │ │ └── source/
│ │ │ │ ├── TireOwnerManipulator.java
│ │ │ │ ├── TreeMasterManipulator.java
│ │ │ │ ├── TriePathCacheManipulator.java
│ │ │ │ └── TrieTreeManipulator.java
│ │ │ ├── iqueue/
│ │ │ │ ├── ArchQueueTableMeta.java
│ │ │ │ ├── ConfigurableMegaDeflectPriorityQueueMeta.java
│ │ │ │ ├── ConfigurableMegaStratumQueueMeta.java
│ │ │ │ ├── DPQueueManipulator.java
│ │ │ │ ├── DPStratumQueueManipulator.java
│ │ │ │ ├── DeflectPriorityQueue.java
│ │ │ │ ├── MagnitudeDPQueue.java
│ │ │ │ ├── MegaDPStratumQueue.java
│ │ │ │ ├── MegaDeflectPriorityQueueMeta.java
│ │ │ │ ├── MegaPriorityQueue.java
│ │ │ │ ├── MegaStratumQueue.java
│ │ │ │ ├── MegaStratumQueueMeta.java
│ │ │ │ ├── QueueExistManipulator.java
│ │ │ │ ├── QueueMasterManipulator.java
│ │ │ │ ├── QueueMeta.java
│ │ │ │ ├── SharedSegmentIQueue.java
│ │ │ │ └── entity/
│ │ │ │ ├── GenericQueueElement.java
│ │ │ │ ├── GenericStratumQueueElement.java
│ │ │ │ ├── QueueElement.java
│ │ │ │ └── QueueStratumElement.java
│ │ │ └── vgraph/
│ │ │ ├── ArchAtlasInstrument.java
│ │ │ ├── ArchVectorDAG.java
│ │ │ ├── AtlasInstrument.java
│ │ │ ├── GraphNodePair.java
│ │ │ ├── MagnitudeVectorDAG.java
│ │ │ ├── VectorDAG.java
│ │ │ ├── VectorGraphConfig.java
│ │ │ ├── VectorGraphConstants.java
│ │ │ ├── algo/
│ │ │ │ ├── BasicDAGPathResolver.java
│ │ │ │ ├── BasicDAGPathSelector.java
│ │ │ │ ├── DAGPathResolver.java
│ │ │ │ └── DAGPathSelector.java
│ │ │ ├── entity/
│ │ │ │ └── GraphNode.java
│ │ │ ├── layer/
│ │ │ │ ├── AtlasLayer.java
│ │ │ │ ├── AtlasLayerNamespace.java
│ │ │ │ ├── Layer.java
│ │ │ │ ├── LayerConfig.java
│ │ │ │ ├── LayerGraphHandle.java
│ │ │ │ ├── LayerInstrument.java
│ │ │ │ ├── LayerNamespace.java
│ │ │ │ ├── LayerTreeNode.java
│ │ │ │ ├── VLayerConfig.java
│ │ │ │ ├── VLayerInstrument.java
│ │ │ │ ├── operator/
│ │ │ │ │ ├── ArchLayerComponentOperator.java
│ │ │ │ │ ├── AtlasLayerComponentOperatorFactory.java
│ │ │ │ │ ├── LayerComponentOperator.java
│ │ │ │ │ ├── LayerComponentOperatorFactory.java
│ │ │ │ │ ├── LayerNamespaceOperator.java
│ │ │ │ │ └── LayerOperator.java
│ │ │ │ └── source/
│ │ │ │ ├── LayerHandleManipulator.java
│ │ │ │ ├── LayerManipulator.java
│ │ │ │ ├── LayerMasterManipulator.java
│ │ │ │ ├── LayerMasterTreeManipulator.java
│ │ │ │ ├── LayerOwnerManipulator.java
│ │ │ │ ├── LayerPathCacheManipulator.java
│ │ │ │ ├── LayerTreeManipulator.java
│ │ │ │ └── NamespaceManipulator.java
│ │ │ ├── source/
│ │ │ │ ├── AtlasMappingDriver.java
│ │ │ │ ├── AtlasMasterManipulator.java
│ │ │ │ ├── VectorGraphManipulator.java
│ │ │ │ ├── VectorGraphMasterManipulator.java
│ │ │ │ └── VectorGraphPathCacheManipulator.java
│ │ │ └── traversal/
│ │ │ ├── AtlasGraphIterator.java
│ │ │ └── GraphIterator.java
│ │ └── ware/
│ │ ├── DataWare.java
│ │ ├── MessageWare.java
│ │ ├── Middleware.java
│ │ ├── MiddlewareDirector.java
│ │ ├── MiddlewareManager.java
│ │ ├── OLAPWare.java
│ │ ├── OLTPWare.java
│ │ ├── RDBWare.java
│ │ ├── Ware.java
│ │ ├── WareDirector.java
│ │ ├── WareDomain.java
│ │ └── WareManager.java
│ ├── hydra-architecture-conduct/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ └── system/
│ │ ├── conduct/
│ │ │ ├── CascadeMarshal.java
│ │ │ ├── CascadeUnit.java
│ │ │ ├── Marshal.java
│ │ │ ├── Unionem.java
│ │ │ └── Unit.java
│ │ ├── flow/
│ │ │ ├── CascadeFlow.java
│ │ │ ├── Flow.java
│ │ │ ├── SequentialFlow.java
│ │ │ └── Stage.java
│ │ └── ups/
│ │ ├── UniformPyramidTask.java
│ │ └── UniformPyramidTaskInstrument.java
│ ├── hydra-architecture-message/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── message/
│ │ ├── ArchResponse.java
│ │ └── StringResponse.java
│ ├── hydra-architecture-storage/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ └── storage/
│ │ └── UFile.java
│ ├── hydra-framework-config/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ ├── account/
│ │ │ ├── AccountConfig.java
│ │ │ ├── AccountManager.java
│ │ │ ├── KernelAccountConfig.java
│ │ │ ├── UniformAccountManager.java
│ │ │ ├── entity/
│ │ │ │ ├── ACNodeAllotment.java
│ │ │ │ ├── Account.java
│ │ │ │ ├── ArchElementNode.java
│ │ │ │ ├── ArchFolderElementNode.java
│ │ │ │ ├── Authorization.java
│ │ │ │ ├── Credential.java
│ │ │ │ ├── Domain.java
│ │ │ │ ├── ElementNode.java
│ │ │ │ ├── FileElement.java
│ │ │ │ ├── FolderElement.java
│ │ │ │ ├── GenericACNodeAllotment.java
│ │ │ │ ├── GenericAccount.java
│ │ │ │ ├── GenericAuthorization.java
│ │ │ │ ├── GenericCredential.java
│ │ │ │ ├── GenericDomain.java
│ │ │ │ ├── GenericGroup.java
│ │ │ │ ├── GenericPrivilege.java
│ │ │ │ ├── GenericRole.java
│ │ │ │ ├── Group.java
│ │ │ │ ├── Privilege.java
│ │ │ │ └── Role.java
│ │ │ ├── operator/
│ │ │ │ ├── AccountServiceOperator.java
│ │ │ │ ├── AccountServiceOperatorFactory.java
│ │ │ │ ├── ArchAccountServiceOperator.java
│ │ │ │ ├── GenericAccountOperator.java
│ │ │ │ ├── GenericAccountOperatorFactory.java
│ │ │ │ ├── GenericDomainOperator.java
│ │ │ │ └── GenericGroupOperator.java
│ │ │ └── source/
│ │ │ ├── AuthorizationManipulator.java
│ │ │ ├── CredentialManipulator.java
│ │ │ ├── DomainNodeManipulator.java
│ │ │ ├── GroupNodeManipulator.java
│ │ │ ├── PrivilegeManipulator.java
│ │ │ ├── RoleManipulator.java
│ │ │ ├── UserMasterManipulator.java
│ │ │ └── UserNodeManipulator.java
│ │ ├── config/
│ │ │ ├── ConfigSource.java
│ │ │ ├── LocalConfigSource.java
│ │ │ ├── MapConfigReinterpreter.java
│ │ │ └── ScopedMapConfigReinterpreter.java
│ │ └── registry/
│ │ ├── GenericKOMRegistry.java
│ │ ├── GenericRenderKOMRegistry.java
│ │ ├── KOMRegistry.java
│ │ ├── KernelRegistryConfig.java
│ │ ├── Registry.java
│ │ ├── RegistryConfig.java
│ │ ├── RegistryJPathSelector.java
│ │ ├── RegistrySelectorCursorParser.java
│ │ ├── RenderDistributeRegistry.java
│ │ ├── SelectorParseException.java
│ │ ├── entity/
│ │ │ ├── ArchConfigNode.java
│ │ │ ├── ArchElementNode.java
│ │ │ ├── Attributes.java
│ │ │ ├── ConfigNode.java
│ │ │ ├── ConfigNodeMeta.java
│ │ │ ├── DefaultPropertyConverter.java
│ │ │ ├── DefaultTextValueConverter.java
│ │ │ ├── ElementNode.java
│ │ │ ├── GenericAttributes.java
│ │ │ ├── GenericConfigNodeMeta.java
│ │ │ ├── GenericNamespace.java
│ │ │ ├── GenericNamespaceMeta.java
│ │ │ ├── GenericProperties.java
│ │ │ ├── GenericProperty.java
│ │ │ ├── GenericTextFile.java
│ │ │ ├── GenericTextValue.java
│ │ │ ├── Namespace.java
│ │ │ ├── NamespaceMeta.java
│ │ │ ├── Properties.java
│ │ │ ├── Property.java
│ │ │ ├── PropertyJSONEncoder.java
│ │ │ ├── PropertyTypes.java
│ │ │ ├── RegistryTreeNode.java
│ │ │ ├── TextFile.java
│ │ │ ├── TextValue.java
│ │ │ ├── TextValueTypes.java
│ │ │ └── TypeConverter.java
│ │ ├── marshaling/
│ │ │ ├── AnnotatedRegObjectInjector.java
│ │ │ ├── RegistryDOMEncoder.java
│ │ │ ├── RegistryDecoder.java
│ │ │ ├── RegistryEncoder.java
│ │ │ ├── RegistryJQuery.java
│ │ │ ├── RegistryJSONDecoder.java
│ │ │ ├── RegistryJSONEncoder.java
│ │ │ └── RegistryQuery.java
│ │ ├── operator/
│ │ │ ├── ArchConfigNodeOperator.java
│ │ │ ├── ArchRegistryOperator.java
│ │ │ ├── GenericRegistryOperatorFactory.java
│ │ │ ├── NamespaceNodeOperator.java
│ │ │ ├── PropertiesOperator.java
│ │ │ ├── RegistryNodeOperator.java
│ │ │ ├── RegistryOperatorFactory.java
│ │ │ └── TextValueNodeOperator.java
│ │ ├── render/
│ │ │ ├── GenericRenderNamespace.java
│ │ │ ├── GenericRenderProperties.java
│ │ │ ├── GenericRenderProperty.java
│ │ │ ├── GenericRenderTextFile.java
│ │ │ ├── GenericRenderTextValue.java
│ │ │ ├── RenderConfigNode.java
│ │ │ ├── RenderNamespace.java
│ │ │ ├── RenderProperties.java
│ │ │ ├── RenderProperty.java
│ │ │ ├── RenderRegistryTreeNode.java
│ │ │ ├── RenderTextFile.java
│ │ │ └── RenderTextValue.java
│ │ └── source/
│ │ ├── RegistryAttributesManipulator.java
│ │ ├── RegistryConfigNodeManipulator.java
│ │ ├── RegistryMasterManipulator.java
│ │ ├── RegistryNSNodeManipulator.java
│ │ ├── RegistryNSNodeMetaManipulator.java
│ │ ├── RegistryNodeMetaManipulator.java
│ │ ├── RegistryNodeOwnerManipulator.java
│ │ ├── RegistryNodePathManipulator.java
│ │ ├── RegistryPropertiesManipulator.java
│ │ ├── RegistryTextFileManipulator.java
│ │ └── RegistryTreeManipulator.java
│ ├── hydra-framework-device/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ ├── deploy/
│ │ │ ├── ArchDeployFamilyMeta.java
│ │ │ ├── DeployExtraMeta.java
│ │ │ ├── DeployFamilyMeta.java
│ │ │ ├── entity/
│ │ │ │ ├── GenericContainer.java
│ │ │ │ ├── GenericPhysicalHost.java
│ │ │ │ ├── GenericQuick.java
│ │ │ │ └── GenericVirtualMachine.java
│ │ │ └── kom/
│ │ │ ├── DeployConfig.java
│ │ │ ├── DeployFamilyNode.java
│ │ │ ├── DeployInstrument.java
│ │ │ ├── DeployPathSelector.java
│ │ │ ├── KernelDeployConfig.java
│ │ │ ├── UniformDeployInstrument.java
│ │ │ ├── entity/
│ │ │ │ ├── ArchElementNode.java
│ │ │ │ ├── ArchServerElement.java
│ │ │ │ ├── ClusterElement.java
│ │ │ │ ├── CommonMeta.java
│ │ │ │ ├── ContainerElement.java
│ │ │ │ ├── DeployElement.java
│ │ │ │ ├── DeployInsMapping.java
│ │ │ │ ├── DeployTreeNode.java
│ │ │ │ ├── ElementNode.java
│ │ │ │ ├── FolderElement.java
│ │ │ │ ├── GenericClusterElement.java
│ │ │ │ ├── GenericCommonMeta.java
│ │ │ │ ├── GenericContainerElement.java
│ │ │ │ ├── GenericDeployInsMapping.java
│ │ │ │ ├── GenericNamespace.java
│ │ │ │ ├── GenericPhysicalHostElement.java
│ │ │ │ ├── GenericQuickElement.java
│ │ │ │ ├── GenericVirtualMachineElement.java
│ │ │ │ ├── Namespace.java
│ │ │ │ ├── PhysicalHostElement.java
│ │ │ │ ├── QuickElement.java
│ │ │ │ ├── ServerElement.java
│ │ │ │ └── VirtualMachineElement.java
│ │ │ ├── marshaling/
│ │ │ │ ├── DeployInstrumentDecoder.java
│ │ │ │ ├── DeployInstrumentEncoder.java
│ │ │ │ ├── DeployJSONDecoder.java
│ │ │ │ └── DeployJSONEncoder.java
│ │ │ ├── operator/
│ │ │ │ ├── ArchElementOperator.java
│ │ │ │ ├── ClusterElementOperator.java
│ │ │ │ ├── ContainerElementOperator.java
│ │ │ │ ├── ElementOperator.java
│ │ │ │ ├── ElementOperatorFactory.java
│ │ │ │ ├── GenericElementOperatorFactory.java
│ │ │ │ ├── NamespaceOperator.java
│ │ │ │ ├── PhysicalHostElementOperator.java
│ │ │ │ ├── QuickElementOperator.java
│ │ │ │ └── VirtualMachineElementOperator.java
│ │ │ └── source/
│ │ │ ├── ClusterNodeManipulator.java
│ │ │ ├── ContainerElementManipulator.java
│ │ │ ├── DeployMasterManipulator.java
│ │ │ ├── DeployNamespaceManipulator.java
│ │ │ ├── DeployNodeManipulator.java
│ │ │ ├── DeployServiceInsMappingManipulator.java
│ │ │ ├── NodeMetaManipulator.java
│ │ │ ├── PhysicalHostManipulator.java
│ │ │ ├── QuickElementManipulator.java
│ │ │ └── VirtualMachineManipulator.java
│ │ └── server/
│ │ ├── ArchServer.java
│ │ ├── ArchServersCenter.java
│ │ ├── Server.java
│ │ └── ServersCenter.java
│ ├── hydra-framework-runtime/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ └── hydra/
│ │ │ ├── auto/
│ │ │ │ ├── AbortException.java
│ │ │ │ ├── ArchAutomatron.java
│ │ │ │ ├── ArchInstructation.java
│ │ │ │ ├── ArchParallelInstructation.java
│ │ │ │ ├── ArchParallelSuggestation.java
│ │ │ │ ├── ArchSequentialMarshalling.java
│ │ │ │ ├── ArchSuggestation.java
│ │ │ │ ├── Automaton.java
│ │ │ │ ├── Automatron.java
│ │ │ │ ├── AutomatronMationInvoker.java
│ │ │ │ ├── Continue.java
│ │ │ │ ├── ContinueException.java
│ │ │ │ ├── DeathExceptionHandler.java
│ │ │ │ ├── Die.java
│ │ │ │ ├── ExceptionHandler.java
│ │ │ │ ├── GenericMarshalling.java
│ │ │ │ ├── GenericMationInvoker.java
│ │ │ │ ├── Heartbeat.java
│ │ │ │ ├── IgnoredReason.java
│ │ │ │ ├── InstantInstructation.java
│ │ │ │ ├── InstantKillException.java
│ │ │ │ ├── Instructation.java
│ │ │ │ ├── KernelInstructation.java
│ │ │ │ ├── LifecycleAutomaton.java
│ │ │ │ ├── Marshalling.java
│ │ │ │ ├── MationInvoker.java
│ │ │ │ ├── ParallelInstructation.java
│ │ │ │ ├── ParallelSuggestation.java
│ │ │ │ ├── PeriodicAutomaton.java
│ │ │ │ ├── PeriodicAutomatron.java
│ │ │ │ ├── Suggestation.java
│ │ │ │ └── Terminate.java
│ │ │ ├── orchestration/
│ │ │ │ ├── ArchExertion.java
│ │ │ │ ├── ArchGraphNode.java
│ │ │ │ ├── ArchIrrevocableController.java
│ │ │ │ ├── ArchLoop.java
│ │ │ │ ├── ArchParallel.java
│ │ │ │ ├── ArchSequential.java
│ │ │ │ ├── ArchStratum.java
│ │ │ │ ├── ArchTransaction.java
│ │ │ │ ├── BooleanCondition.java
│ │ │ │ ├── BranchControlException.java
│ │ │ │ ├── BranchNoticeException.java
│ │ │ │ ├── BreakController.java
│ │ │ │ ├── BreakPoint.java
│ │ │ │ ├── CausalBranch.java
│ │ │ │ ├── Condition.java
│ │ │ │ ├── ContinueController.java
│ │ │ │ ├── ContinuePoint.java
│ │ │ │ ├── Exertion.java
│ │ │ │ ├── ExertionEventCallback.java
│ │ │ │ ├── ExertionStatus.java
│ │ │ │ ├── Exertium.java
│ │ │ │ ├── GraphNode.java
│ │ │ │ ├── GraphStratum.java
│ │ │ │ ├── InstantJumpOutBranchException.java
│ │ │ │ ├── IntegrityLevel.java
│ │ │ │ ├── JumpController.java
│ │ │ │ ├── JumpPoint.java
│ │ │ │ ├── Loop.java
│ │ │ │ ├── LoopAction.java
│ │ │ │ ├── Notifiable.java
│ │ │ │ ├── Parallel.java
│ │ │ │ ├── ParallelAction.java
│ │ │ │ ├── ProcessController.java
│ │ │ │ ├── Sequential.java
│ │ │ │ ├── SequentialAction.java
│ │ │ │ ├── Transaction.java
│ │ │ │ ├── UnfulfilledActionException.java
│ │ │ │ ├── parallel/
│ │ │ │ │ ├── ArchMasterParallelium.java
│ │ │ │ │ ├── ParallelExertion.java
│ │ │ │ │ └── WrappedMasterParallelium.java
│ │ │ │ ├── recorder/
│ │ │ │ │ └── ActionTape.java
│ │ │ │ └── regulation/
│ │ │ │ ├── NeglectRegulation.java
│ │ │ │ ├── Regulation.java
│ │ │ │ └── RuntimeNeglector.java
│ │ │ ├── proc/
│ │ │ │ ├── ArchProcessManager.java
│ │ │ │ ├── ArchUProcess.java
│ │ │ │ ├── ControllableLevel.java
│ │ │ │ ├── GenericProcessActionTape.java
│ │ │ │ ├── InstitutionalProcess.java
│ │ │ │ ├── KernelProcess.java
│ │ │ │ ├── LineageProcessEnvironmentSection.java
│ │ │ │ ├── LocalHostedProcess.java
│ │ │ │ ├── LocalUProcess.java
│ │ │ │ ├── ProcessActionTape.java
│ │ │ │ ├── ProcessEnvironmentSection.java
│ │ │ │ ├── ProcessManager.java
│ │ │ │ ├── ProcessManagerConfig.java
│ │ │ │ ├── ProcessManagerSystema.java
│ │ │ │ ├── RemoteUProcess.java
│ │ │ │ ├── UProcess.java
│ │ │ │ ├── UniformProcessConfig.java
│ │ │ │ ├── UniformProcessManager.java
│ │ │ │ ├── entity/
│ │ │ │ │ ├── ElementNode.java
│ │ │ │ │ └── ProcessElement.java
│ │ │ │ ├── event/
│ │ │ │ │ ├── ProcessEvent.java
│ │ │ │ │ ├── ProcessEventHandler.java
│ │ │ │ │ └── ProcessLifecycleHandler.java
│ │ │ │ ├── image/
│ │ │ │ │ ├── ArchEntryPointRunnable.java
│ │ │ │ │ ├── ArchExecutionImage.java
│ │ │ │ │ ├── ArchImageLoader.java
│ │ │ │ │ ├── EntryPointRunnable.java
│ │ │ │ │ ├── ExecutionImage.java
│ │ │ │ │ ├── FileSystemMappingImageLoader.java
│ │ │ │ │ ├── GenericClassImage.java
│ │ │ │ │ ├── ImageLoadException.java
│ │ │ │ │ ├── ImageLoadProcedureException.java
│ │ │ │ │ ├── ImageLoader.java
│ │ │ │ │ ├── ImageModifier.java
│ │ │ │ │ ├── JVMClassExecutionImage.java
│ │ │ │ │ ├── LocalHostedClassImage.java
│ │ │ │ │ ├── SafeImageModifier.java
│ │ │ │ │ ├── URLImageLoader.java
│ │ │ │ │ ├── UniformImageLoader.java
│ │ │ │ │ ├── UniformMultiScopeImageLoader.java
│ │ │ │ │ └── kom/
│ │ │ │ │ ├── ElementNode.java
│ │ │ │ │ ├── GenericImageElement.java
│ │ │ │ │ ├── ImageElement.java
│ │ │ │ │ ├── VirtualExeImageInstrument.java
│ │ │ │ │ └── VirtualMappingExeImageInstrument.java
│ │ │ │ ├── ns/
│ │ │ │ │ ├── ControlGroup.java
│ │ │ │ │ ├── GenericSegregationSpace.java
│ │ │ │ │ └── ProcSpace.java
│ │ │ │ ├── signal/
│ │ │ │ │ └── Signal.java
│ │ │ │ └── tomb/
│ │ │ │ ├── ResurgentTombstone.java
│ │ │ │ ├── RuntimeTombstone.java
│ │ │ │ └── TombCheckpoint.java
│ │ │ ├── servgram/
│ │ │ │ ├── ActionType.java
│ │ │ │ ├── ArchGramFactory.java
│ │ │ │ ├── ArchGramLoader.java
│ │ │ │ ├── ArchGramScopeSet.java
│ │ │ │ ├── ArchServgramOrchestrator.java
│ │ │ │ ├── ArchServgramium.java
│ │ │ │ ├── AutoOrchestrator.java
│ │ │ │ ├── Gram.java
│ │ │ │ ├── GramFactory.java
│ │ │ │ ├── GramLoader.java
│ │ │ │ ├── GramScope.java
│ │ │ │ ├── GramTransaction.java
│ │ │ │ ├── LocalGramFactory.java
│ │ │ │ ├── LocalGramLoader.java
│ │ │ │ ├── LocalGramScopeSet.java
│ │ │ │ ├── LocalGramTransaction.java
│ │ │ │ ├── LocalParallelGramExertium.java
│ │ │ │ ├── LocalSequentialGramExertium.java
│ │ │ │ ├── LocalServgramOrchestrator.java
│ │ │ │ ├── MultiGramsLoader.java
│ │ │ │ ├── OrchestrateInterruptException.java
│ │ │ │ ├── Servgram.java
│ │ │ │ ├── ServgramOrchestrator.java
│ │ │ │ ├── Servgramium.java
│ │ │ │ ├── Servgramlet.java
│ │ │ │ └── filters/
│ │ │ │ ├── AnnotationValueFilter.java
│ │ │ │ ├── ExcludeGramFilters.java
│ │ │ │ └── GramAnnotationValueFilter.java
│ │ │ └── task/
│ │ │ ├── App.java
│ │ │ ├── ArchInstanceMeta.java
│ │ │ ├── ArchTask.java
│ │ │ ├── ArchTaskFamilyMeta.java
│ │ │ ├── ArchTaskInstance.java
│ │ │ ├── InstanceEventType.java
│ │ │ ├── ProcApp.java
│ │ │ ├── Task.java
│ │ │ ├── TaskApp.java
│ │ │ ├── TaskExtraMeta.java
│ │ │ ├── TaskFamilyMeta.java
│ │ │ ├── TaskInstance.java
│ │ │ ├── TaskInstanceExecState.java
│ │ │ ├── TaskInstanceMeta.java
│ │ │ ├── TaskInstanceStatus.java
│ │ │ ├── Taskiom.java
│ │ │ ├── Taskium.java
│ │ │ ├── kom/
│ │ │ │ ├── KernelTaskConfig.java
│ │ │ │ ├── TaskConfig.java
│ │ │ │ ├── TaskFamilyNode.java
│ │ │ │ ├── TaskInstrument.java
│ │ │ │ ├── TaskMetaConstants.java
│ │ │ │ ├── TaskPathSelector.java
│ │ │ │ ├── UniformTaskInstrument.java
│ │ │ │ ├── entity/
│ │ │ │ │ ├── AppElement.java
│ │ │ │ │ ├── ArchElementNode.java
│ │ │ │ │ ├── ElementNode.java
│ │ │ │ │ ├── EntryNode.java
│ │ │ │ │ ├── FolderElement.java
│ │ │ │ │ ├── GenericAppElement.java
│ │ │ │ │ ├── GenericNamespace.java
│ │ │ │ │ ├── GenericTaskElement.java
│ │ │ │ │ ├── Namespace.java
│ │ │ │ │ ├── TaskElement.java
│ │ │ │ │ └── TaskTreeNode.java
│ │ │ │ ├── instance/
│ │ │ │ │ ├── GenericInstanceEntry.java
│ │ │ │ │ ├── InstanceEntry.java
│ │ │ │ │ ├── InstanceInstrument.java
│ │ │ │ │ ├── KernelInstanceInstrument.java
│ │ │ │ │ └── source/
│ │ │ │ │ └── InstanceNodeManipulator.java
│ │ │ │ ├── marshaling/
│ │ │ │ │ ├── TaskInstrumentDecoder.java
│ │ │ │ │ ├── TaskInstrumentEncoder.java
│ │ │ │ │ ├── TaskJSONDecoder.java
│ │ │ │ │ └── TaskJSONEncoder.java
│ │ │ │ ├── operator/
│ │ │ │ │ ├── AppElementOperator.java
│ │ │ │ │ ├── ArchElementOperator.java
│ │ │ │ │ ├── ElementOperator.java
│ │ │ │ │ ├── ElementOperatorFactory.java
│ │ │ │ │ ├── GenericElementOperatorFactory.java
│ │ │ │ │ ├── NamespaceOperator.java
│ │ │ │ │ └── TaskElementOperator.java
│ │ │ │ └── source/
│ │ │ │ ├── AppNodeManipulator.java
│ │ │ │ ├── TaskMasterManipulator.java
│ │ │ │ ├── TaskNamespaceManipulator.java
│ │ │ │ └── TaskNodeManipulator.java
│ │ │ └── marshal/
│ │ │ ├── TaskPriority.java
│ │ │ ├── TaskScheduleCycle.java
│ │ │ └── TaskScheduleType.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ ├── ioc/
│ │ │ ├── SystemTestIoC.java
│ │ │ └── TestIoC.java
│ │ ├── orchestration/
│ │ │ ├── SimpleExertium.java
│ │ │ ├── SimpleParallelium.java
│ │ │ ├── TestBasicTransaction.java
│ │ │ └── TestInstructation.java
│ │ └── servgram/
│ │ └── TestServgram.java
│ ├── hydra-framework-service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ ├── scenario/
│ │ │ ├── entity/
│ │ │ │ ├── GenericNamespaceNode.java
│ │ │ │ ├── GenericNamespaceNodeMeta.java
│ │ │ │ ├── GenericScenarioCommonData.java
│ │ │ │ ├── NamespaceNode.java
│ │ │ │ ├── NamespaceNodeMeta.java
│ │ │ │ └── ScenarioCommonData.java
│ │ │ ├── source/
│ │ │ │ ├── NamespaceNodeManipulator.java
│ │ │ │ ├── NamespaceNodeMetaManipulator.java
│ │ │ │ ├── ScenarioCommonDataManipulator.java
│ │ │ │ └── ScenarioMasterManipulator.java
│ │ │ └── tree/
│ │ │ ├── DistributedScenarioMetaTree.java
│ │ │ └── GenericDistributedScenarioMetaTree.java
│ │ └── service/
│ │ ├── Application.java
│ │ ├── ArchService.java
│ │ ├── ArchServiceFamilyMeta.java
│ │ ├── ProcApplication.java
│ │ ├── ScheduleType.java
│ │ ├── Service.java
│ │ ├── ServiceApplication.java
│ │ ├── ServiceFamilyMeta.java
│ │ ├── ServiceInstance.java
│ │ ├── ServiceMeta.java
│ │ ├── Serviciom.java
│ │ ├── Servicium.java
│ │ ├── Status.java
│ │ ├── entity/
│ │ │ ├── BindUSII.java
│ │ │ └── USII.java
│ │ └── kom/
│ │ ├── GenericNamespaceRules.java
│ │ ├── KernelServiceConfig.java
│ │ ├── NamespaceRules.java
│ │ ├── ServiceConfig.java
│ │ ├── ServiceFamilyNode.java
│ │ ├── ServiceInstrument.java
│ │ ├── ServicePathSelector.java
│ │ ├── UniformServiceInstrument.java
│ │ ├── entity/
│ │ │ ├── ApplicationElement.java
│ │ │ ├── ArchElementNode.java
│ │ │ ├── ArchServoElement.java
│ │ │ ├── CommonMeta.java
│ │ │ ├── ElementNode.java
│ │ │ ├── FolderElement.java
│ │ │ ├── GenericApplicationElement.java
│ │ │ ├── GenericCommonMeta.java
│ │ │ ├── GenericNamespace.java
│ │ │ ├── GenericServiceElement.java
│ │ │ ├── GenericServiceInstanceEntity.java
│ │ │ ├── Namespace.java
│ │ │ ├── ServiceElement.java
│ │ │ ├── ServiceInstanceEntry.java
│ │ │ ├── ServiceTreeNode.java
│ │ │ └── ServoElement.java
│ │ ├── marshaling/
│ │ │ ├── ServiceInstrumentDecoder.java
│ │ │ ├── ServiceInstrumentEncoder.java
│ │ │ ├── ServiceJSONDecoder.java
│ │ │ └── ServiceJSONEncoder.java
│ │ ├── operator/
│ │ │ ├── ApplicationElementOperator.java
│ │ │ ├── ArchElementOperator.java
│ │ │ ├── ElementOperator.java
│ │ │ ├── ElementOperatorFactory.java
│ │ │ ├── GenericElementOperatorFactory.java
│ │ │ ├── NamespaceOperator.java
│ │ │ └── ServiceElementOperator.java
│ │ └── source/
│ │ ├── ApplicationMetaManipulator.java
│ │ ├── ApplicationNodeManipulator.java
│ │ ├── NamespaceRulesManipulator.java
│ │ ├── NodeMetaManipulator.java
│ │ ├── ServiceInstanceManipulator.java
│ │ ├── ServiceMasterManipulator.java
│ │ ├── ServiceMetaManipulator.java
│ │ ├── ServiceNamespaceManipulator.java
│ │ └── ServiceNodeManipulator.java
│ ├── hydra-framework-storage/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ └── storage/
│ │ ├── ArchFileObjectMeta.java
│ │ ├── ArchStorageConfig.java
│ │ ├── CheckedFile.java
│ │ ├── RandomAccessChanface.java
│ │ ├── ReadChannelRecalled.java
│ │ ├── StorageConfig.java
│ │ ├── StorageConstants.java
│ │ ├── StorageExportIORequest.java
│ │ ├── StorageIOResponse.java
│ │ ├── StorageInstructRequest.java
│ │ ├── StorageInstructResponse.java
│ │ ├── StorageNaming.java
│ │ ├── StorageReceiveIORequest.java
│ │ ├── TitanStorageExportIORequest.java
│ │ ├── TitanStorageIOResponse.java
│ │ ├── TitanStorageNaming.java
│ │ ├── TitanStorageReceiveIORequest.java
│ │ ├── bucket/
│ │ │ ├── BucketInstrument.java
│ │ │ ├── TitanBucketInstrument.java
│ │ │ ├── entity/
│ │ │ │ ├── Bucket.java
│ │ │ │ ├── GenericBucket.java
│ │ │ │ ├── GenericSite.java
│ │ │ │ ├── GenericSiteNode.java
│ │ │ │ ├── Site.java
│ │ │ │ └── SiteNode.java
│ │ │ └── source/
│ │ │ ├── BucketManipulator.java
│ │ │ ├── BucketMasterManipulator.java
│ │ │ ├── SiteManipulator.java
│ │ │ └── SiteNodeManipulator.java
│ │ ├── file/
│ │ │ ├── ClusterSegmentNaming.java
│ │ │ ├── FileConstants.java
│ │ │ ├── FileSystemConfig.java
│ │ │ ├── KOFSClusterSegmentNaming.java
│ │ │ ├── KOMFileSystem.java
│ │ │ ├── KernelFileSystemConfig.java
│ │ │ ├── UniformObjectFileSystem.java
│ │ │ ├── Verification.java
│ │ │ ├── builder/
│ │ │ │ ├── ComponentUOFSBuilder.java
│ │ │ │ ├── Feature.java
│ │ │ │ ├── UOFSBuilder.java
│ │ │ │ └── UOFSComponentor.java
│ │ │ ├── cache/
│ │ │ │ ├── DefaultCacheConstants.java
│ │ │ │ ├── FileSystemCacheConfig.java
│ │ │ │ └── MappedFileSystemCacheConfig.java
│ │ │ ├── entity/
│ │ │ │ ├── ArcReparseSemanticNode.java
│ │ │ │ ├── ArchCluster.java
│ │ │ │ ├── ArchElementNode.java
│ │ │ │ ├── Cluster.java
│ │ │ │ ├── ClusterPage.java
│ │ │ │ ├── ClusterPage64.java
│ │ │ │ ├── DirectlyExternalSymbolic.java
│ │ │ │ ├── ElementNode.java
│ │ │ │ ├── ExternalSymbolic.java
│ │ │ │ ├── FSNodeAllotment.java
│ │ │ │ ├── FileMeta.java
│ │ │ │ ├── FileNode.java
│ │ │ │ ├── FileSystemAttributes.java
│ │ │ │ ├── FileTreeNode.java
│ │ │ │ ├── Folder.java
│ │ │ │ ├── FolderMeta.java
│ │ │ │ ├── GenericExternalSymbolic.java
│ │ │ │ ├── GenericFSNodeAllotment.java
│ │ │ │ ├── GenericFileMeta.java
│ │ │ │ ├── GenericFileNode.java
│ │ │ │ ├── GenericFolder.java
│ │ │ │ ├── GenericFolderMeta.java
│ │ │ │ ├── GenericLocalCluster.java
│ │ │ │ ├── GenericLocalClusterMeta.java
│ │ │ │ ├── GenericRemoteCluster.java
│ │ │ │ ├── GenericSymbolic.java
│ │ │ │ ├── GenericSymbolicMeta.java
│ │ │ │ ├── LocalCluster.java
│ │ │ │ ├── LocalClusterMeta.java
│ │ │ │ ├── RemoteCluster.java
│ │ │ │ ├── ReparseSemanticNode.java
│ │ │ │ ├── Symbolic.java
│ │ │ │ └── SymbolicMeta.java
│ │ │ ├── external/
│ │ │ │ ├── ArchNativeExternalFileObject.java
│ │ │ │ ├── ExternalFile.java
│ │ │ │ ├── ExternalFileObject.java
│ │ │ │ ├── ExternalFileSystemInstrument.java
│ │ │ │ ├── ExternalFolder.java
│ │ │ │ ├── ExternalSymbolicSelector.java
│ │ │ │ ├── GenericNativeExternalFile.java
│ │ │ │ ├── GenericNativeExternalFolder.java
│ │ │ │ ├── KenExternalFileSystemInstrument.java
│ │ │ │ └── KenExternalSymbolicSelector.java
│ │ │ ├── marshaling/
│ │ │ │ ├── ClusterGroup.java
│ │ │ │ └── StripedClusterGroup.java
│ │ │ ├── operator/
│ │ │ │ ├── ArchFileSystemOperator.java
│ │ │ │ ├── FileSystemOperator.java
│ │ │ │ ├── FileSystemOperatorFactory.java
│ │ │ │ ├── GenericExternalSymbolicOperator.java
│ │ │ │ ├── GenericFileOperator.java
│ │ │ │ ├── GenericFileSystemOperatorFactory.java
│ │ │ │ └── GenericFolderOperator.java
│ │ │ ├── source/
│ │ │ │ ├── ExternalSymbolicManipulator.java
│ │ │ │ ├── FileManipulator.java
│ │ │ │ ├── FileMasterManipulator.java
│ │ │ │ ├── FileMetaManipulator.java
│ │ │ │ ├── FileSystemAttributeManipulator.java
│ │ │ │ ├── FolderManipulator.java
│ │ │ │ ├── FolderMetaManipulator.java
│ │ │ │ ├── FolderVolumeMappingManipulator.java
│ │ │ │ ├── LocalClusterManipulator.java
│ │ │ │ ├── RemoteClusterManipulator.java
│ │ │ │ ├── SymbolicManipulator.java
│ │ │ │ └── SymbolicMetaManipulator.java
│ │ │ └── transmit/
│ │ │ ├── UniformSourceLocator.java
│ │ │ ├── exporter/
│ │ │ │ ├── ArchFileExporterEntity.java
│ │ │ │ ├── FileExport.java
│ │ │ │ ├── FileExport64.java
│ │ │ │ ├── FileExportEntity.java
│ │ │ │ ├── FileExportEntity64.java
│ │ │ │ ├── TitanFileExport64.java
│ │ │ │ └── TitanFileExportEntity64.java
│ │ │ └── receiver/
│ │ │ ├── ArchFileReceiveEntity.java
│ │ │ ├── FileReceive.java
│ │ │ ├── FileReceive64.java
│ │ │ ├── FileReceiveEntity.java
│ │ │ ├── FileReceiveEntity64.java
│ │ │ ├── TitanFileReceive64.java
│ │ │ └── TitanFileReceiveEntity64.java
│ │ ├── io/
│ │ │ ├── Chanface.java
│ │ │ ├── ChanfaceReader.java
│ │ │ ├── ChannelRecalled.java
│ │ │ ├── TitanFileChannelChanface.java
│ │ │ ├── TitanInputStreamChanface.java
│ │ │ ├── TitanOutputStreamChanface.java
│ │ │ ├── TitanRandomInputStreamAccessChanface.java
│ │ │ └── UIOException.java
│ │ ├── mfs/
│ │ │ ├── GenericNativeMFile.java
│ │ │ ├── MFile.java
│ │ │ ├── MappingFileSystem.java
│ │ │ ├── NativeMFile.java
│ │ │ └── NativeMappingFileSystem.java
│ │ ├── natives/
│ │ │ └── NativeExternalFileSystems.java
│ │ ├── policy/
│ │ │ ├── PolicyManage.java
│ │ │ ├── TitanPolicyManage.java
│ │ │ ├── chain/
│ │ │ │ ├── PolicyChain.java
│ │ │ │ ├── VersionPolicyChain.java
│ │ │ │ └── factory/
│ │ │ │ └── PolicyChainFactory.java
│ │ │ ├── entity/
│ │ │ │ ├── GenericPolicy.java
│ │ │ │ └── Policy.java
│ │ │ └── source/
│ │ │ ├── PolicyFileMappingManipulator.java
│ │ │ ├── PolicyManipulator.java
│ │ │ └── PolicyMasterManipulator.java
│ │ ├── remote/
│ │ │ ├── RemoteFSInstrument.java
│ │ │ └── RemoteUOFSInstrument.java
│ │ ├── version/
│ │ │ ├── TitanVersionManage.java
│ │ │ ├── VersionManage.java
│ │ │ ├── entity/
│ │ │ │ ├── TitanVersion.java
│ │ │ │ ├── TitanVersionMapping.java
│ │ │ │ ├── Version.java
│ │ │ │ └── VersionMapping.java
│ │ │ └── source/
│ │ │ ├── VersionManipulator.java
│ │ │ ├── VersionMappingManipulator.java
│ │ │ └── VersionMasterManipulator.java
│ │ └── volume/
│ │ ├── IUnifiedTransmitConstructor.java
│ │ ├── KernelVolumeConfig.java
│ │ ├── TitanVolumeFile.java
│ │ ├── UnifiedTransmitConstructor.java
│ │ ├── UniformVolumeManager.java
│ │ ├── VolumeConfig.java
│ │ ├── VolumeConstants.java
│ │ ├── VolumeFile.java
│ │ ├── VolumeManager.java
│ │ ├── VolumePoliceDog.java
│ │ ├── entity/
│ │ │ ├── ArchExportEntity.java
│ │ │ ├── ArchLogicVolume.java
│ │ │ ├── ArchReceiveEntity.java
│ │ │ ├── ArchVolume.java
│ │ │ ├── DirectReceiver.java
│ │ │ ├── Exporter.java
│ │ │ ├── ExporterEntity.java
│ │ │ ├── LogicVolume.java
│ │ │ ├── MirroredVolume.java
│ │ │ ├── MountPoint.java
│ │ │ ├── PhysicalVolume.java
│ │ │ ├── ReceiveEntity.java
│ │ │ ├── Receiver.java
│ │ │ ├── SimpleVolume.java
│ │ │ ├── SpannedVolume.java
│ │ │ ├── StripedReceiver.java
│ │ │ ├── StripedVolume.java
│ │ │ ├── TitanMountPoint.java
│ │ │ ├── TitanVolumeAllotment.java
│ │ │ ├── TitanVolumeCapacity64.java
│ │ │ ├── Volume.java
│ │ │ ├── VolumeAllotment.java
│ │ │ ├── VolumeCapacity64.java
│ │ │ └── local/
│ │ │ ├── LocalMirroredVolume.java
│ │ │ ├── LocalPhysicalVolume.java
│ │ │ ├── LocalSimpleVolume.java
│ │ │ ├── LocalSpannedVolume.java
│ │ │ ├── LocalStripedVolume.java
│ │ │ ├── VolumeCapacity.java
│ │ │ ├── mirrored/
│ │ │ │ └── TitanLocalMirroredVolume.java
│ │ │ ├── physical/
│ │ │ │ ├── TitanLocalPhysicalVolume.java
│ │ │ │ ├── export/
│ │ │ │ │ ├── DirectExport.java
│ │ │ │ │ ├── DirectExport64.java
│ │ │ │ │ ├── DirectExportEntity.java
│ │ │ │ │ ├── DirectExportEntity64.java
│ │ │ │ │ ├── TitanDirectExport64.java
│ │ │ │ │ └── TitanDirectExportEntity64.java
│ │ │ │ └── receive/
│ │ │ │ ├── DirectReceive.java
│ │ │ │ ├── DirectReceive64.java
│ │ │ │ ├── DirectReceiveEntity.java
│ │ │ │ ├── DirectReceiveEntity64.java
│ │ │ │ ├── TitanDirectReceive64.java
│ │ │ │ └── TitanDirectReceiveEntity64.java
│ │ │ ├── simple/
│ │ │ │ ├── TitanLocalSimpleVolume.java
│ │ │ │ ├── export/
│ │ │ │ │ ├── SimpleExport.java
│ │ │ │ │ ├── SimpleExport64.java
│ │ │ │ │ ├── SimpleExportEntity.java
│ │ │ │ │ ├── SimpleExportEntity64.java
│ │ │ │ │ ├── TitanSimpleExport64.java
│ │ │ │ │ └── TitanSimpleExportEntity64.java
│ │ │ │ └── recevice/
│ │ │ │ ├── SimpleReceive.java
│ │ │ │ ├── SimpleReceive64.java
│ │ │ │ ├── SimpleReceiveEntity.java
│ │ │ │ ├── SimpleReceiveEntity64.java
│ │ │ │ ├── SimpleReceiver.java
│ │ │ │ ├── SimpleReceiverEntity.java
│ │ │ │ ├── TitanSimpleReceive64.java
│ │ │ │ ├── TitanSimpleReceiveEntity64.java
│ │ │ │ ├── channel/
│ │ │ │ │ ├── SimpleChannelReceiver.java
│ │ │ │ │ ├── SimpleChannelReceiver64.java
│ │ │ │ │ ├── SimpleChannelReceiverEntity.java
│ │ │ │ │ ├── SimpleChannelReceiverEntity64.java
│ │ │ │ │ ├── TitanSimpleChannelReceiver64.java
│ │ │ │ │ └── TitanSimpleChannelReceiverEntity64.java
│ │ │ │ └── stream/
│ │ │ │ ├── SimpleStreamReceiveEntity.java
│ │ │ │ ├── SimpleStreamReceiveEntity64.java
│ │ │ │ ├── SimpleStreamReceiver.java
│ │ │ │ ├── SimpleStreamReceiver64.java
│ │ │ │ ├── TitanSimpleStreamReceive64.java
│ │ │ │ └── TitanSimpleStreamReceiveEntity64.java
│ │ │ ├── spanned/
│ │ │ │ ├── TitanLocalSpannedVolume.java
│ │ │ │ ├── export/
│ │ │ │ │ ├── SpannedExport.java
│ │ │ │ │ ├── SpannedExport64.java
│ │ │ │ │ ├── SpannedExportEntity.java
│ │ │ │ │ ├── SpannedExportEntity64.java
│ │ │ │ │ ├── TitanSpannedExport64.java
│ │ │ │ │ └── TitanSpannedExportEntity64.java
│ │ │ │ └── receive/
│ │ │ │ ├── SpannedReceive.java
│ │ │ │ ├── SpannedReceive64.java
│ │ │ │ ├── SpannedReceiveEntity.java
│ │ │ │ ├── SpannedReceiveEntity64.java
│ │ │ │ ├── TitanSpannedReceive64.java
│ │ │ │ └── TitanSpannedReceiveEntity64.java
│ │ │ └── striped/
│ │ │ ├── BufferOutMate.java
│ │ │ ├── BufferOutStatus.java
│ │ │ ├── BufferWriteStatus.java
│ │ │ ├── CacheBlock.java
│ │ │ ├── CacheBlockStatus.java
│ │ │ ├── LocalStripedTaskThread.java
│ │ │ ├── ReceiveBufferInStatus.java
│ │ │ ├── ReceiveBufferOutStatus.java
│ │ │ ├── StripBufferInJob.java
│ │ │ ├── StripBufferOutJob.java
│ │ │ ├── StripBufferStatus.java
│ │ │ ├── StripCacheBlock.java
│ │ │ ├── StripChannelReceiverJob.java
│ │ │ ├── StripExportJob.java
│ │ │ ├── StripLockEntity.java
│ │ │ ├── StripReceiveBufferInJob.java
│ │ │ ├── StripReceiveBufferOutJob.java
│ │ │ ├── StripReceiverJob.java
│ │ │ ├── StripTerminalStateRecord.java
│ │ │ ├── TerminalStateRecord.java
│ │ │ ├── TitanLocalStripedVolume.java
│ │ │ ├── TitanStripBufferInJob.java
│ │ │ ├── TitanStripBufferOutJob.java
│ │ │ ├── TitanStripLockEntity.java
│ │ │ ├── TitanStripReceiveBufferInJob.java
│ │ │ ├── TitanStripReceiveBufferOutJob.java
│ │ │ ├── TitanStripReceiverJob.java
│ │ │ ├── export/
│ │ │ │ ├── StripedExport.java
│ │ │ │ ├── StripedExport64.java
│ │ │ │ ├── StripedExportEntity.java
│ │ │ │ ├── StripedExportEntity64.java
│ │ │ │ ├── TitanStripedExport64.java
│ │ │ │ ├── TitanStripedExportEntity64.java
│ │ │ │ └── channel/
│ │ │ │ ├── StripedChannelExport.java
│ │ │ │ ├── StripedChannelExport64.java
│ │ │ │ ├── StripedChannelExportEntity.java
│ │ │ │ ├── StripedChannelExportEntity64.java
│ │ │ │ ├── TitanStripedChannelExport64.java
│ │ │ │ └── TitanStripedChannelExportEntity64.java
│ │ │ └── receive/
│ │ │ ├── StripedReceive.java
│ │ │ ├── StripedReceive64.java
│ │ │ ├── StripedReceiveEntity.java
│ │ │ ├── StripedReceiveEntity64.java
│ │ │ ├── StripedReceiver.java
│ │ │ ├── StripedReceiverEntity.java
│ │ │ ├── TitanStripedReceive64.java
│ │ │ ├── TitanStripedReceiveEntity64.java
│ │ │ ├── channnel/
│ │ │ │ ├── StripedChannelReceiver.java
│ │ │ │ ├── StripedChannelReceiver64.java
│ │ │ │ ├── StripedChannelReceiverEntity.java
│ │ │ │ ├── StripedChannelReceiverEntity64.java
│ │ │ │ ├── TitanStripedChannelReceiver64.java
│ │ │ │ └── TitanStripedChannelReceiverEntity64.java
│ │ │ └── stream/
│ │ │ ├── StripedStreamReceive.java
│ │ │ ├── StripedStreamReceive64.java
│ │ │ ├── StripedStreamReceiveEntity.java
│ │ │ ├── StripedStreamReceiveEntity64.java
│ │ │ ├── TitanStripedStreamReceive64.java
│ │ │ └── TitanStripedStreamReceiveEntity64.java
│ │ ├── kvfs/
│ │ │ ├── ExecutorPool.java
│ │ │ ├── KenVolumeFileSystem.java
│ │ │ ├── KenusPool.java
│ │ │ └── OnVolumeFileSystem.java
│ │ ├── operator/
│ │ │ ├── ArchVolumeOperator.java
│ │ │ ├── SimpleVolumeOperator.java
│ │ │ ├── SpannedVolumeOperator.java
│ │ │ ├── StripedVolumeOperator.java
│ │ │ ├── TitanVolumeOperatorFactory.java
│ │ │ ├── VolumeOperator.java
│ │ │ └── VolumeOperatorFactory.java
│ │ ├── policy/
│ │ │ ├── Dummy.java
│ │ │ └── strip/
│ │ │ ├── ArchSizingMatcher.java
│ │ │ ├── DynamicStripSizingPolicy.java
│ │ │ ├── GenericDynamicStripSizingPolicy.java
│ │ │ ├── MegaFileSizingMatcher64.java
│ │ │ ├── SizingMatcher.java
│ │ │ ├── SmallFileSizingMatcher64.java
│ │ │ └── TinyFileSizingMatcher64.java
│ │ ├── runtime/
│ │ │ ├── ArchStripedTaskThread.java
│ │ │ ├── ArchTaskThread.java
│ │ │ ├── MasterVolumeGram.java
│ │ │ ├── TaskThread.java
│ │ │ ├── VolumeGram.java
│ │ │ ├── VolumeJob.java
│ │ │ └── VolumeJobCompromiseException.java
│ │ └── source/
│ │ ├── LineSegmentManipulator.java
│ │ ├── LogicVolumeManipulator.java
│ │ ├── MirroredVolumeManipulator.java
│ │ ├── MountPointManipulator.java
│ │ ├── PhysicalVolumeManipulator.java
│ │ ├── SQLiteVolumeManipulator.java
│ │ ├── SimpleVolumeManipulator.java
│ │ ├── SpannedVolumeManipulator.java
│ │ ├── StripedVolumeManipulator.java
│ │ ├── VolumeAllocateManipulator.java
│ │ ├── VolumeCapacityManipulator.java
│ │ ├── VolumeMasterManipulator.java
│ │ └── VolumeTreeManipulator.java
│ ├── hydra-kom-default-driver/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ └── hydra/
│ │ │ ├── FileOwnerMapper.java
│ │ │ ├── account/
│ │ │ │ └── ibatis/
│ │ │ │ ├── AuthorizationMapper.java
│ │ │ │ ├── CredentialMapper.java
│ │ │ │ ├── DomainNodeMapper.java
│ │ │ │ ├── GroupNodeMapper.java
│ │ │ │ ├── PrivilegeMapper.java
│ │ │ │ ├── RoleMapper.java
│ │ │ │ ├── UserNodeMapper.java
│ │ │ │ ├── UserOwnerMapper.java
│ │ │ │ ├── UserPathCacheMapper.java
│ │ │ │ ├── UserTreeMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── UserMappingDriver.java
│ │ │ │ ├── UserMasterManipulatorImpl.java
│ │ │ │ └── UserMasterTreeManipulatorImpl.java
│ │ │ ├── bucket/
│ │ │ │ └── ibatis/
│ │ │ │ ├── BucketMapping.java
│ │ │ │ ├── SiteMapping.java
│ │ │ │ ├── SiteNodeMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── BucketMappingDriver.java
│ │ │ │ └── BucketMasterManipulatorImpl.java
│ │ │ ├── deploy/
│ │ │ │ └── ibatis/
│ │ │ │ ├── ClusterNodeMapper.java
│ │ │ │ ├── ContainerElementMapper.java
│ │ │ │ ├── DeployNamespaceMapper.java
│ │ │ │ ├── DeployNodeMapper.java
│ │ │ │ ├── DeployNodeMetaMapper.java
│ │ │ │ ├── DeployNodeOwnerMapper.java
│ │ │ │ ├── DeployNodePathCacheMapper.java
│ │ │ │ ├── DeployServiceInsMappingMapper.java
│ │ │ │ ├── DeployTreeMapper.java
│ │ │ │ ├── PhysicalHostMapper.java
│ │ │ │ ├── QuickElementMapper.java
│ │ │ │ ├── VirtualMachineMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── DeployMappingDriver.java
│ │ │ │ ├── DeployMasterManipulatorImpl.java
│ │ │ │ └── DeployMasterTreeManipulatorImpl.java
│ │ │ ├── entity/
│ │ │ │ └── ibatis/
│ │ │ │ ├── GUID128TypeHandler.java
│ │ │ │ ├── GUID72TypeHandler.java
│ │ │ │ ├── GUIDTypeHandler.java
│ │ │ │ ├── UOITypeHandler.java
│ │ │ │ ├── URITypeHandler.java
│ │ │ │ └── hydranium/
│ │ │ │ └── ArchMappingDriver.java
│ │ │ ├── file/
│ │ │ │ └── ibatis/
│ │ │ │ ├── ExternalSymbolicMapper.java
│ │ │ │ ├── FileMapper.java
│ │ │ │ ├── FileMetaMapper.java
│ │ │ │ ├── FileOwnerMapper.java
│ │ │ │ ├── FilePathCacheMapper.java
│ │ │ │ ├── FileSystemAttributeMapper.java
│ │ │ │ ├── FileTreeMapper.java
│ │ │ │ ├── FolderMapper.java
│ │ │ │ ├── FolderMetaMapper.java
│ │ │ │ ├── FolderVolumeMappingMapper.java
│ │ │ │ ├── LocalClusterMapper.java
│ │ │ │ ├── RemoteClusterMapper.java
│ │ │ │ ├── SymbolicMapper.java
│ │ │ │ ├── SymbolicMetaMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── FileMappingDriver.java
│ │ │ │ ├── FileMasterManipulatorImpl.java
│ │ │ │ └── FileMasterTreeManipulatorImpl.java
│ │ │ ├── layer/
│ │ │ │ └── ibatis/
│ │ │ │ ├── LayerCachePathMapper.java
│ │ │ │ ├── LayerHandleMapper.java
│ │ │ │ ├── LayerMapper.java
│ │ │ │ ├── LayerOwnerMapper.java
│ │ │ │ ├── LayerTreeMapper.java
│ │ │ │ ├── NamespaceMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── LayerMappingDriver.java
│ │ │ │ ├── LayerMasterManipulatorImpl.java
│ │ │ │ └── LayerMasterTreeManipulatorImpl.java
│ │ │ ├── policy/
│ │ │ │ └── ibatis/
│ │ │ │ ├── PolicyFileMappingMapper.java
│ │ │ │ ├── PolicyMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── PolicyMappingDriver.java
│ │ │ │ └── PolicyMasterManipulatorImpl.java
│ │ │ ├── queue/
│ │ │ │ └── ibatis/
│ │ │ │ ├── AtlasExecuteQueueMapper.java
│ │ │ │ ├── AtlasStratumQueueMapper.java
│ │ │ │ ├── QueueExistMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── QueueMappingDriver.java
│ │ │ │ └── QueueMasterManipulatorImpl.java
│ │ │ ├── registry/
│ │ │ │ └── ibatis/
│ │ │ │ ├── RegistryAttributesMapper.java
│ │ │ │ ├── RegistryConfigNodeMapper.java
│ │ │ │ ├── RegistryNSNodeMapper.java
│ │ │ │ ├── RegistryNSNodeMetaMapper.java
│ │ │ │ ├── RegistryNodeMetaMapper.java
│ │ │ │ ├── RegistryNodeOwnerMapper.java
│ │ │ │ ├── RegistryNodePathCacheMapper.java
│ │ │ │ ├── RegistryPropertiesMapper.java
│ │ │ │ ├── RegistryTextFileMapper.java
│ │ │ │ ├── RegistryTreeMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── RegistryMappingDriver.java
│ │ │ │ ├── RegistryMasterManipulatorImpl.java
│ │ │ │ └── RegistryMasterTreeManipulatorImpl.java
│ │ │ ├── scenario/
│ │ │ │ └── ibatis/
│ │ │ │ ├── ScenarioCommonDataMapper.java
│ │ │ │ ├── ScenarioNamespaceNodeMapper.java
│ │ │ │ ├── ScenarioNamespaceNodeMetaMapper.java
│ │ │ │ ├── ScenarioNodeOwnerMapper.java
│ │ │ │ ├── ScenarioNodePathCacheMapper.java
│ │ │ │ ├── ScenarioTreeMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── ScenarioMappingDriver.java
│ │ │ │ ├── ScenarioMasterManipulatorImpl.java
│ │ │ │ └── ScenarioMasterTreeManipulatorImpl.java
│ │ │ ├── service/
│ │ │ │ └── ibatis/
│ │ │ │ ├── AppNodeMetaMapper.java
│ │ │ │ ├── ApplicationNodeMapper.java
│ │ │ │ ├── NamespaceRulesMapper.java
│ │ │ │ ├── ServiceInstanceMapper.java
│ │ │ │ ├── ServiceMetaMapper.java
│ │ │ │ ├── ServiceNamespaceMapper.java
│ │ │ │ ├── ServiceNodeMapper.java
│ │ │ │ ├── ServiceNodeMetaMapper.java
│ │ │ │ ├── ServiceNodeOwnerMapper.java
│ │ │ │ ├── ServicePathCacheMapper.java
│ │ │ │ ├── ServiceTreeMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── ServiceMappingDriver.java
│ │ │ │ ├── ServiceMasterManipulatorImpl.java
│ │ │ │ └── ServiceMasterTreeManipulatorImpl.java
│ │ │ ├── task/
│ │ │ │ └── ibatis/
│ │ │ │ ├── AppNodeMapper.java
│ │ │ │ ├── InstanceNodeMapper.java
│ │ │ │ ├── TaskNamespaceMapper.java
│ │ │ │ ├── TaskNodeMapper.java
│ │ │ │ ├── TaskNodeOwnerMapper.java
│ │ │ │ ├── TaskPathCacheMapper.java
│ │ │ │ ├── TaskTreeMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── TaskMappingDriver.java
│ │ │ │ ├── TaskMasterManipulatorImpl.java
│ │ │ │ └── TaskMasterTreeManipulatorImpl.java
│ │ │ ├── version/
│ │ │ │ └── ibatis/
│ │ │ │ ├── VersionMapper.java
│ │ │ │ ├── VersionMappingMapper.java
│ │ │ │ └── hydranium/
│ │ │ │ ├── VersionMappingDriver.java
│ │ │ │ └── VersionMasterManipulatorImpl.java
│ │ │ └── volume/
│ │ │ └── ibatis/
│ │ │ ├── LineSegmentMapper.java
│ │ │ ├── MirroredVolumeMapper.java
│ │ │ ├── MountPointMapper.java
│ │ │ ├── PhysicalVolumeMapper.java
│ │ │ ├── PrimeLogicVolumeMapper.java
│ │ │ ├── SQLiteVolumeMapper.java
│ │ │ ├── SimpleVolumeMapper.java
│ │ │ ├── SpannedVolumeMapper.java
│ │ │ ├── StripedVolumeMapper.java
│ │ │ ├── VolumeAllocateMapper.java
│ │ │ ├── VolumeCachePathMapper.java
│ │ │ ├── VolumeCapacityMapper.java
│ │ │ ├── VolumeOwnerMapper.java
│ │ │ ├── VolumeTreeMapper.java
│ │ │ └── hydranium/
│ │ │ ├── VolumeMappingDriver.java
│ │ │ ├── VolumeMasterManipulatorImpl.java
│ │ │ └── VolumeMasterTreeManipulatorImpl.java
│ │ └── resources/
│ │ └── mapper/
│ │ └── kernel/
│ │ └── task/
│ │ ├── InstanceNodeMapper.xml
│ │ └── TaskNodeMapper.xml
│ ├── hydra-lib-grpc-service-sdk/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ └── hydra/
│ │ │ ├── grpc/
│ │ │ │ ├── client/
│ │ │ │ │ ├── GrpcAppointClient.java
│ │ │ │ │ └── GrpcClientConfig.java
│ │ │ │ └── server/
│ │ │ │ ├── GrpcAppointServer.java
│ │ │ │ ├── GrpcProcess.java
│ │ │ │ └── GrpcServerConfig.java
│ │ │ └── service/
│ │ │ └── registry/
│ │ │ └── grpc/
│ │ │ ├── client/
│ │ │ │ └── GrpcServiceClient.java
│ │ │ └── server/
│ │ │ ├── ClientMetaDataInterceptor.java
│ │ │ ├── GrpcControlStreamService.java
│ │ │ ├── GrpcServiceAppointServer.java
│ │ │ ├── GrpcServiceClientile.java
│ │ │ ├── GrpcServiceLifecycleService.java
│ │ │ ├── GrpcServiceMetaService.java
│ │ │ ├── GrpcSession.java
│ │ │ ├── cs/
│ │ │ │ ├── ControlMessage.java
│ │ │ │ ├── ControlMessageOrBuilder.java
│ │ │ │ ├── ControlStreamGrpc.java
│ │ │ │ └── ControlStreamOuterClass.java
│ │ │ ├── iface/
│ │ │ │ ├── ServiceLifecycleImpl.java
│ │ │ │ └── ServiceMetaManipulationIfaceImpl.java
│ │ │ ├── lifecycle/
│ │ │ │ ├── BoolReply.java
│ │ │ │ ├── BoolReplyOrBuilder.java
│ │ │ │ ├── ClientIdRequest.java
│ │ │ │ ├── ClientIdRequestOrBuilder.java
│ │ │ │ ├── CountReply.java
│ │ │ │ ├── CountReplyOrBuilder.java
│ │ │ │ ├── CreateInstanceMetaRequest.java
│ │ │ │ ├── CreateInstanceMetaRequestOrBuilder.java
│ │ │ │ ├── EmptyReply.java
│ │ │ │ ├── EmptyReplyOrBuilder.java
│ │ │ │ ├── EmptyRequest.java
│ │ │ │ ├── EmptyRequestOrBuilder.java
│ │ │ │ ├── InstanceIdRequest.java
│ │ │ │ ├── InstanceIdRequestOrBuilder.java
│ │ │ │ ├── RegisterServiceReply.java
│ │ │ │ ├── RegisterServiceReplyOrBuilder.java
│ │ │ │ ├── RegisterServiceRequest.java
│ │ │ │ ├── RegisterServiceRequestOrBuilder.java
│ │ │ │ ├── ServiceIdRequest.java
│ │ │ │ ├── ServiceIdRequestOrBuilder.java
│ │ │ │ ├── ServiceLifecycleGrpc.java
│ │ │ │ └── ServiceLifecycleProto.java
│ │ │ └── meta/
│ │ │ ├── ClientIdRequest.java
│ │ │ ├── ClientIdRequestOrBuilder.java
│ │ │ ├── CreateNewServiceRequest.java
│ │ │ ├── CreateNewServiceRequestOrBuilder.java
│ │ │ ├── EvalRequest.java
│ │ │ ├── EvalRequestOrBuilder.java
│ │ │ ├── GuidRequest.java
│ │ │ ├── GuidRequestOrBuilder.java
│ │ │ ├── PathRequest.java
│ │ │ ├── PathRequestOrBuilder.java
│ │ │ ├── ServiceIdRequest.java
│ │ │ ├── ServiceIdRequestOrBuilder.java
│ │ │ ├── ServiceMetaDTO.java
│ │ │ ├── ServiceMetaDTOListReply.java
│ │ │ ├── ServiceMetaDTOListReplyOrBuilder.java
│ │ │ ├── ServiceMetaDTOOrBuilder.java
│ │ │ ├── ServiceMetaDTOReply.java
│ │ │ ├── ServiceMetaDTOReplyOrBuilder.java
│ │ │ ├── ServiceMetaGrpc.java
│ │ │ ├── ServiceMetaProto.java
│ │ │ ├── StringReply.java
│ │ │ └── StringReplyOrBuilder.java
│ │ └── proto/
│ │ ├── control_stream.proto
│ │ ├── service_lifecycle.proto
│ │ └── service_meta.proto
│ ├── hydra-lib-thrift-sdk/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── pinecone/
│ │ │ │ └── hydra/
│ │ │ │ └── thrift/
│ │ │ │ ├── GenericThriftServiceRegistry.java
│ │ │ │ ├── MCConnectionArguments.java
│ │ │ │ ├── SharedConnectionArguments.java
│ │ │ │ ├── ThriftServiceRegistry.java
│ │ │ │ ├── client/
│ │ │ │ │ ├── GenericMultiplexedThriftClient.java
│ │ │ │ │ ├── GenericThriftClient.java
│ │ │ │ │ ├── MultiplexedThriftClient.java
│ │ │ │ │ └── ThriftClient.java
│ │ │ │ ├── server/
│ │ │ │ │ ├── GenericThriftServer.java
│ │ │ │ │ ├── MultiplexedServer.java
│ │ │ │ │ ├── ServerConnectArguments.java
│ │ │ │ │ ├── ServerConnectionArguments.java
│ │ │ │ │ └── ThriftServer.java
│ │ │ │ └── service/
│ │ │ │ ├── HelloWorldService.java
│ │ │ │ └── impl/
│ │ │ │ └── HelloWorldServiceImpl.java
│ │ │ └── resources/
│ │ │ └── thrift/
│ │ │ └── hellow.thrift
│ │ └── test/
│ │ └── java/
│ │ ├── com/
│ │ │ └── thrift/
│ │ │ ├── TestThriftClient.java
│ │ │ └── TestThriftService.java
│ │ └── org/
│ │ └── example/
│ │ └── AppTest.java
│ ├── hydra-lib-uofs-cache/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ └── hydra/
│ │ │ └── storage/
│ │ │ └── file/
│ │ │ └── UOFSCacheComponentor.java
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── example/
│ │ └── AppTest.java
│ ├── hydra-message-broadcast/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ └── umb/
│ │ ├── UMBBytesDecoder.java
│ │ ├── UMBClientException.java
│ │ ├── UMBHead.java
│ │ ├── UMBPHeadV1.java
│ │ ├── UMBServiceException.java
│ │ ├── UMCPackageMessageEncoder.java
│ │ ├── UlfMBInformMessage.java
│ │ ├── UlfPackageMessageEncoder.java
│ │ ├── UlfPackageMessageHandler.java
│ │ ├── broadcast/
│ │ │ ├── ArchUnidirectionalMCProtocol.java
│ │ │ ├── BroadcastConsumer.java
│ │ │ ├── BroadcastControlAgent.java
│ │ │ ├── BroadcastControlConsumer.java
│ │ │ ├── BroadcastControlNode.java
│ │ │ ├── BroadcastControlProducer.java
│ │ │ ├── BroadcastNode.java
│ │ │ ├── BroadcastPollConsumer.java
│ │ │ ├── BroadcastProducer.java
│ │ │ ├── DistributedConsumer.java
│ │ │ ├── GenericUNT.java
│ │ │ ├── PollResult.java
│ │ │ ├── PushConsumer.java
│ │ │ ├── UMCBroadcastConsumer.java
│ │ │ ├── UMCBroadcastNode.java
│ │ │ ├── UMCBroadcastProducer.java
│ │ │ ├── UNT.java
│ │ │ ├── converter/
│ │ │ │ ├── GenericResultBytesConverter.java
│ │ │ │ └── ResultBytesConverter.java
│ │ │ └── proxy/
│ │ │ ├── GenericIfaceProxyFactory.java
│ │ │ └── IfaceProxyFactory.java
│ │ ├── kafka/
│ │ │ ├── KBroadcastPollConsumer.java
│ │ │ ├── KBroadcastProducer.java
│ │ │ ├── KClient.java
│ │ │ ├── KConfig.java
│ │ │ ├── KafkaClient.java
│ │ │ ├── KafkaConfig.java
│ │ │ ├── KafkaConstants.java
│ │ │ ├── KafkaMedium.java
│ │ │ ├── KafkaPollResult.java
│ │ │ ├── KafkaReceiver.java
│ │ │ ├── KafkaTransmit.java
│ │ │ ├── UlfBroadcastPollConsumer.java
│ │ │ ├── UlfBroadcastProducer.java
│ │ │ ├── UlfKafkaClient.java
│ │ │ ├── WolfKafkaConsumer.java
│ │ │ ├── WolfKafkaProducer.java
│ │ │ └── WolfMCKafkaClient.java
│ │ ├── rabbit/
│ │ │ ├── RabbitMQClient.java
│ │ │ └── RabbitMedium.java
│ │ ├── rocket/
│ │ │ ├── ArchMQConsumer.java
│ │ │ ├── RocketClient.java
│ │ │ ├── RocketConfig.java
│ │ │ ├── RocketConstants.java
│ │ │ ├── RocketMQClient.java
│ │ │ ├── RocketMQConfig.java
│ │ │ ├── RocketMedium.java
│ │ │ ├── RocketReceiver.java
│ │ │ ├── RocketTransmit.java
│ │ │ ├── UlfBroadcastProducer.java
│ │ │ ├── UlfPushConsumer.java
│ │ │ ├── UlfRocketClient.java
│ │ │ ├── WolfBroadcastProducer.java
│ │ │ ├── WolfMCRocketClient.java
│ │ │ └── WolfPushConsumer.java
│ │ └── wolf/
│ │ ├── ArchBroadcastControlAgent.java
│ │ ├── ArchUlfBroadcastControlAgent.java
│ │ ├── UlfBroadcastControlAgent.java
│ │ ├── UlfBroadcastControlNode.java
│ │ ├── UlfBroadcastControlProducer.java
│ │ ├── WolfMCBClient.java
│ │ ├── WolfMCBConsumer.java
│ │ └── WolfMCBProducer.java
│ ├── hydra-message-control/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ └── hydra/
│ │ │ ├── appoints/
│ │ │ │ └── AppointNodus.java
│ │ │ ├── uma/
│ │ │ │ ├── ActingDuplexExpress.java
│ │ │ │ ├── AppointClient.java
│ │ │ │ ├── AppointNode.java
│ │ │ │ ├── AppointServer.java
│ │ │ │ ├── ArchAppointNode.java
│ │ │ │ ├── ArchDuplexExpress.java
│ │ │ │ ├── ArchUlfAppointNode.java
│ │ │ │ ├── AsynMsgHandler.java
│ │ │ │ ├── AsynReturnHandler.java
│ │ │ │ ├── DuplexAppointClient.java
│ │ │ │ ├── DuplexAppointNode.java
│ │ │ │ ├── DuplexAppointServer.java
│ │ │ │ ├── HuskyDuplexExpress.java
│ │ │ │ ├── UlfAppointClient.java
│ │ │ │ ├── UlfAppointNode.java
│ │ │ │ ├── UlfAppointServer.java
│ │ │ │ ├── UlfDuplexAppointClient.java
│ │ │ │ ├── UlfDuplexAppointServer.java
│ │ │ │ ├── pool/
│ │ │ │ │ └── GenericMultiClientChannelRegistry.java
│ │ │ │ ├── proxy/
│ │ │ │ │ ├── GenericIfaceProxyFactory.java
│ │ │ │ │ ├── GenericPassiveClientIfaceProxyFactory.java
│ │ │ │ │ ├── IfaceProxyFactory.java
│ │ │ │ │ └── PassiveClientIfaceProxyFactory.java
│ │ │ │ └── wolf/
│ │ │ │ ├── WolfAppointClient.java
│ │ │ │ ├── WolfAppointHelper.java
│ │ │ │ ├── WolfAppointServer.java
│ │ │ │ ├── WolvesAppointClient.java
│ │ │ │ └── WolvesAppointServer.java
│ │ │ ├── umc/
│ │ │ │ ├── io/
│ │ │ │ │ ├── ChannelInputStream.java
│ │ │ │ │ ├── ChannelOutputStream.java
│ │ │ │ │ ├── IOCounter.java
│ │ │ │ │ └── IOLoadBalanceStrategy.java
│ │ │ │ ├── msg/
│ │ │ │ │ ├── AbstractUMCHead.java
│ │ │ │ │ ├── ArchBytesTransferMessage.java
│ │ │ │ │ ├── ArchInformCMessage.java
│ │ │ │ │ ├── ArchInformMessage.java
│ │ │ │ │ ├── ArchStreamTransferMessage.java
│ │ │ │ │ ├── ArchUMCMessage.java
│ │ │ │ │ ├── ArchUMCProtocol.java
│ │ │ │ │ ├── ArchUMCReceiver.java
│ │ │ │ │ ├── ArchUMCTransmit.java
│ │ │ │ │ ├── AsynChannelAllocator.java
│ │ │ │ │ ├── AsyncMessenger.java
│ │ │ │ │ ├── AsyncMessengerChannelControlBlock.java
│ │ │ │ │ ├── AsyncMsgHandleAdapter.java
│ │ │ │ │ ├── CascadeMessageNode.java
│ │ │ │ │ ├── ChannelAllocateException.java
│ │ │ │ │ ├── ChannelControlBlock.java
│ │ │ │ │ ├── ChannelHandleException.java
│ │ │ │ │ ├── ChannelPool.java
│ │ │ │ │ ├── ChannelStatus.java
│ │ │ │ │ ├── EMCBytesDecoder.java
│ │ │ │ │ ├── EMCHead.java
│ │ │ │ │ ├── ExtraEncode.java
│ │ │ │ │ ├── FairChannelPool.java
│ │ │ │ │ ├── GenericEMCBytesDecoder.java
│ │ │ │ │ ├── IdleFirstBalanceStrategy.java
│ │ │ │ │ ├── InformMessage.java
│ │ │ │ │ ├── MappedChannelPool.java
│ │ │ │ │ ├── Medium.java
│ │ │ │ │ ├── MediumTerminationException.java
│ │ │ │ │ ├── Message.java
│ │ │ │ │ ├── MessageNode.java
│ │ │ │ │ ├── MessageNodus.java
│ │ │ │ │ ├── MessageStereotypes.java
│ │ │ │ │ ├── Messagus.java
│ │ │ │ │ ├── Messenger.java
│ │ │ │ │ ├── MessengerChannelControlBlock.java
│ │ │ │ │ ├── MsgNodeConfig.java
│ │ │ │ │ ├── MsgProtocol.java
│ │ │ │ │ ├── MultiClientChannelRegistry.java
│ │ │ │ │ ├── Recipient.java
│ │ │ │ │ ├── RecipientChannelControlBlock.java
│ │ │ │ │ ├── RegisterChannelPool.java
│ │ │ │ │ ├── Status.java
│ │ │ │ │ ├── StreamTerminateException.java
│ │ │ │ │ ├── SyncFairChannelPool.java
│ │ │ │ │ ├── TransferMessage.java
│ │ │ │ │ ├── UMCCHead.java
│ │ │ │ │ ├── UMCCHeadV1.java
│ │ │ │ │ ├── UMCChannel.java
│ │ │ │ │ ├── UMCConstants.java
│ │ │ │ │ ├── UMCException.java
│ │ │ │ │ ├── UMCHead.java
│ │ │ │ │ ├── UMCHeadV1.java
│ │ │ │ │ ├── UMCMessage.java
│ │ │ │ │ ├── UMCMethod.java
│ │ │ │ │ ├── UMCProtocol.java
│ │ │ │ │ ├── UMCReceiver.java
│ │ │ │ │ ├── UMCServiceException.java
│ │ │ │ │ ├── UMCTransmit.java
│ │ │ │ │ ├── event/
│ │ │ │ │ │ ├── ChannelDataInterceptor.java
│ │ │ │ │ │ ├── ChannelEventHandler.java
│ │ │ │ │ │ └── ChannelInactiveHandler.java
│ │ │ │ │ ├── extra/
│ │ │ │ │ │ ├── ExtraHeadCoder.java
│ │ │ │ │ │ ├── ExtraHeadDecoder.java
│ │ │ │ │ │ ├── ExtraHeadEncoder.java
│ │ │ │ │ │ ├── ExtraHeadMarshalingException.java
│ │ │ │ │ │ ├── GenericExtraHeadCoder.java
│ │ │ │ │ │ ├── GenericExtraHeadDecoder.java
│ │ │ │ │ │ └── GenericExtraHeadEncoder.java
│ │ │ │ │ └── handler/
│ │ │ │ │ ├── ErrorMessageAudit.java
│ │ │ │ │ ├── GenericErrorMessageAudit.java
│ │ │ │ │ └── WrappedErrorMessageException.java
│ │ │ │ ├── vita/
│ │ │ │ │ ├── HeartbeatControl.java
│ │ │ │ │ └── HeartbeatFeedbackor.java
│ │ │ │ └── wolf/
│ │ │ │ ├── ArchChannelControlBlock.java
│ │ │ │ ├── ArchChannelPool.java
│ │ │ │ ├── ArchUMCChannel.java
│ │ │ │ ├── AsyncUlfMedium.java
│ │ │ │ ├── ChannelUtils.java
│ │ │ │ ├── GenericUMCByteMessageDecoder.java
│ │ │ │ ├── InternalErrors.java
│ │ │ │ ├── MCConnectionArguments.java
│ │ │ │ ├── MCSecurityAuthentication.java
│ │ │ │ ├── MCSecurityToken.java
│ │ │ │ ├── NettyChannelControlBlock.java
│ │ │ │ ├── NettyUMCChannel.java
│ │ │ │ ├── SharedConnectionArguments.java
│ │ │ │ ├── StandardRemoteUserAuthentication.java
│ │ │ │ ├── UlfAsyncMsgHandleAdapter.java
│ │ │ │ ├── UlfBytesTransferMessage.java
│ │ │ │ ├── UlfChannel.java
│ │ │ │ ├── UlfChannelStatus.java
│ │ │ │ ├── UlfIOLoadBalanceStrategy.java
│ │ │ │ ├── UlfIdleFirstBalanceStrategy.java
│ │ │ │ ├── UlfInformMessage.java
│ │ │ │ ├── UlfInstructMessage.java
│ │ │ │ ├── UlfMCReceiver.java
│ │ │ │ ├── UlfMCTransmit.java
│ │ │ │ ├── UlfMessageNode.java
│ │ │ │ ├── UlfMessageStereotypes.java
│ │ │ │ ├── UlfStreamTransferMessage.java
│ │ │ │ ├── UnsetUlfAsyncMsgHandleAdapter.java
│ │ │ │ ├── WolfMCInitializationException.java
│ │ │ │ ├── WolfMCNode.java
│ │ │ │ ├── WolfMCServiceException.java
│ │ │ │ ├── WolfMCStandardConstants.java
│ │ │ │ ├── WolfNettyServgram.java
│ │ │ │ ├── client/
│ │ │ │ │ ├── ArchAsyncMessenger.java
│ │ │ │ │ ├── ClientConnectArguments.java
│ │ │ │ │ ├── ClientConnectionArguments.java
│ │ │ │ │ ├── MessengerNettyChannelControlBlock.java
│ │ │ │ │ ├── ProactiveParallelFairChannelPool.java
│ │ │ │ │ ├── ProactiveParallelFairSyncChannelPool.java
│ │ │ │ │ ├── UlfAsyncMessengerChannelControlBlock.java
│ │ │ │ │ ├── UlfClient.java
│ │ │ │ │ └── WolfMCClient.java
│ │ │ │ └── server/
│ │ │ │ ├── AbstractTimerTask.java
│ │ │ │ ├── IdleChannelTimerTask.java
│ │ │ │ ├── PassiveRegisterChannelPool.java
│ │ │ │ ├── RecipientNettyChannelControlBlock.java
│ │ │ │ ├── ServerConnectArguments.java
│ │ │ │ ├── ServerConnectionArguments.java
│ │ │ │ ├── UlfRecipientChannelControlBlock.java
│ │ │ │ ├── UlfServer.java
│ │ │ │ └── WolfMCServer.java
│ │ │ └── umct/
│ │ │ ├── AddressMapping.java
│ │ │ ├── ArchMessagelet.java
│ │ │ ├── ArchMessagram.java
│ │ │ ├── ArchMsgDeliver.java
│ │ │ ├── ArchMsgExpress.java
│ │ │ ├── ArchUMCConnection.java
│ │ │ ├── DenialServiceException.java
│ │ │ ├── DuplexExpress.java
│ │ │ ├── GenericMessagramScanner.java
│ │ │ ├── IlleagalResponseException.java
│ │ │ ├── IntegratedMessagram.java
│ │ │ ├── InvokeEntity.java
│ │ │ ├── JSONLetMsgDeliver.java
│ │ │ ├── MessageDeliver.java
│ │ │ ├── MessageExpress.java
│ │ │ ├── MessageHandler.java
│ │ │ ├── MessageJunction.java
│ │ │ ├── Messagelet.java
│ │ │ ├── Messagram.java
│ │ │ ├── MessagramScanner.java
│ │ │ ├── ProtoletMsgDeliver.java
│ │ │ ├── ServiceException.java
│ │ │ ├── ServiceInternalException.java
│ │ │ ├── UMCConnection.java
│ │ │ ├── UMCTExpress.java
│ │ │ ├── UMCTExpressHandler.java
│ │ │ ├── UMCTNode.java
│ │ │ ├── UlfConnection.java
│ │ │ ├── UlfMessageHandler.java
│ │ │ ├── WolfMCExpress.java
│ │ │ ├── bind/
│ │ │ │ └── ArgParam.java
│ │ │ ├── decipher/
│ │ │ │ ├── HeaderDecipher.java
│ │ │ │ ├── JSONHeaderDecipher.java
│ │ │ │ └── PrototypeDecipher.java
│ │ │ ├── husky/
│ │ │ │ ├── AddressedEntity.java
│ │ │ │ ├── ArchAddressedEntity.java
│ │ │ │ ├── ArchRequestPackage.java
│ │ │ │ ├── ArchResponsePackage.java
│ │ │ │ ├── HuskyCTPConstants.java
│ │ │ │ ├── HuskyServiceErrorMessages.java
│ │ │ │ ├── Interceptor.java
│ │ │ │ ├── MessagePackage.java
│ │ │ │ ├── RequestPackage.java
│ │ │ │ ├── ResponsePackage.java
│ │ │ │ ├── compiler/
│ │ │ │ │ ├── ArchIfaceCompiler.java
│ │ │ │ │ ├── ArchIfaceInspector.java
│ │ │ │ │ ├── ArchProtoIfaceCompiler.java
│ │ │ │ │ ├── BytecodeIfaceCompiler.java
│ │ │ │ │ ├── ClassDigest.java
│ │ │ │ │ ├── CompileException.java
│ │ │ │ │ ├── CompilerEncoder.java
│ │ │ │ │ ├── DigestIfaceCompiler.java
│ │ │ │ │ ├── DynamicMethodPrototype.java
│ │ │ │ │ ├── GenericClassDigest.java
│ │ │ │ │ ├── GenericCompilerEncoder.java
│ │ │ │ │ ├── GenericIfaceInspector.java
│ │ │ │ │ ├── GenericIfaceMappingDigest.java
│ │ │ │ │ ├── GenericIfaceParamsDigest.java
│ │ │ │ │ ├── GenericMethodDigest.java
│ │ │ │ │ ├── IfaceCompiler.java
│ │ │ │ │ ├── IfaceInspector.java
│ │ │ │ │ ├── IfaceMappingDigest.java
│ │ │ │ │ ├── IfaceParamsDigest.java
│ │ │ │ │ ├── InterfacialCompiler.java
│ │ │ │ │ ├── MethodDigest.java
│ │ │ │ │ ├── MethodPrototype.java
│ │ │ │ │ ├── ProtoIfaceCompiler.java
│ │ │ │ │ └── ProtoInterfacialCompiler.java
│ │ │ │ ├── function/
│ │ │ │ │ ├── ArgumentRequest.java
│ │ │ │ │ ├── FunctionMold.java
│ │ │ │ │ ├── GenericArgumentRequest.java
│ │ │ │ │ ├── GenericFunctionMold.java
│ │ │ │ │ ├── GenericReturnResponse.java
│ │ │ │ │ ├── MethodTemplates.java
│ │ │ │ │ └── ReturnResponse.java
│ │ │ │ ├── heartbeat/
│ │ │ │ │ ├── HeartbeatConstants.java
│ │ │ │ │ ├── HuskyHeartbeatControl.java
│ │ │ │ │ └── HuskyHeartbeatFeedbackor.java
│ │ │ │ └── machinery/
│ │ │ │ ├── ArchRouteDispatcher.java
│ │ │ │ ├── DigestContextMachinery.java
│ │ │ │ ├── DigestMappingLoader.java
│ │ │ │ ├── DigestTransformer.java
│ │ │ │ ├── ExcludeDigestMappingFilters.java
│ │ │ │ ├── HuskyContextMachinery.java
│ │ │ │ ├── HuskyMappingLoader.java
│ │ │ │ ├── HuskyMappingScopeSet.java
│ │ │ │ ├── HuskyRouteDispatcher.java
│ │ │ │ ├── HuskyRouteDispatcherFabricator.java
│ │ │ │ ├── HuskyTransformer.java
│ │ │ │ ├── MCTContextMachinery.java
│ │ │ │ ├── MCTTransformer.java
│ │ │ │ ├── MultiMappingLoader.java
│ │ │ │ ├── PMCTContextMachinery.java
│ │ │ │ ├── PMCTTransformer.java
│ │ │ │ ├── ProtoRouteDispatcher.java
│ │ │ │ └── RouteDispatcher.java
│ │ │ ├── lets/
│ │ │ │ ├── MessageServiceScanner.java
│ │ │ │ ├── MessageletScanner.java
│ │ │ │ └── MsgService.java
│ │ │ ├── mapping/
│ │ │ │ ├── ArchMappingInspector.java
│ │ │ │ ├── BytecodeControllerInspector.java
│ │ │ │ ├── ControllerInspector.java
│ │ │ │ ├── GenericMappingDigest.java
│ │ │ │ ├── GenericParamsDigest.java
│ │ │ │ ├── InspectException.java
│ │ │ │ ├── MappingDigest.java
│ │ │ │ ├── MappingInspector.java
│ │ │ │ ├── MethodDigestUtils.java
│ │ │ │ └── ParamsDigest.java
│ │ │ ├── proxy/
│ │ │ │ └── UMCTHub.java
│ │ │ └── stereotype/
│ │ │ ├── Controller.java
│ │ │ ├── Iface.java
│ │ │ └── IfaceUtils.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── umc/
│ │ └── TestUMCC.java
│ ├── hydra-service-control/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ └── service/
│ │ └── registry/
│ │ ├── ClientServiceRegisterException.java
│ │ ├── ServiceControlException.java
│ │ ├── ServiceControlRPCException.java
│ │ ├── ServiceInstanceCreationException.java
│ │ ├── ServiceValidationException.java
│ │ ├── UniformService.java
│ │ ├── WolfServiceInstance.java
│ │ ├── appoint/
│ │ │ ├── ServiceAppointServer.java
│ │ │ └── ServiceClientile.java
│ │ ├── client/
│ │ │ ├── ArchServiceClient.java
│ │ │ ├── HuskyServiceClient.java
│ │ │ └── ServiceClient.java
│ │ ├── constant/
│ │ │ ├── ServiceStatus.java
│ │ │ └── ServiceVitalizationStatus.java
│ │ ├── dto/
│ │ │ ├── ApplicationMetaDTO.java
│ │ │ ├── RegisterServiceDTO.java
│ │ │ └── ServiceMetaDTO.java
│ │ ├── event/
│ │ │ ├── ServiceRegisterEvent.java
│ │ │ └── ServiceRegisterEventHandler.java
│ │ ├── server/
│ │ │ ├── ServiceEventHooker.java
│ │ │ ├── ServiceLifecycleIface.java
│ │ │ ├── ServiceLifecycleService.java
│ │ │ ├── ServiceManager.java
│ │ │ ├── ServiceMetaManipulationIface.java
│ │ │ ├── ServiceMetaService.java
│ │ │ ├── UniformServiceEventHooker.java
│ │ │ └── UniformServiceManager.java
│ │ └── ulf/
│ │ ├── HuskyServiceAppointServer.java
│ │ ├── HuskyServiceClientile.java
│ │ ├── ServiceLifecycleController.java
│ │ └── ServiceMetaController.java
│ ├── hydra-system-reign/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── hydra/
│ │ └── reign/
│ │ └── UnixInstitutionalizedMetaImperiumPrivy.java
│ ├── hydra-system-tritium/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── pinecone/
│ │ │ │ └── tritium/
│ │ │ │ ├── ConfigConstants.java
│ │ │ │ ├── MasterServgramOrchestrator.java
│ │ │ │ ├── Tritium.java
│ │ │ │ ├── ally/
│ │ │ │ │ ├── IndexableManager.java
│ │ │ │ │ ├── messengers/
│ │ │ │ │ │ └── MessagersManager.java
│ │ │ │ │ └── rdb/
│ │ │ │ │ ├── DruidDataSourceFactory.java
│ │ │ │ │ ├── GenericIbatisClient.java
│ │ │ │ │ ├── RDBManager.java
│ │ │ │ │ └── UniformRDBClient.java
│ │ │ │ ├── messagron/
│ │ │ │ │ ├── HeistMessage.java
│ │ │ │ │ ├── Messageletson.java
│ │ │ │ │ └── Messagron.java
│ │ │ │ ├── system/
│ │ │ │ │ ├── BasicServer.java
│ │ │ │ │ ├── ConfigScope.java
│ │ │ │ │ ├── Hierarchy.java
│ │ │ │ │ ├── InterWareDirector.java
│ │ │ │ │ ├── KnittedMiddlewareDirector.java
│ │ │ │ │ ├── MissionTerminateException.java
│ │ │ │ │ ├── NomenclatureAllocator.java
│ │ │ │ │ ├── ServersScope.java
│ │ │ │ │ ├── StorageSystem.java
│ │ │ │ │ ├── SystemDaemon.java
│ │ │ │ │ ├── TritiumConfigScope.java
│ │ │ │ │ └── TritiumSystem.java
│ │ │ │ └── util/
│ │ │ │ └── ConfigHelper.java
│ │ │ └── resources/
│ │ │ └── logback.xml
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ ├── major/
│ │ │ └── TestTritium.java
│ │ ├── mc/
│ │ │ ├── JesusChrist.java
│ │ │ ├── TestMCClient.java
│ │ │ └── TestMCServer.java
│ │ ├── protobuf/
│ │ │ ├── Bear.java
│ │ │ ├── Beaver.java
│ │ │ ├── Monkey.java
│ │ │ ├── Parasite.java
│ │ │ ├── Rabbit.java
│ │ │ ├── Raccoon.java
│ │ │ ├── RaccoonController.java
│ │ │ ├── RaccoonKing.java
│ │ │ ├── RedBeaver.java
│ │ │ ├── RedRaccoon.java
│ │ │ ├── Rpc.java
│ │ │ ├── RpcRequest.java
│ │ │ ├── RpcRequestOrBuilder.java
│ │ │ ├── RpcResponse.java
│ │ │ ├── RpcResponseOrBuilder.java
│ │ │ ├── Slave.java
│ │ │ ├── TestKafkaClient.java
│ │ │ ├── TestProtobuf.java
│ │ │ ├── TestRPCSystem.java
│ │ │ ├── TestRocketClient.java
│ │ │ ├── rpc.proto
│ │ │ └── v3/
│ │ │ ├── Rpc.java
│ │ │ ├── RpcRequest.java1
│ │ │ ├── RpcRequestOrBuilder.java
│ │ │ ├── RpcResponse.java1
│ │ │ └── RpcResponseOrBuilder.java
│ │ ├── springram/
│ │ │ └── TestSpringram.java
│ │ └── utils/
│ │ ├── TestSchemeQuerier.java
│ │ └── TestVFS.java
│ └── pom.xml
├── LICENSE
├── Messenger/
│ ├── Messenger.iml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── genius/
│ │ ├── App.java
│ │ ├── common/
│ │ │ └── UlfUMC/
│ │ │ ├── CommonMessageBuilder.java
│ │ │ ├── ErrorMessageBuilder.java
│ │ │ ├── MessageBuilder.java
│ │ │ ├── MessageFactory.java
│ │ │ ├── SlaveMessageBuilder.java
│ │ │ ├── UlfUMCBody.java
│ │ │ ├── UlfUMCMessage.java
│ │ │ ├── UlfUMCMessageException.java
│ │ │ ├── UlfUMCMessageType.java
│ │ │ └── UlfUMCProtocol.java
│ │ ├── config/
│ │ │ └── MessageConverterConfig.java
│ │ └── pool/
│ │ ├── FunctionNamePool.java
│ │ └── MqPool.java
│ └── test/
│ └── java/
│ └── com/
│ └── genius/
│ └── AppTest.java
├── Odin/
│ ├── odin-architecture/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── odin/
│ │ ├── atlas/
│ │ │ ├── advance/
│ │ │ │ ├── GraphAdvancer.java
│ │ │ │ ├── GraphStratumAdvancer.java
│ │ │ │ └── GraphStratumTape.java
│ │ │ └── graph/
│ │ │ └── RuntimeAtlasInstrument.java
│ │ ├── conduct/
│ │ │ ├── CollectiveTaskLegionary.java
│ │ │ ├── CollectiveTaskRegiment.java
│ │ │ ├── ProcessorDeployManager.java
│ │ │ ├── RegimentException.java
│ │ │ ├── entity/
│ │ │ │ ├── InstanceAtlasAdjacent.java
│ │ │ │ ├── InstanceAtlasNode.java
│ │ │ │ ├── InstanceEvent.java
│ │ │ │ ├── InstanceExec.java
│ │ │ │ ├── LaunchedContext.java
│ │ │ │ ├── RegimentJoinRequest.java
│ │ │ │ └── RegimentJoinResponse.java
│ │ │ └── schedule/
│ │ │ ├── InstanceScheduleAllocator.java
│ │ │ ├── InstanceScheduleImpetus.java
│ │ │ ├── TaskSchedulePreparator.java
│ │ │ ├── UniformTaskScheduler.java
│ │ │ └── entity/
│ │ │ ├── ConcurrentQuota.java
│ │ │ ├── DepartureChecklist.java
│ │ │ └── ScheduleFittingContext.java
│ │ ├── dispatch/
│ │ │ ├── ArchTaskExecutionI32Queue.java
│ │ │ ├── ConsumeCompromisedPolice.java
│ │ │ ├── DispatchStrategy.java
│ │ │ ├── PipelineLaunchReport.java
│ │ │ ├── QueueBadAllocatedException.java
│ │ │ ├── TaskConsumeException.java
│ │ │ ├── TaskDispatchException.java
│ │ │ ├── TaskDispatcher.java
│ │ │ ├── TaskExecutionProcessor.java
│ │ │ ├── TaskExecutionQueue.java
│ │ │ ├── TaskInstanceConsumer.java
│ │ │ ├── TaskLaunchContext.java
│ │ │ ├── TaskQueueMeta.java
│ │ │ └── entity/
│ │ │ ├── ArchTaskQueueMeta.java
│ │ │ ├── GenericTaskProcessorEntity.java
│ │ │ ├── GenericTaskQueueEntity.java
│ │ │ └── TaskProcessorEntity.java
│ │ ├── proc/
│ │ │ ├── ProcessLifecycleExaminer.java
│ │ │ ├── ProcessRemoteEventHandler.java
│ │ │ ├── RemoteProcess.java
│ │ │ ├── RemoteProcessLifecycleException.java
│ │ │ ├── RemoteProcessManagerNode.java
│ │ │ ├── RemoteProcessServiceException.java
│ │ │ ├── RemoteProcessServiceRPCException.java
│ │ │ ├── RemoteTerminationStatus.java
│ │ │ ├── RemoteVitalizationStatus.java
│ │ │ ├── client/
│ │ │ │ └── RemoteProcessManagerClient.java
│ │ │ ├── entity/
│ │ │ │ ├── RemoteTerminationReport.java
│ │ │ │ ├── RemoteVitalizationResponse.java
│ │ │ │ ├── UProcessMirrorDTO.java
│ │ │ │ └── UProcessRuntimeMeta.java
│ │ │ └── server/
│ │ │ └── RemoteProcessManagerServer.java
│ │ ├── system/
│ │ │ ├── RavenException.java
│ │ │ ├── RavenRuntimeException.java
│ │ │ └── TaskCentralControl.java
│ │ └── task/
│ │ ├── CentralizedTaskInstrument.java
│ │ ├── GenericRavenTaskConfig.java
│ │ ├── RavenTask.java
│ │ ├── RavenTaskConfig.java
│ │ ├── RavenTaskConstants.java
│ │ ├── RavenTaskInstance.java
│ │ ├── dto/
│ │ │ └── CategoryTag.java
│ │ ├── entity/
│ │ │ └── pyramid/
│ │ │ ├── Category.java
│ │ │ ├── CategoryType.java
│ │ │ └── TaskCategory.java
│ │ ├── mapper/
│ │ │ ├── InstanceAtlasAdjacentMapper.java
│ │ │ ├── InstanceAtlasNodeMapper.java
│ │ │ ├── InstanceEventMapper.java
│ │ │ ├── InstanceExecMapper.java
│ │ │ └── OdinTaskMappingDriver.java
│ │ ├── service/
│ │ │ └── CategoryService.java
│ │ ├── source/
│ │ │ ├── CategoryMappingManipulator.java
│ │ │ ├── CategoryTypeManipulator.java
│ │ │ ├── RavenTaskMasterManipulator.java
│ │ │ ├── ScheduleManipulator.java
│ │ │ ├── TaskCategoryManipulator.java
│ │ │ └── TaskProcessorManipulator.java
│ │ ├── system/
│ │ │ └── TaskPathInvalidException.java
│ │ └── troll/
│ │ ├── InstanceLaunchException.java
│ │ ├── LaunchException.java
│ │ ├── LaunchFeature.java
│ │ └── TaskExecutionLauncher.java
│ ├── odin-framework-atlas/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walnut/
│ │ │ └── odin/
│ │ │ └── atlas/
│ │ │ ├── advance/
│ │ │ │ ├── GenericGraphStratumTape.java
│ │ │ │ ├── GenericQueueEntity.java
│ │ │ │ ├── GenericTapedBFSGraphAdvancer.java
│ │ │ │ ├── QueueEntity.java
│ │ │ │ ├── TapedBFSGraphStratumAdvancer.java
│ │ │ │ └── strategy/
│ │ │ │ ├── AtlasPriorityProcessStrategy.java
│ │ │ │ ├── GraphPriorityProcessStrategy.java
│ │ │ │ ├── MegaInDegreeFirstStrategy.java
│ │ │ │ └── PriorityProcessStrategy.java
│ │ │ ├── flow/
│ │ │ │ ├── AnalyzeStage.java
│ │ │ │ ├── ConductFlow.java
│ │ │ │ ├── ConductStage.java
│ │ │ │ ├── MarshallingStage.java
│ │ │ │ └── OptimizationStage.java
│ │ │ ├── graph/
│ │ │ │ ├── UniformRuntimeAtlas.java
│ │ │ │ └── entity/
│ │ │ │ ├── TaskAtlasNode.java
│ │ │ │ └── TaskGraphNode.java
│ │ │ └── mapper/
│ │ │ ├── QueueStratumManipulator.java
│ │ │ ├── QueueStratumMapper.java
│ │ │ ├── RunAtlasMasterManipulator.java
│ │ │ ├── RuntimeVGraphMapper.java
│ │ │ ├── RuntimeVectorGraphPathCacheMapper.java
│ │ │ └── TaskGraphManipulator.java
│ │ └── resources/
│ │ └── mapper/
│ │ └── kernel/
│ │ └── task/
│ │ ├── InstanceAtlasAdjacentMapper.xml
│ │ ├── InstanceAtlasNodeMapper.xml
│ │ ├── InstanceEventMapper.xml
│ │ ├── InstanceManipulator.xml
│ │ ├── QueueStratumMapper.xml
│ │ └── RuntimeVGraphMapper.xml
│ ├── odin-framework-conduct/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── odin/
│ │ ├── conduct/
│ │ │ ├── ProcessorLifecycleController.java
│ │ │ ├── ProcessorLifecycleIface.java
│ │ │ ├── RavenCollectiveTaskLegionary.java
│ │ │ ├── RavenCollectiveTaskRegiment.java
│ │ │ ├── RavenProcessorDeployManager.java
│ │ │ ├── dag/
│ │ │ │ ├── ConfigurableTaskGraphOrchestratorConfig.java
│ │ │ │ ├── ExecuteCallBack.java
│ │ │ │ ├── RavenTaskGraphOrchestrator.java
│ │ │ │ ├── TaskExecuteCallBack.java
│ │ │ │ ├── TaskExertium.java
│ │ │ │ ├── TaskGraphOrchestrator.java
│ │ │ │ ├── TaskGraphOrchestratorConfig.java
│ │ │ │ └── TaskGraphOrchestratorConstants.java
│ │ │ ├── entity/
│ │ │ │ ├── GenericInstanceAtlasAdjacent.java
│ │ │ │ ├── GenericInstanceAtlasNode.java
│ │ │ │ ├── GenericInstanceEvent.java
│ │ │ │ └── GenericInstanceExec.java
│ │ │ └── schedule/
│ │ │ ├── InstanceAtlasNodeManipular.java
│ │ │ ├── RavenInstanceScheduleImpetus.java
│ │ │ ├── RavenScheduleAllocator.java
│ │ │ ├── RavenTaskSchedulePreparator.java
│ │ │ ├── RavenTaskScheduler.java
│ │ │ └── ScheduleCronHelper.java
│ │ ├── dispatch/
│ │ │ ├── AdaptiveCapacityDispatchStrategy.java
│ │ │ ├── DefaultPipelineLaunchReport.java
│ │ │ ├── GenericI32TaskQueue.java
│ │ │ ├── RavenTaskDispatcher.java
│ │ │ └── RavenTaskExecutionProcessor.java
│ │ └── task/
│ │ └── mapper/
│ │ └── TaskProcessorMapper.java
│ ├── odin-framework-runtime/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── odin/
│ │ ├── proc/
│ │ │ ├── ArchRemoteProcessManagerNode.java
│ │ │ ├── MediatedRemoteProcess.java
│ │ │ ├── ProcessesUtils.java
│ │ │ ├── RemoteProcessLifecycleExaminer.java
│ │ │ ├── client/
│ │ │ │ ├── RPCRecallSysProcessEventHandler.java
│ │ │ │ ├── RavenRemoteProcessManagerClient.java
│ │ │ │ ├── ReactiveMasterProcessLifecycleController.java
│ │ │ │ └── SlaveProcessLifecycleIface.java
│ │ │ └── server/
│ │ │ ├── MasterProcessLifecycleIface.java
│ │ │ ├── RavenRemoteProcessManagerServer.java
│ │ │ └── ReactiveSlaveProcessLifecycleController.java
│ │ └── task/
│ │ ├── RavenTaskInstrument.java
│ │ ├── dto/
│ │ │ └── GenericCategoryTag.java
│ │ ├── entity/
│ │ │ └── pyramid/
│ │ │ ├── ArchCategory.java
│ │ │ ├── GenericCategoryType.java
│ │ │ └── GenericTaskCategory.java
│ │ ├── mapper/
│ │ │ ├── CategoryMappingMapper.java
│ │ │ ├── CategoryTypeMapper.java
│ │ │ └── TaskCategoryMapper.java
│ │ ├── service/
│ │ │ └── RavenCategoryService.java
│ │ └── troll/
│ │ ├── ArchRavenTask.java
│ │ ├── ArchRavenTaskInstance.java
│ │ ├── GenericRavenTask.java
│ │ ├── GenericRavenTaskInstance.java
│ │ ├── LaunchErrorCauses.java
│ │ └── TrollTaskExecutionLauncher.java
│ ├── odin-mapper-driver/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── odin/
│ │ ├── atlas/
│ │ │ └── mapper/
│ │ │ ├── ArchAtlasMappingDriver.java
│ │ │ ├── GUID72TypeHandler.java
│ │ │ ├── GUIDTypeHandler.java
│ │ │ ├── OdinAtlasMappingDriver.java
│ │ │ ├── OdinAtlasMasterGraphManipulatorImpl.java
│ │ │ ├── OdinAtlasMasterManipulatorImpl.java
│ │ │ └── UOITypeHandler.java
│ │ └── task/
│ │ └── mapper/
│ │ ├── OdinUniformTaskMappingDriver.java
│ │ ├── RavenTaskMasterManipulatorImpl.java
│ │ └── ScheduleManipulatorImpl.java
│ ├── odin-system/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── odin/
│ │ └── system/
│ │ └── Odin.java
│ └── pom.xml
├── Pinecones/
│ ├── Jelly/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ └── slime/
│ │ │ └── jelly/
│ │ │ ├── map/
│ │ │ │ └── SS.java
│ │ │ └── source/
│ │ │ ├── NamespacedKey.java
│ │ │ ├── ds/
│ │ │ │ ├── dao/
│ │ │ │ │ ├── CannotAcquireLockException.java
│ │ │ │ │ ├── CannotSerializeTransactionException.java
│ │ │ │ │ ├── ConcurrencyFailureException.java
│ │ │ │ │ ├── DataAccessException.java
│ │ │ │ │ ├── DataAccessResourceFailureException.java
│ │ │ │ │ ├── DataIntegrityViolationException.java
│ │ │ │ │ ├── DeadlockLoserDataAccessException.java
│ │ │ │ │ ├── DuplicateKeyException.java
│ │ │ │ │ ├── InvalidDataAccessApiUsageException.java
│ │ │ │ │ ├── InvalidDataAccessResourceUsageException.java
│ │ │ │ │ ├── NonTransientDataAccessException.java
│ │ │ │ │ ├── NonTransientDataAccessResourceException.java
│ │ │ │ │ ├── PermissionDeniedDataAccessException.java
│ │ │ │ │ ├── PersistenceExceptionTranslator.java
│ │ │ │ │ ├── PessimisticLockingFailureException.java
│ │ │ │ │ ├── QueryTimeoutException.java
│ │ │ │ │ ├── RecoverableDataAccessException.java
│ │ │ │ │ ├── TransientDataAccessException.java
│ │ │ │ │ └── TransientDataAccessResourceException.java
│ │ │ │ ├── jdbc/
│ │ │ │ │ ├── AbstractFallbackSQLExceptionTranslator.java
│ │ │ │ │ ├── BadSqlGrammarException.java
│ │ │ │ │ ├── CustomSQLErrorCodesTranslation.java
│ │ │ │ │ ├── DatabaseMetaDataCallback.java
│ │ │ │ │ ├── InvalidResultSetAccessException.java
│ │ │ │ │ ├── MetaDataAccessException.java
│ │ │ │ │ ├── SQLErrorCodeSQLExceptionTranslator.java
│ │ │ │ │ ├── SQLErrorCodes.java
│ │ │ │ │ ├── SQLErrorCodesFactory.java
│ │ │ │ │ ├── SQLExceptionSubclassTranslator.java
│ │ │ │ │ ├── SQLExceptionTranslator.java
│ │ │ │ │ ├── SQLStateSQLExceptionTranslator.java
│ │ │ │ │ ├── TransientDataAccessException.java
│ │ │ │ │ ├── TransientDataAccessResourceException.java
│ │ │ │ │ ├── UncategorizedDataAccessException.java
│ │ │ │ │ └── UncategorizedSQLException.java
│ │ │ │ └── transaction/
│ │ │ │ ├── PlatformTransactionManager.java
│ │ │ │ ├── ResourceHolder.java
│ │ │ │ ├── ResourceHolderSupport.java
│ │ │ │ ├── ResourceTransactionManager.java
│ │ │ │ ├── SavepointManager.java
│ │ │ │ ├── StaticTransactionDefinition.java
│ │ │ │ ├── TransactionDefinition.java
│ │ │ │ ├── TransactionException.java
│ │ │ │ ├── TransactionExecution.java
│ │ │ │ ├── TransactionManager.java
│ │ │ │ ├── TransactionStatus.java
│ │ │ │ ├── TransactionSynchronization.java
│ │ │ │ ├── TransactionSynchronizationAdapter.java
│ │ │ │ ├── TransactionSynchronizationManager.java
│ │ │ │ ├── TransactionSynchronizationUtils.java
│ │ │ │ └── TransactionTimedOutException.java
│ │ │ ├── ibatis/
│ │ │ │ ├── ArchDynamicQuerierResultHandler.java
│ │ │ │ ├── DynamicQuerierEntityResultHandler.java
│ │ │ │ ├── DynamicQuerierMappedResultHandler.java
│ │ │ │ ├── DynamicQuerierSqlBuilder.java
│ │ │ │ ├── GenericMybatisQuerierDataManipulator.java
│ │ │ │ ├── IbatisClient.java
│ │ │ │ ├── IbatisDAOScanner.java
│ │ │ │ ├── IbatisDataAccessObject.java
│ │ │ │ ├── IbatisManipulatorProxyMapperFactory.java
│ │ │ │ ├── IbatisXMLResourceScanner.java
│ │ │ │ ├── ProxySessionMapperPool.java
│ │ │ │ ├── SoloSessionMapperPool.java
│ │ │ │ └── proxy/
│ │ │ │ ├── MyBatisExceptionTranslator.java
│ │ │ │ ├── MyBatisSystemException.java
│ │ │ │ ├── SqlSessionHolder.java
│ │ │ │ ├── SqlSessionTemplate.java
│ │ │ │ └── SqlSessionUtils.java
│ │ │ ├── memcached/
│ │ │ │ ├── GenericMemcachedManipulator.java
│ │ │ │ └── MemcachedManipulator.java
│ │ │ └── redis/
│ │ │ ├── GenericRedisHashManipulator.java
│ │ │ ├── GenericRedisMasterManipulator.java
│ │ │ ├── IteratorSourceAdapter.java
│ │ │ ├── RedisEntryIterator.java
│ │ │ ├── RedisIterator.java
│ │ │ └── RedisKeysIterator.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── TestJelly.java
│ ├── Pinecone/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ ├── PineTrial.java
│ │ │ ├── Pinecone.java
│ │ │ └── framework/
│ │ │ ├── lang/
│ │ │ │ ├── NamedInheritableThreadLocal.java
│ │ │ │ ├── NamedThreadLocal.java
│ │ │ │ └── field/
│ │ │ │ ├── DataStructureEntity.java
│ │ │ │ ├── FieldEntity.java
│ │ │ │ ├── GenericFieldEntity.java
│ │ │ │ ├── GenericStructure.java
│ │ │ │ └── SegmentEntity.java
│ │ │ ├── system/
│ │ │ │ ├── ApoptosisRejectSignalException.java
│ │ │ │ ├── AssertionRuntimeException.java
│ │ │ │ ├── AsynSystem.java
│ │ │ │ ├── CascadeSystem.java
│ │ │ │ ├── ConformitySystem.java
│ │ │ │ ├── ErrorStrings.java
│ │ │ │ ├── Experimental.java
│ │ │ │ ├── Framework.java
│ │ │ │ ├── GenericMasterTaskManager.java
│ │ │ │ ├── InstantKillError.java
│ │ │ │ ├── IntegratedSubsystem.java
│ │ │ │ ├── IrrationalProvokedException.java
│ │ │ │ ├── IrrationalProvokedType.java
│ │ │ │ ├── ModularizedSubsystem.java
│ │ │ │ ├── NestedCheckedException.java
│ │ │ │ ├── NestedExceptionUtils.java
│ │ │ │ ├── NestedRuntimeException.java
│ │ │ │ ├── NoSuchProviderException.java
│ │ │ │ ├── Noexcept.java
│ │ │ │ ├── NonNull.java
│ │ │ │ ├── NotImplementedException.java
│ │ │ │ ├── Nullable.java
│ │ │ │ ├── ParseException.java
│ │ │ │ ├── PieceworkManager.java
│ │ │ │ ├── PineRuntimeException.java
│ │ │ │ ├── Pinecore.java
│ │ │ │ ├── PrimarySystem.java
│ │ │ │ ├── ProvokeHandleException.java
│ │ │ │ ├── ProxyProvokeHandleException.java
│ │ │ │ ├── RedirectRuntimeException.java
│ │ │ │ ├── RestartSignalException.java
│ │ │ │ ├── RuntimeConstructionException.java
│ │ │ │ ├── RuntimeInstantiationException.java
│ │ │ │ ├── RuntimeSystem.java
│ │ │ │ ├── Subsystem.java
│ │ │ │ ├── SynergicSystem.java
│ │ │ │ ├── Unsafe.java
│ │ │ │ ├── aop/
│ │ │ │ │ ├── InfrastructureProxy.java
│ │ │ │ │ ├── RawTargetAccess.java
│ │ │ │ │ └── ScopedObject.java
│ │ │ │ ├── architecture/
│ │ │ │ │ ├── ArchCascadeComponent.java
│ │ │ │ │ ├── ArchCascadeComponentManager.java
│ │ │ │ │ ├── ArchComponent.java
│ │ │ │ │ ├── ArchComponentManager.java
│ │ │ │ │ ├── CascadeComponent.java
│ │ │ │ │ ├── CascadeComponentManager.java
│ │ │ │ │ ├── Component.java
│ │ │ │ │ ├── ComponentManager.java
│ │ │ │ │ ├── SystemComponent.java
│ │ │ │ │ └── SystemComponentManager.java
│ │ │ │ ├── construction/
│ │ │ │ │ ├── DynamicInstancePool.java
│ │ │ │ │ ├── DynamicStructure.java
│ │ │ │ │ ├── GenericDynamicInstancePool.java
│ │ │ │ │ ├── GenericStructureDefinition.java
│ │ │ │ │ ├── InstanceDispenser.java
│ │ │ │ │ ├── InstanceManufacturer.java
│ │ │ │ │ ├── InstancePool.java
│ │ │ │ │ ├── ObjectBasicTraits.java
│ │ │ │ │ ├── ObjectTraits.java
│ │ │ │ │ ├── Postpone.java
│ │ │ │ │ ├── ReuseCycle.java
│ │ │ │ │ ├── Structure.java
│ │ │ │ │ ├── StructureDefinition.java
│ │ │ │ │ ├── StructureInstanceDispenser.java
│ │ │ │ │ ├── Structures.java
│ │ │ │ │ ├── UnifyCentralInstanceDispenser.java
│ │ │ │ │ └── UnifyStructureInjector.java
│ │ │ │ ├── executum/
│ │ │ │ │ ├── ArchExecutum.java
│ │ │ │ │ ├── ArchProcessum.java
│ │ │ │ │ ├── ArchThreadum.java
│ │ │ │ │ ├── Chronum.java
│ │ │ │ │ ├── EventedTaskManager.java
│ │ │ │ │ ├── ExclusiveProcessum.java
│ │ │ │ │ ├── ExecutableSummoner.java
│ │ │ │ │ ├── Executum.java
│ │ │ │ │ ├── JobCompromisedException.java
│ │ │ │ │ ├── LifeDaemon.java
│ │ │ │ │ ├── Lifecycle.java
│ │ │ │ │ ├── Processum.java
│ │ │ │ │ ├── StageCompromisedException.java
│ │ │ │ │ ├── Systema.java
│ │ │ │ │ ├── Systemum.java
│ │ │ │ │ ├── TaskCompromisedException.java
│ │ │ │ │ ├── TaskManager.java
│ │ │ │ │ └── VitalResource.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── ChosenDispatcher.java
│ │ │ │ │ ├── Executable.java
│ │ │ │ │ ├── Executor.java
│ │ │ │ │ ├── Function.java
│ │ │ │ │ ├── FunctionTraits.java
│ │ │ │ │ ├── Invokable.java
│ │ │ │ │ ├── Invoker.java
│ │ │ │ │ ├── LinearDispatcher.java
│ │ │ │ │ ├── SteerableSegment.java
│ │ │ │ │ └── SystemInvoker.java
│ │ │ │ ├── homotype/
│ │ │ │ │ ├── Assimilable.java
│ │ │ │ │ ├── HomoInjector.java
│ │ │ │ │ ├── Homotypic.java
│ │ │ │ │ ├── Injector.java
│ │ │ │ │ └── StereotypicInjector.java
│ │ │ │ ├── prototype/
│ │ │ │ │ ├── Ally.java
│ │ │ │ │ ├── Factory.java
│ │ │ │ │ ├── FamilyContext.java
│ │ │ │ │ ├── MapStructuresEvaluator.java
│ │ │ │ │ ├── ObjectiveArray.java
│ │ │ │ │ ├── ObjectiveBean.java
│ │ │ │ │ ├── ObjectiveClass.java
│ │ │ │ │ ├── ObjectiveEvaluator.java
│ │ │ │ │ ├── ObjectiveList.java
│ │ │ │ │ ├── ObjectiveMap.java
│ │ │ │ │ ├── Objectom.java
│ │ │ │ │ ├── OverridableFamily.java
│ │ │ │ │ ├── PineUnit.java
│ │ │ │ │ ├── Pinenut.java
│ │ │ │ │ ├── PinenutTraits.java
│ │ │ │ │ ├── Prototype.java
│ │ │ │ │ ├── Strategy.java
│ │ │ │ │ ├── Summoner.java
│ │ │ │ │ └── TypeIndex.java
│ │ │ │ ├── regime/
│ │ │ │ │ ├── Automatus.java
│ │ │ │ │ ├── Censorate.java
│ │ │ │ │ ├── Examiner.java
│ │ │ │ │ ├── Executioner.java
│ │ │ │ │ ├── Instrument.java
│ │ │ │ │ ├── Orchestrator.java
│ │ │ │ │ ├── Regiment.java
│ │ │ │ │ ├── Supervisor.java
│ │ │ │ │ ├── Tracker.java
│ │ │ │ │ ├── Volition.java
│ │ │ │ │ └── arch/
│ │ │ │ │ ├── Controllor.java
│ │ │ │ │ ├── Director.java
│ │ │ │ │ ├── Dominator.java
│ │ │ │ │ ├── Dominus.java
│ │ │ │ │ ├── Lord.java
│ │ │ │ │ └── Manager.java
│ │ │ │ ├── regimentation/
│ │ │ │ │ ├── CascadeNodus.java
│ │ │ │ │ ├── Nodus.java
│ │ │ │ │ ├── UniformCascadeNodus.java
│ │ │ │ │ └── UniformNodus.java
│ │ │ │ └── stereotype/
│ │ │ │ ├── HungarianNotation.java
│ │ │ │ └── JavaBeans.java
│ │ │ ├── unit/
│ │ │ │ ├── AbstractMap.java
│ │ │ │ ├── AbstractMultiValueMap.java
│ │ │ │ ├── BidLinkedEntry.java
│ │ │ │ ├── BitSet64.java
│ │ │ │ ├── ConcurrentReferenceHashMap.java
│ │ │ │ ├── Dictionary.java
│ │ │ │ ├── Dictium.java
│ │ │ │ ├── DummyMap.java
│ │ │ │ ├── KeyValue.java
│ │ │ │ ├── LinkedCaseInsensitiveMap.java
│ │ │ │ ├── LinkedMultiValueMap.java
│ │ │ │ ├── LinkedTreeMap.java
│ │ │ │ ├── LinkedTreeMapList.java
│ │ │ │ ├── LinkedTreeSet.java
│ │ │ │ ├── ListDictium.java
│ │ │ │ ├── ListedSortedMap.java
│ │ │ │ ├── MapDictium.java
│ │ │ │ ├── Mapnut.java
│ │ │ │ ├── MultiScopeMap.java
│ │ │ │ ├── MultiScopeMaptron.java
│ │ │ │ ├── MultiValueMap.java
│ │ │ │ ├── MultiValueMapper.java
│ │ │ │ ├── MultiValueMaptron.java
│ │ │ │ ├── PrecedeMultiMaptron.java
│ │ │ │ ├── PrecedeMultiScopeMap.java
│ │ │ │ ├── ScopeMap.java
│ │ │ │ ├── ScopeTrees.java
│ │ │ │ ├── SharedList.java
│ │ │ │ ├── SingletonSupplier.java
│ │ │ │ ├── TreeMap.java
│ │ │ │ ├── UniScopeMap.java
│ │ │ │ ├── UniScopeMaptron.java
│ │ │ │ ├── Units.java
│ │ │ │ ├── affinity/
│ │ │ │ │ ├── DataSharer.java
│ │ │ │ │ ├── GenericObjectomSharer.java
│ │ │ │ │ ├── ObjectOverrider.java
│ │ │ │ │ └── RecursiveUnitOverrider.java
│ │ │ │ ├── distinct/
│ │ │ │ │ ├── ArchBloomDistinctAudit.java
│ │ │ │ │ ├── DistinctAudit.java
│ │ │ │ │ ├── DistinctType.java
│ │ │ │ │ ├── GenericDistinctAudit.java
│ │ │ │ │ ├── GenericPrototypeDistinctAudit.java
│ │ │ │ │ ├── MegaBloomDistinctAudit.java
│ │ │ │ │ ├── MegaMergeDistinctAudit.java
│ │ │ │ │ └── MegaPrototypeBloomDistinctAudit.java
│ │ │ │ ├── multi/
│ │ │ │ │ ├── MultiCollectionMap.java
│ │ │ │ │ ├── MultiCollectionMaptron.java
│ │ │ │ │ ├── MultiCollectionProxyMap.java
│ │ │ │ │ ├── MultiHashSetMaptron.java
│ │ │ │ │ ├── MultiListMaptron.java
│ │ │ │ │ ├── MultiSetMap.java
│ │ │ │ │ └── MultiSetMaptron.java
│ │ │ │ ├── tabulate/
│ │ │ │ │ ├── CollectedEntryDecoder.java
│ │ │ │ │ ├── CollectedEntryEncoder.java
│ │ │ │ │ ├── FamilyEntryNameEncoder.java
│ │ │ │ │ ├── FamilyIterator.java
│ │ │ │ │ ├── GenericCollectedEntryDecoder.java
│ │ │ │ │ ├── GenericCollectedEntryEncoder.java
│ │ │ │ │ ├── GenericNamespaceFamilyEntryNameEncoder.java
│ │ │ │ │ ├── RecursiveEntryIterator.java
│ │ │ │ │ ├── RecursiveFamilyIterator.java
│ │ │ │ │ ├── TypedNamespaceFamilyEntryNameEncoder.java
│ │ │ │ │ └── UnitFamilyNode.java
│ │ │ │ ├── top/
│ │ │ │ │ ├── HeapTopper.java
│ │ │ │ │ ├── LinkedMultiTreeToptron.java
│ │ │ │ │ ├── LinkedTreeToptron.java
│ │ │ │ │ ├── MultiToptronValueAdapter.java
│ │ │ │ │ ├── MultiTreeToptron.java
│ │ │ │ │ ├── TopmostSelector.java
│ │ │ │ │ ├── Topper.java
│ │ │ │ │ ├── Toptron.java
│ │ │ │ │ ├── ToptronMap.java
│ │ │ │ │ ├── ToptronMultiMap.java
│ │ │ │ │ └── TreeToptron.java
│ │ │ │ └── trie/
│ │ │ │ ├── AbstractTrieMap.java
│ │ │ │ ├── ArchTrieNode.java
│ │ │ │ ├── DirectoryNode.java
│ │ │ │ ├── GenericDirectoryNode.java
│ │ │ │ ├── GenericReparseNode.java
│ │ │ │ ├── GenericValueNode.java
│ │ │ │ ├── IllegalOperationException.java
│ │ │ │ ├── ReparseNode.java
│ │ │ │ ├── SeparatedSegmentor.java
│ │ │ │ ├── TrieMap.java
│ │ │ │ ├── TrieNode.java
│ │ │ │ ├── TrieSegmentor.java
│ │ │ │ ├── UniTrieMaptron.java
│ │ │ │ └── ValueNode.java
│ │ │ └── util/
│ │ │ ├── Assert.java
│ │ │ ├── Bits.java
│ │ │ ├── Bytes.java
│ │ │ ├── CharactersUtils.java
│ │ │ ├── ClassUtils.java
│ │ │ ├── CollectionUtils.java
│ │ │ ├── CursorParser.java
│ │ │ ├── Debug.java
│ │ │ ├── GeneralStrings.java
│ │ │ ├── OSIdentifier.java
│ │ │ ├── ObjectUtils.java
│ │ │ ├── PatternMatchUtils.java
│ │ │ ├── Randomium.java
│ │ │ ├── ReflectionUtils.java
│ │ │ ├── StringTraits.java
│ │ │ ├── StringUtils.java
│ │ │ ├── SuperConvert.java
│ │ │ ├── SupplierUtils.java
│ │ │ ├── UnitHelper.java
│ │ │ ├── comparator/
│ │ │ │ ├── CompoundComparator.java
│ │ │ │ ├── InvertibleComparator.java
│ │ │ │ ├── OrderComparator.java
│ │ │ │ ├── Ordered.java
│ │ │ │ └── PriorityOrdered.java
│ │ │ ├── config/
│ │ │ │ ├── Config.java
│ │ │ │ ├── Configson.java
│ │ │ │ ├── GenericStartupCommandParser.java
│ │ │ │ ├── JSONConfig.java
│ │ │ │ ├── JSONSystemConfig.java
│ │ │ │ ├── MappedConfig.java
│ │ │ │ ├── OverridableConfig.java
│ │ │ │ ├── PatriarchalConfig.java
│ │ │ │ ├── StartupCommandParser.java
│ │ │ │ ├── SysConfigson.java
│ │ │ │ └── SystemConfig.java
│ │ │ ├── datetime/
│ │ │ │ ├── DatePattern.java
│ │ │ │ ├── GenericMultiFormDateTimeAudit.java
│ │ │ │ ├── StorageDate.java
│ │ │ │ ├── StorageDateTime.java
│ │ │ │ ├── StorageTime.java
│ │ │ │ ├── UniformDateTimeAudit.java
│ │ │ │ └── compact/
│ │ │ │ ├── CompactTimeUnit.java
│ │ │ │ ├── CompactTimeUnit32.java
│ │ │ │ ├── CompactTimestamp.java
│ │ │ │ └── CompactTimestamp32.java
│ │ │ ├── id/
│ │ │ │ ├── BytesID.java
│ │ │ │ ├── GUID.java
│ │ │ │ ├── GuidAllocator.java
│ │ │ │ ├── GuidGenerateException.java
│ │ │ │ ├── Identification.java
│ │ │ │ ├── IllegalIdentificationException.java
│ │ │ │ ├── Int32ID.java
│ │ │ │ ├── Int64ID.java
│ │ │ │ ├── NameStringID.java
│ │ │ │ ├── NumericID.java
│ │ │ │ └── StringID.java
│ │ │ ├── io/
│ │ │ │ ├── FileIterator.java
│ │ │ │ ├── FileNamePathIterator.java
│ │ │ │ ├── FileUtils.java
│ │ │ │ ├── PathItemIterator.java
│ │ │ │ ├── PathIterator.java
│ │ │ │ ├── Tracer.java
│ │ │ │ └── Tracerson.java
│ │ │ ├── json/
│ │ │ │ ├── ArchCursorParser.java
│ │ │ │ ├── ArchJSONArray.java
│ │ │ │ ├── ArchJSONObject.java
│ │ │ │ ├── CustomizableJSONCursorParser.java
│ │ │ │ ├── Dictson.java
│ │ │ │ ├── GenericJSONEncoder.java
│ │ │ │ ├── GenericJSONMarshal.java
│ │ │ │ ├── JPlus.java
│ │ │ │ ├── JPlusContext.java
│ │ │ │ ├── JPlusCursorParser.java
│ │ │ │ ├── JSON.java
│ │ │ │ ├── JSONArray.java
│ │ │ │ ├── JSONArrayDecoder.java
│ │ │ │ ├── JSONArraytron.java
│ │ │ │ ├── JSONCompiler.java
│ │ │ │ ├── JSONCompilerException.java
│ │ │ │ ├── JSONCursorParser.java
│ │ │ │ ├── JSONDecoder.java
│ │ │ │ ├── JSONDecompiler.java
│ │ │ │ ├── JSONDictium.java
│ │ │ │ ├── JSONEncoder.java
│ │ │ │ ├── JSONException.java
│ │ │ │ ├── JSONMaptron.java
│ │ │ │ ├── JSONMarshal.java
│ │ │ │ ├── JSONMarshalMode.java
│ │ │ │ ├── JSONObject.java
│ │ │ │ ├── JSONObjectDecoder.java
│ │ │ │ ├── JSONParseException.java
│ │ │ │ ├── JSONParserRedirectException.java
│ │ │ │ ├── JSONString.java
│ │ │ │ ├── JSONUtils.java
│ │ │ │ ├── ObjectJSONCursorUnmarshal.java
│ │ │ │ ├── TypeContext.java
│ │ │ │ ├── TypeReference.java
│ │ │ │ ├── binary/
│ │ │ │ │ ├── BsonTraits.java
│ │ │ │ │ └── Bsonut.java
│ │ │ │ ├── handler/
│ │ │ │ │ ├── EncodeHandlerRegistry.java
│ │ │ │ │ ├── GenericEncodeHandlerRegistry.java
│ │ │ │ │ └── JSONObjectEncodeHandler.java
│ │ │ │ └── homotype/
│ │ │ │ ├── AnnotatedJSONInjector.java
│ │ │ │ ├── AnnotatedObjectInjector.java
│ │ │ │ ├── ArchBeanColonist.java
│ │ │ │ ├── BeanColonist.java
│ │ │ │ ├── BeanJSONEncoder.java
│ │ │ │ ├── BeanMapDecoder.java
│ │ │ │ ├── DirectBeanColonist.java
│ │ │ │ ├── DirectJSONInjector.java
│ │ │ │ ├── DirectObjectInjector.java
│ │ │ │ ├── GenericBeanJSONEncoder.java
│ │ │ │ ├── GenericBeanMapDecoder.java
│ │ │ │ ├── GenericStructJSONDecoder.java
│ │ │ │ ├── GenericStructJSONEncoder.java
│ │ │ │ ├── JSONGet.java
│ │ │ │ ├── JSONInjector.java
│ │ │ │ ├── MapStructure.java
│ │ │ │ ├── ObjectInjector.java
│ │ │ │ ├── StructJSONDecoder.java
│ │ │ │ ├── StructJSONEncoder.java
│ │ │ │ └── WrappedBeanColonist.java
│ │ │ ├── lang/
│ │ │ │ ├── ArchClassScopeLoader.java
│ │ │ │ ├── ArchClassScopeSet.java
│ │ │ │ ├── ArchDynamicFactory.java
│ │ │ │ ├── ArchMultiProtocolNamespaceFetcher.java
│ │ │ │ ├── ClassCandidateScanner.java
│ │ │ │ ├── ClassFilter.java
│ │ │ │ ├── ClassNameFetcher.java
│ │ │ │ ├── ClassScanner.java
│ │ │ │ ├── ClassScope.java
│ │ │ │ ├── ClassScopeLoader.java
│ │ │ │ ├── ClassScopeNSProtocolIteratorsFactory.java
│ │ │ │ ├── DynamicFactory.java
│ │ │ │ ├── FileClassCollectorAdapter.java
│ │ │ │ ├── FilePackageCollectorAdapter.java
│ │ │ │ ├── GenericClassScopeSet.java
│ │ │ │ ├── GenericDynamicFactory.java
│ │ │ │ ├── GenericScopeNSProtocolIteratorsFactory.java
│ │ │ │ ├── InnerMetadataReader.java
│ │ │ │ ├── JarClassCollectorAdapter.java
│ │ │ │ ├── JarPackageCollectorAdapter.java
│ │ │ │ ├── JarUtils.java
│ │ │ │ ├── LazyScopedPackage.java
│ │ │ │ ├── MetadataReader.java
│ │ │ │ ├── MultiClassScopeLoader.java
│ │ │ │ ├── NSProtocolIteratorsFactoryAdapter.java
│ │ │ │ ├── NamespaceCollector.java
│ │ │ │ ├── NamespaceIteratorPair.java
│ │ │ │ ├── ObjectCandidateScanner.java
│ │ │ │ ├── ObjectScanner.java
│ │ │ │ ├── PackageNameFetcher.java
│ │ │ │ ├── PathNamespaceCollectum.java
│ │ │ │ ├── ScopedPackage.java
│ │ │ │ ├── TypeFilter.java
│ │ │ │ └── iterator/
│ │ │ │ ├── ArchJarEntryIterator.java
│ │ │ │ ├── DirectoryFileIterator.java
│ │ │ │ ├── DirectoryPackageIterator.java
│ │ │ │ ├── JarEntryIterator.java
│ │ │ │ ├── JarFileIterator.java
│ │ │ │ ├── JarPackageIterator.java
│ │ │ │ └── NamespaceIterator.java
│ │ │ ├── lock/
│ │ │ │ ├── ReentrantReadWriteSpinLock.java
│ │ │ │ ├── ReentrantSpinLock.java
│ │ │ │ └── SpinLock.java
│ │ │ ├── math/
│ │ │ │ ├── BigNumberMath.java
│ │ │ │ ├── BigNumberMathAchieve.java
│ │ │ │ ├── PrecisionHolder.java
│ │ │ │ └── Vectorizer.java
│ │ │ ├── name/
│ │ │ │ ├── ArchName.java
│ │ │ │ ├── ArchNamespaceNode.java
│ │ │ │ ├── FixScopeName.java
│ │ │ │ ├── GenericMultiNamespace.java
│ │ │ │ ├── GenericNamespaceParser.java
│ │ │ │ ├── MultiNamespace.java
│ │ │ │ ├── MultiScopeName.java
│ │ │ │ ├── Name.java
│ │ │ │ ├── Namespace.java
│ │ │ │ ├── NamespaceParser.java
│ │ │ │ ├── ScopeName.java
│ │ │ │ ├── UniNamespace.java
│ │ │ │ └── path/
│ │ │ │ ├── BasicPathResolver.java
│ │ │ │ └── PathResolver.java
│ │ │ ├── rdb/
│ │ │ │ ├── ArchRDBExecutor.java
│ │ │ │ ├── DirectResultSession.java
│ │ │ │ ├── MappedExecutor.java
│ │ │ │ ├── MappedSQLSplicer.java
│ │ │ │ ├── RDBHost.java
│ │ │ │ ├── ResultSession.java
│ │ │ │ ├── SQLSplicer.java
│ │ │ │ └── SQLStrings.java
│ │ │ ├── template/
│ │ │ │ ├── TemplateCursorParser.java
│ │ │ │ ├── TemplateParser.java
│ │ │ │ ├── UTRAlmondProvider.java
│ │ │ │ └── UniformTemplateRenderer.java
│ │ │ └── uoi/
│ │ │ ├── GenericUniformObjectLoaderFactory.java
│ │ │ ├── LocalUOIJavaClassProvider.java
│ │ │ ├── UOI.java
│ │ │ ├── UniformObjectLoader.java
│ │ │ └── UniformObjectLoaderFactory.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ ├── system/
│ │ │ ├── SimpleCascadeComponentManager.java
│ │ │ └── TestComponent.java
│ │ ├── unit/
│ │ │ ├── JavaGenericTests.java
│ │ │ ├── TestFileIteratorAndDistinct.java
│ │ │ ├── TestMultiValueMap.java
│ │ │ └── TestUnits.java
│ │ └── util/
│ │ ├── TestCompactTimestamp.java
│ │ ├── TestDateTime.java
│ │ ├── TestJSONConfig.java
│ │ ├── TestNamespace.java
│ │ ├── TestParser.java
│ │ ├── TestRRWSLock.java
│ │ ├── TestTemplate.java
│ │ ├── inc.jplus
│ │ └── json/
│ │ ├── Parasite.java
│ │ ├── Slave.java
│ │ └── TestJSON.java
│ ├── Slime/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ └── slime/
│ │ │ ├── cache/
│ │ │ │ ├── CacheConstants.java
│ │ │ │ └── query/
│ │ │ │ ├── ArchConcurrentCountDictCache.java
│ │ │ │ ├── ArchCountDictCache.java
│ │ │ │ ├── ArchLocalDictCachePage.java
│ │ │ │ ├── ConcurrentMergeLRUDictCachePage.java
│ │ │ │ ├── CountDictCachePage.java
│ │ │ │ ├── DictCachePage.java
│ │ │ │ ├── DirectlySourceAccessCacheAdapter.java
│ │ │ │ ├── IterableDictCachePage.java
│ │ │ │ ├── LocalBufferedDictCachePage.java
│ │ │ │ ├── LocalDictCachePage.java
│ │ │ │ ├── LocalFixedLRUDictCachePage.java
│ │ │ │ ├── RangedDictCachePage.java
│ │ │ │ ├── SourceRetriever.java
│ │ │ │ ├── UniformCountDictCache.java
│ │ │ │ ├── UniformCountSelfLoadingDictCache.java
│ │ │ │ ├── UniformDictCache.java
│ │ │ │ ├── UniformSelfLoadingDictCache.java
│ │ │ │ └── pool/
│ │ │ │ ├── BatchPageSourceRetriever.java
│ │ │ │ ├── CountSelfPooledPageDictCache.java
│ │ │ │ ├── LocalHotspotPooledDictCache.java
│ │ │ │ ├── LocalLRUPooledDictCache.java
│ │ │ │ ├── LocalLRUPrimaryPooledDictCache.java
│ │ │ │ ├── LocalRangedDictCachePage.java
│ │ │ │ ├── PoolCaches.java
│ │ │ │ ├── PooledPageDictCache.java
│ │ │ │ └── PrimaryPooledDictCache.java
│ │ │ ├── chunk/
│ │ │ │ ├── ArchPatriarchalChunk.java
│ │ │ │ ├── Chunk.java
│ │ │ │ ├── ContiguousPage.java
│ │ │ │ ├── Continunk.java
│ │ │ │ ├── DiscreteChunk.java
│ │ │ │ ├── DivisibleChunk.java
│ │ │ │ ├── Frame.java
│ │ │ │ ├── Minimunk.java
│ │ │ │ ├── Page.java
│ │ │ │ ├── PatriarchalChunk.java
│ │ │ │ ├── RangedChunk64.java
│ │ │ │ ├── RangedPage.java
│ │ │ │ ├── RangedPage64.java
│ │ │ │ ├── Splitunk.java
│ │ │ │ ├── marshaling/
│ │ │ │ │ ├── ArchMasterSplitunkPartitioner64.java
│ │ │ │ │ ├── BuddyPrepPartitionDividerStrategy64.java
│ │ │ │ │ ├── ChunkPartitioner.java
│ │ │ │ │ ├── EvenSeqChunkPartitioner64.java
│ │ │ │ │ ├── PageCluster.java
│ │ │ │ │ ├── PageDividerPartition64.java
│ │ │ │ │ ├── PageGroup.java
│ │ │ │ │ ├── PagePartition.java
│ │ │ │ │ ├── PagePartitionGroup.java
│ │ │ │ │ ├── PagePartitioner.java
│ │ │ │ │ ├── PartitionDividerStrategy.java
│ │ │ │ │ ├── PartitionableChunkDivider64.java
│ │ │ │ │ ├── PartitionablePageDivider64.java
│ │ │ │ │ ├── PreparedEvenSeqPagePartitioner64.java
│ │ │ │ │ ├── PreparedPageDividerPartition64.java
│ │ │ │ │ ├── SequentialPagePartitionGroup.java
│ │ │ │ │ └── SequentialPagePartitionGroup64.java
│ │ │ │ └── scheduler/
│ │ │ │ ├── ActivePageScheduler.java
│ │ │ │ ├── ActivePageScheduler64.java
│ │ │ │ ├── ArchMasterSplitunkDivider64.java
│ │ │ │ ├── BadAllocateException.java
│ │ │ │ ├── BatchActivePageScheduler.java
│ │ │ │ ├── BatchActivePageScheduler64.java
│ │ │ │ ├── ChunkDivider.java
│ │ │ │ ├── ChunkRegister.java
│ │ │ │ ├── DefaultPageRecycleStrategy.java
│ │ │ │ ├── DirectPagePool.java
│ │ │ │ ├── FixedChunkDivider64.java
│ │ │ │ ├── FixedPageDivider64.java
│ │ │ │ ├── LocalBatchActivePageScheduler64.java
│ │ │ │ ├── LocalMapChunkRegister.java
│ │ │ │ ├── PageDivider.java
│ │ │ │ ├── PagePool.java
│ │ │ │ ├── PageRecycleStrategy.java
│ │ │ │ ├── PageScheduler.java
│ │ │ │ ├── RangedPageScheduler.java
│ │ │ │ └── RangedPageScheduler64.java
│ │ │ ├── cluster/
│ │ │ │ ├── ArchSequentialChunkGroup.java
│ │ │ │ ├── ChunkGroup.java
│ │ │ │ ├── Cluster.java
│ │ │ │ ├── RangedCluster.java
│ │ │ │ └── SequentialChunkGroup.java
│ │ │ ├── entity/
│ │ │ │ ├── ArchEnumIndexableEntity.java
│ │ │ │ ├── EnumIndexableEntity.java
│ │ │ │ └── ObjectiveEntity.java
│ │ │ ├── map/
│ │ │ │ ├── AlterableCacher.java
│ │ │ │ ├── AlterableQuerier.java
│ │ │ │ ├── LocalMapQuerier.java
│ │ │ │ ├── Mapper.java
│ │ │ │ ├── MonoKeyQueryRange.java
│ │ │ │ ├── Querier.java
│ │ │ │ ├── QueryRange.java
│ │ │ │ ├── indexable/
│ │ │ │ │ ├── IndexableCachedMap.java
│ │ │ │ │ └── IndexableMapQuerier.java
│ │ │ │ └── rdb/
│ │ │ │ ├── RDBMapQuerier.java
│ │ │ │ └── RangedRDBCachedMap.java
│ │ │ ├── meta/
│ │ │ │ ├── TableIndex64Meta.java
│ │ │ │ └── TableIndexMeta.java
│ │ │ ├── query/
│ │ │ │ ├── GenericPageQuery.java
│ │ │ │ └── PageQuery.java
│ │ │ ├── source/
│ │ │ │ ├── ArchQueryScopeMeta.java
│ │ │ │ ├── DAOScanner.java
│ │ │ │ ├── DataAccessObject.java
│ │ │ │ ├── GenericResultConverter.java
│ │ │ │ ├── ResultConverter.java
│ │ │ │ ├── UniformQueryScopeMeta.java
│ │ │ │ ├── XMLResourceScanner.java
│ │ │ │ ├── indexable/
│ │ │ │ │ ├── GenericIndexKeySourceRetriever.java
│ │ │ │ │ ├── GenericIndexableTargetScopeMeta.java
│ │ │ │ │ ├── IndexableDataManipulator.java
│ │ │ │ │ ├── IndexableIterableManipulator.java
│ │ │ │ │ └── IndexableTargetScopeMeta.java
│ │ │ │ └── rdb/
│ │ │ │ ├── ArchRelationalDatabase.java
│ │ │ │ ├── ContiguousNumIndexBatchPageSourceRetriever.java
│ │ │ │ ├── GenericRDBTargetTableMeta.java
│ │ │ │ ├── GenericSingleKeySourceRetriever.java
│ │ │ │ ├── RDBClient.java
│ │ │ │ ├── RDBQuerierDataManipulator.java
│ │ │ │ ├── RDBTargetTableMeta.java
│ │ │ │ ├── RangedRDBQuerierDataManipulator.java
│ │ │ │ └── RelationalDatabase.java
│ │ │ └── unitization/
│ │ │ ├── IntervalRangeComparator.java
│ │ │ ├── LinerRange.java
│ │ │ ├── MinMaxRange.java
│ │ │ ├── MinMaxRange64.java
│ │ │ ├── NumPrecision.java
│ │ │ ├── PartialOrderRange.java
│ │ │ ├── PartialRange.java
│ │ │ ├── Precision.java
│ │ │ ├── Precision64.java
│ │ │ └── Range.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ ├── cache/
│ │ │ └── TestCache.java
│ │ └── chunk/
│ │ └── TestChunk.java
│ ├── Springram/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── summer/
│ │ └── spring/
│ │ ├── SpringKernel.java
│ │ ├── Springram.java
│ │ ├── Springron.java
│ │ └── util/
│ │ └── ConfigUtils.java
│ ├── Summer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── pinecone/
│ │ └── summer/
│ │ ├── ArchConnectDispatcher.java
│ │ ├── ArchConnection.java
│ │ ├── ArchHostSystem.java
│ │ ├── ArchPageson.java
│ │ ├── ArchRouterDispatcher.java
│ │ ├── ArchWizard.java
│ │ ├── ArchWizardSummoner.java
│ │ ├── ArchWizardum.java
│ │ ├── Connectiom.java
│ │ ├── GetConnection.java
│ │ ├── NaughtyGenieInvokedException.java
│ │ ├── PostConnection.java
│ │ ├── RouterType.java
│ │ ├── SystemRoutlet.java
│ │ ├── SystemServlet.java
│ │ ├── SystemSpawner.java
│ │ ├── TerminateSessionException.java
│ │ ├── WizardGeniesInvoker.java
│ │ ├── context/
│ │ │ └── ServletContextAware.java
│ │ ├── http/
│ │ │ ├── CommonHttpEntityParser.java
│ │ │ ├── HttpEntityParser.java
│ │ │ ├── HttpHeaders.java
│ │ │ ├── HttpMethod.java
│ │ │ ├── HttpURLParser.java
│ │ │ ├── InvalidMediaTypeException.java
│ │ │ └── MediaType.java
│ │ ├── io/
│ │ │ ├── AbstractResource.java
│ │ │ ├── InputStreamSource.java
│ │ │ ├── PathResource.java
│ │ │ ├── Resource.java
│ │ │ └── WritableResource.java
│ │ ├── multiparts/
│ │ │ ├── MaxUploadSizeExceededException.java
│ │ │ ├── MultipartException.java
│ │ │ ├── MultipartFile.java
│ │ │ ├── MultipartHttpServletRequest.java
│ │ │ ├── MultipartRequest.java
│ │ │ ├── MultipartResolver.java
│ │ │ ├── commons/
│ │ │ │ ├── CommonsFileUploadSupport.java
│ │ │ │ ├── CommonsMultipartFile.java
│ │ │ │ ├── CommonsMultipartFiles.java
│ │ │ │ └── CommonsMultipartResolver.java
│ │ │ └── support/
│ │ │ ├── AbstractMultipartHttpServletRequest.java
│ │ │ └── DefaultMultipartHttpServletRequest.java
│ │ ├── prototype/
│ │ │ ├── Citizen.java
│ │ │ ├── Component.java
│ │ │ ├── ConnectDispatcher.java
│ │ │ ├── Connection.java
│ │ │ ├── Connectson.java
│ │ │ ├── Controller.java
│ │ │ ├── GenieBottle.java
│ │ │ ├── HostSystem.java
│ │ │ ├── JSONBasedControl.java
│ │ │ ├── JasperBasedModel.java
│ │ │ ├── ModelEnchanter.java
│ │ │ ├── Pagesion.java
│ │ │ ├── Pageson.java
│ │ │ ├── RouterDispatcher.java
│ │ │ ├── RouterMapping.java
│ │ │ ├── SequentialDispatcher.java
│ │ │ ├── Servletson.java
│ │ │ ├── Wizard.java
│ │ │ ├── WizardSummoner.java
│ │ │ └── Wizardum.java
│ │ └── util/
│ │ ├── InvalidMimeTypeException.java
│ │ ├── MimeType.java
│ │ ├── MimeTypeUtils.java
│ │ ├── ResourceUtils.java
│ │ ├── RouteUtils.java
│ │ └── WebUtils.java
│ ├── Ulfhedinn/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ └── ulf/
│ │ │ └── util/
│ │ │ ├── bson/
│ │ │ │ ├── ArchJSONDecompiler.java
│ │ │ │ ├── DataTypeCode.java
│ │ │ │ ├── UlfJSONCompiler.java
│ │ │ │ └── UlfJSONDecompiler.java
│ │ │ ├── guid/
│ │ │ │ ├── GUIDs.java
│ │ │ │ ├── i128/
│ │ │ │ │ ├── ArchGuidAllocator128.java
│ │ │ │ │ ├── GUID128.java
│ │ │ │ │ ├── GuidAllocator128.java
│ │ │ │ │ ├── GuidAllocator128V1.java
│ │ │ │ │ ├── GuidAllocator128V2.java
│ │ │ │ │ ├── GuidAllocator128V3.java
│ │ │ │ │ ├── GuidAllocator128V4.java
│ │ │ │ │ ├── GuidAllocator128V5.java
│ │ │ │ │ ├── GuidAllocator128V6.java
│ │ │ │ │ ├── GuidAllocator128V7.java
│ │ │ │ │ ├── GuidAllocatorHC128V7.java
│ │ │ │ │ ├── UUID128.java
│ │ │ │ │ ├── UuidCreator.java
│ │ │ │ │ ├── codec/
│ │ │ │ │ │ ├── GuidCodec.java
│ │ │ │ │ │ ├── StandardBinaryCodec.java
│ │ │ │ │ │ ├── StandardStringCodec.java
│ │ │ │ │ │ ├── UriCodec.java
│ │ │ │ │ │ ├── UrnCodec.java
│ │ │ │ │ │ ├── base/
│ │ │ │ │ │ │ ├── Base16Codec.java
│ │ │ │ │ │ │ ├── Base32Codec.java
│ │ │ │ │ │ │ ├── Base58BtcCodec.java
│ │ │ │ │ │ │ ├── Base62Codec.java
│ │ │ │ │ │ │ ├── Base64Codec.java
│ │ │ │ │ │ │ ├── Base64UrlCodec.java
│ │ │ │ │ │ │ ├── BaseN.java
│ │ │ │ │ │ │ ├── BaseNCodec.java
│ │ │ │ │ │ │ └── function/
│ │ │ │ │ │ │ ├── Base16Decoder.java
│ │ │ │ │ │ │ ├── Base16Encoder.java
│ │ │ │ │ │ │ ├── Base32Decoder.java
│ │ │ │ │ │ │ ├── Base32Encoder.java
│ │ │ │ │ │ │ ├── Base64Decoder.java
│ │ │ │ │ │ │ ├── Base64Encoder.java
│ │ │ │ │ │ │ ├── BaseNDecoder.java
│ │ │ │ │ │ │ ├── BaseNEncoder.java
│ │ │ │ │ │ │ ├── BaseNRemainderDecoder.java
│ │ │ │ │ │ │ └── BaseNRemainderEncoder.java
│ │ │ │ │ │ └── other/
│ │ │ │ │ │ ├── DotNetGuid1Codec.java
│ │ │ │ │ │ ├── DotNetGuid4Codec.java
│ │ │ │ │ │ ├── NcnameCodec.java
│ │ │ │ │ │ ├── SlugCodec.java
│ │ │ │ │ │ └── TimeOrderedCodec.java
│ │ │ │ │ ├── enums/
│ │ │ │ │ │ ├── UuidLocalDomain.java
│ │ │ │ │ │ ├── UuidNamespace.java
│ │ │ │ │ │ ├── UuidVariant.java
│ │ │ │ │ │ └── UuidVersion.java
│ │ │ │ │ ├── exception/
│ │ │ │ │ │ └── InvalidUuidException.java
│ │ │ │ │ ├── factory/
│ │ │ │ │ │ ├── AbstCombFactory.java
│ │ │ │ │ │ ├── AbstNameBasedFactory.java
│ │ │ │ │ │ ├── AbstRandomBasedFactory.java
│ │ │ │ │ │ ├── AbstTimeBasedFactory.java
│ │ │ │ │ │ ├── UuidFactory.java
│ │ │ │ │ │ ├── function/
│ │ │ │ │ │ │ ├── ClockSeqFunction.java
│ │ │ │ │ │ │ ├── NodeIdFunction.java
│ │ │ │ │ │ │ ├── RandomFunction.java
│ │ │ │ │ │ │ ├── TimeFunction.java
│ │ │ │ │ │ │ └── impl/
│ │ │ │ │ │ │ ├── DefaultClockSeqFunction.java
│ │ │ │ │ │ │ ├── DefaultNodeIdFunction.java
│ │ │ │ │ │ │ ├── DefaultRandomFunction.java
│ │ │ │ │ │ │ ├── DefaultTimeFunction.java
│ │ │ │ │ │ │ ├── HashNodeIdFunction.java
│ │ │ │ │ │ │ ├── MacNodeIdFunction.java
│ │ │ │ │ │ │ ├── RandomNodeIdFunction.java
│ │ │ │ │ │ │ └── WindowsTimeFunction.java
│ │ │ │ │ │ ├── nonstandard/
│ │ │ │ │ │ │ ├── PrefixCombFactory.java
│ │ │ │ │ │ │ ├── ShortPrefixCombFactory.java
│ │ │ │ │ │ │ ├── ShortSuffixCombFactory.java
│ │ │ │ │ │ │ └── SuffixCombFactory.java
│ │ │ │ │ │ └── standard/
│ │ │ │ │ │ ├── DceSecurityFactory.java
│ │ │ │ │ │ ├── NameBasedMd5Factory.java
│ │ │ │ │ │ ├── NameBasedSha1Factory.java
│ │ │ │ │ │ ├── RandomBasedFactory.java
│ │ │ │ │ │ ├── TimeBasedFactory.java
│ │ │ │ │ │ ├── TimeOrderedEpochFactory.java
│ │ │ │ │ │ └── TimeOrderedFactory.java
│ │ │ │ │ └── util/
│ │ │ │ │ ├── CombUtil.java
│ │ │ │ │ ├── MachineId.java
│ │ │ │ │ ├── UuidBuilder.java
│ │ │ │ │ ├── UuidComparator.java
│ │ │ │ │ ├── UuidTime.java
│ │ │ │ │ ├── UuidUtil.java
│ │ │ │ │ ├── UuidValidator.java
│ │ │ │ │ ├── immutable/
│ │ │ │ │ │ ├── ByteArray.java
│ │ │ │ │ │ └── CharArray.java
│ │ │ │ │ └── internal/
│ │ │ │ │ ├── ByteUtil.java
│ │ │ │ │ ├── JavaVersionUtil.java
│ │ │ │ │ ├── NetworkUtil.java
│ │ │ │ │ ├── RandomUtil.java
│ │ │ │ │ └── SettingsUtil.java
│ │ │ │ └── i64/
│ │ │ │ ├── BitsAllocator.java
│ │ │ │ ├── GUID64.java
│ │ │ │ ├── GUID72.java
│ │ │ │ ├── GuidAllocator64.java
│ │ │ │ ├── GuidAllocator72.java
│ │ │ │ ├── GuidAllocator72V2.java
│ │ │ │ ├── utils/
│ │ │ │ │ ├── DateUtils.java
│ │ │ │ │ ├── DockerUtils.java
│ │ │ │ │ ├── EnumUtils.java
│ │ │ │ │ ├── NamingThreadFactory.java
│ │ │ │ │ ├── NetUtils.java
│ │ │ │ │ ├── PaddedAtomicLong.java
│ │ │ │ │ └── ValuedEnum.java
│ │ │ │ └── worker/
│ │ │ │ ├── GenericDisposableWorkerIdAssigner.java
│ │ │ │ ├── WorkerIdAssigner.java
│ │ │ │ ├── WorkerNodeType.java
│ │ │ │ └── entity/
│ │ │ │ └── WorkerNodeEntity.java
│ │ │ ├── lang/
│ │ │ │ ├── ArchMultiScopeFactory.java
│ │ │ │ ├── ArchMultiScopeLoader.java
│ │ │ │ ├── GenericPreloadClassInspector.java
│ │ │ │ ├── HierarchyClassInspector.java
│ │ │ │ ├── MultiScopeFactory.java
│ │ │ │ ├── MultiTraitClassLoader.java
│ │ │ │ ├── PooledClassCandidateScanner.java
│ │ │ │ ├── PreloadClassInspector.java
│ │ │ │ ├── SimpleAnnotationExcludeFilter.java
│ │ │ │ └── TraitClassLoader.java
│ │ │ ├── protobuf/
│ │ │ │ ├── BeanProtobufDecoder.java
│ │ │ │ ├── BeanProtobufEncoder.java
│ │ │ │ ├── DescriptorNameNormalizer.java
│ │ │ │ ├── FieldProtobufDecoder.java
│ │ │ │ ├── FieldProtobufEncoder.java
│ │ │ │ ├── FileDescriptorFormater.java
│ │ │ │ ├── GenericBeanProtobufDecoder.java
│ │ │ │ ├── GenericBeanProtobufEncoder.java
│ │ │ │ ├── GenericFieldProtobufDecoder.java
│ │ │ │ ├── GenericFieldProtobufEncoder.java
│ │ │ │ ├── Options.java
│ │ │ │ ├── PrimitiveWrapper.java
│ │ │ │ ├── ProtobufEncodeException.java
│ │ │ │ ├── ProtobufUtils.java
│ │ │ │ ├── RepeatedWrapper.java
│ │ │ │ └── WolfProtobufConstants.java
│ │ │ └── template/
│ │ │ ├── UTRFreeMarkerProvider.java
│ │ │ └── UTRThymeleafProvider.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ ├── TestBson.java
│ │ └── UTRTests.java
│ ├── pom.xml
│ ├── ulf-lib-construction/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── pinecone/
│ │ │ └── ulf/
│ │ │ └── beans/
│ │ │ ├── aop/
│ │ │ │ └── UlfurEnableAspectProxy.java
│ │ │ └── construction/
│ │ │ ├── StructureAnnotationConfiguration.java
│ │ │ ├── StructureAnnotationProcessor.java
│ │ │ ├── UlfInstanceManufacturer.java
│ │ │ └── UlfurInstanceManufacturer.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── wolf/
│ │ └── construction/
│ │ ├── CanesService.java
│ │ ├── CanisAspect.java
│ │ ├── FoxBlade.java
│ │ ├── FoxService.java
│ │ └── HuskyService.java
│ └── ulf-lib-oltp-rdb/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── pinecone/
│ └── ulf/
│ └── rdb/
│ ├── mysql/
│ │ ├── MySQLExecutor.java
│ │ └── MySQLHost.java
│ └── sqlite/
│ ├── SQLiteExecutor.java
│ ├── SQLiteHost.java
│ └── SQLiteMethod.java
├── README.md
├── RedQueen/
│ ├── pom.xml
│ ├── redqueen-architecture/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── acorn/
│ │ └── redqueen/
│ │ ├── compute/
│ │ │ └── ComputationNode.java
│ │ └── system/
│ │ └── Dummy.java
│ ├── redqueen-computation-suit/
│ │ └── pom.xml
│ ├── redqueen-framework-service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── acorn/
│ │ └── redqueen/
│ │ └── service/
│ │ ├── ApplicationManager.java
│ │ ├── ArchRedApplication.java
│ │ ├── RedApplication.java
│ │ ├── RedQueenServiceControllerException.java
│ │ ├── RedServiceApplication.java
│ │ ├── ServiceApplication.java
│ │ └── conduct/
│ │ ├── CollectiveServiceRegiment.java
│ │ └── RedCollectiveServiceRegiment.java
│ └── redqueen-system/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── acorn/
│ └── redqueen/
│ ├── RedQueen.java
│ └── system/
│ └── ServiceCentralControl.java
├── Saurons/
│ ├── Saurye/
│ │ └── pom.xml
│ ├── Shadow/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ ├── META-INF/
│ │ │ └── MANIFEST.MF
│ │ └── com/
│ │ └── sauron/
│ │ └── shadow/
│ │ ├── Shadow.java
│ │ ├── ShadowBoot.java
│ │ ├── chronicle/
│ │ │ ├── AffinitySuggestation.java
│ │ │ ├── ArchClerk.java
│ │ │ ├── Chronicle.java
│ │ │ ├── ChronicleHeist.java
│ │ │ ├── ChroniclePeriodicHeistKernel.java
│ │ │ ├── ChronicleReaver.java
│ │ │ ├── Clerk.java
│ │ │ ├── Newstron/
│ │ │ │ ├── BaiduClerk.java
│ │ │ │ ├── CNNClerk.java
│ │ │ │ ├── GoogleClerk.java
│ │ │ │ └── ZhihuClerk.java
│ │ │ ├── SimpleAjaxBasedClerk.java
│ │ │ └── dao/
│ │ │ └── BasicChronicleManipulator.java
│ │ └── heists/
│ │ ├── Apesk/
│ │ │ ├── ApeskHeist.java
│ │ │ ├── ApeskReaver.java
│ │ │ └── ApeskStalker.java
│ │ ├── ArtStation/
│ │ │ ├── ArtStationHeist.java
│ │ │ ├── ArtStationReaver.java
│ │ │ └── ArtStationStalker.java
│ │ ├── DeviantArt/
│ │ │ ├── DeviantArtHeist.java
│ │ │ ├── DeviantArtReaver.java
│ │ │ └── DeviantArtStalker.java
│ │ ├── DownloadCNet/
│ │ │ ├── DownloadCNetHeist.java
│ │ │ ├── DownloadCNetReaver.java
│ │ │ └── DownloadCNetStalker.java
│ │ ├── PubChem/
│ │ │ ├── PubChemHeist.java
│ │ │ ├── PubChemReaver.java
│ │ │ └── PubChemStalker.java
│ │ ├── Steam/
│ │ │ ├── SteamHeist.java
│ │ │ └── SteamReaver.java
│ │ └── Void/
│ │ ├── VoidHeist.java
│ │ └── VoidReaver.java
│ ├── heist-framework-architecture/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── sauron/
│ │ └── heist/
│ │ ├── heistron/
│ │ │ ├── CascadeHeist.java
│ │ │ ├── ConfigNotFoundException.java
│ │ │ ├── Crew.java
│ │ │ ├── Crewnium.java
│ │ │ ├── Embezzler.java
│ │ │ ├── HeistConfigConstants.java
│ │ │ ├── HeistException.java
│ │ │ ├── HeistExecutionException.java
│ │ │ ├── HeistOrchestrateException.java
│ │ │ ├── HeistScheme.java
│ │ │ ├── HeistStatusTerminatedException.java
│ │ │ ├── Heistgram.java
│ │ │ ├── Heistium.java
│ │ │ ├── Heists.java
│ │ │ ├── Heistum.java
│ │ │ ├── LootAbortException.java
│ │ │ ├── LootRecoveredException.java
│ │ │ ├── Metier.java
│ │ │ ├── Reaver.java
│ │ │ ├── Stalker.java
│ │ │ ├── chronic/
│ │ │ │ ├── MultiRaiderLoader.java
│ │ │ │ ├── PeriodicHeist.java
│ │ │ │ ├── PeriodicHeistKernel.java
│ │ │ │ ├── PeriodicHeistRehearsal.java
│ │ │ │ ├── Raider.java
│ │ │ │ ├── RaiderFactory.java
│ │ │ │ └── Raiderlet.java
│ │ │ ├── event/
│ │ │ │ └── HeistLifecycleEventInterceptor.java
│ │ │ ├── mapreduce/
│ │ │ │ ├── SchemeQuerier.java
│ │ │ │ └── TaskScheme.java
│ │ │ ├── orchestration/
│ │ │ │ ├── ChildHeistInstanceModifier.java
│ │ │ │ ├── ChildHeistOrchestrator.java
│ │ │ │ ├── Heistlet.java
│ │ │ │ ├── HeistletOrchestrator.java
│ │ │ │ ├── Hierarchy.java
│ │ │ │ ├── Instructations.java
│ │ │ │ ├── TaskTransaction.java
│ │ │ │ └── Taskium.java
│ │ │ └── scheduler/
│ │ │ ├── PageFrame64ConsumerAdapter.java
│ │ │ ├── TaskConsumer.java
│ │ │ ├── TaskFrame64Consumer.java
│ │ │ ├── TaskFrame64Producer.java
│ │ │ ├── TaskPage.java
│ │ │ ├── TaskPageConsumer.java
│ │ │ ├── TaskPageProducer.java
│ │ │ ├── TaskProducer.java
│ │ │ └── TaskSchedulerStrategy.java
│ │ └── http/
│ │ └── HttpBrowserConf.java
│ ├── heist-http-client-okhttp-suit/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── sauron/
│ │ └── heist/
│ │ └── okhttp/
│ │ ├── HeistOkHttpClientFactory.java
│ │ ├── InMemoryCookieJar.java
│ │ ├── OkClientConstructionScheme.java
│ │ └── OkHttpFactory.java
│ ├── heist-system-schedule/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── sauron/
│ │ │ │ └── heist/
│ │ │ │ ├── heistron/
│ │ │ │ │ ├── ArchCrew.java
│ │ │ │ │ ├── ArchHeistum.java
│ │ │ │ │ ├── CrewPageProcessor.java
│ │ │ │ │ ├── CrewPipeline.java
│ │ │ │ │ ├── HTTPCrew.java
│ │ │ │ │ ├── HTTPHeist.java
│ │ │ │ │ ├── HTTPIndexHeist.java
│ │ │ │ │ ├── Heist.java
│ │ │ │ │ ├── HeistEntity.java
│ │ │ │ │ ├── Heistotron.java
│ │ │ │ │ ├── LocalCrewnium.java
│ │ │ │ │ ├── LocalHeistium.java
│ │ │ │ │ ├── MegaDOMIndexCrew.java
│ │ │ │ │ ├── PatriarchalHeistScheme.java
│ │ │ │ │ ├── chronic/
│ │ │ │ │ │ ├── ArchPeriodicHeistRehearsal.java
│ │ │ │ │ │ ├── ExcludeRaiderletFilters.java
│ │ │ │ │ │ ├── FeastInstructation.java
│ │ │ │ │ │ ├── LocalMultiRaiderLoader.java
│ │ │ │ │ │ ├── LocalRaiderFactory.java
│ │ │ │ │ │ ├── LocalRaiderScopeSet.java
│ │ │ │ │ │ ├── RaiderletAnnotationValueFilter.java
│ │ │ │ │ │ └── SedationInstructation.java
│ │ │ │ │ ├── mapreduce/
│ │ │ │ │ │ └── HTTPResourceTaskScheme.java
│ │ │ │ │ ├── orchestration/
│ │ │ │ │ │ ├── ExcludeHeistletFilters.java
│ │ │ │ │ │ ├── HeistTask.java
│ │ │ │ │ │ ├── HeistletAnnotationValueFilter.java
│ │ │ │ │ │ ├── LocalChildHeistOrchestrator.java
│ │ │ │ │ │ ├── LocalHeistletFactory.java
│ │ │ │ │ │ ├── LocalHeistletLoader.java
│ │ │ │ │ │ └── LocalHeistumOrchestrator.java
│ │ │ │ │ └── scheduler/
│ │ │ │ │ ├── ActiveTaskPageProducer.java
│ │ │ │ │ ├── LocalMultiActiveTaskPageProducer.java
│ │ │ │ │ ├── LocalPreemptiveSingleFrame64Consumer.java
│ │ │ │ │ ├── LocalPreemptiveTaskFrame64Producer.java
│ │ │ │ │ ├── LocalSingleTaskPageConsumer.java
│ │ │ │ │ ├── LocalTaskSchedulerStrategy.java
│ │ │ │ │ ├── RangedTaskPage.java
│ │ │ │ │ └── SingleTaskPageConsumer.java
│ │ │ │ └── http/
│ │ │ │ ├── AbstractDownloader.java
│ │ │ │ ├── GenericHttpClientGenerator.java
│ │ │ │ ├── HttpBrowserDownloader.java
│ │ │ │ ├── HttpClientGenerator.java
│ │ │ │ └── PageDownloader.java
│ │ │ └── resources/
│ │ │ └── application.yaml
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ ├── Test.java
│ │ └── others/
│ │ └── TestServgramTritium.java
│ ├── pom.xml
│ └── sauron-core/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── sauron/
│ ├── Sauron.java
│ └── system/
│ ├── Saunut.java
│ └── SauronKingdom.java
├── Skynet/
│ ├── pom.xml
│ ├── skynet-architecture/
│ │ └── pom.xml
│ ├── skynet-cloud-deploy/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── acorn/
│ │ └── skynet/
│ │ └── deploy/
│ │ ├── CloudDeploy.java
│ │ └── service/
│ │ ├── CollectiveServiceDeployRegiment.java
│ │ └── SkyCollectiveServiceDeployRegiment.java
│ └── skynet-system/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── acorn/
│ └── skynet/
│ ├── Skynet.java
│ └── system/
│ └── SkynetSubsystem.java
├── Sparta/
│ ├── pom.xml
│ ├── sparta-api-uac/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walnut/
│ │ │ └── sparta/
│ │ │ └── account/
│ │ │ ├── rpc/
│ │ │ │ ├── thrift/
│ │ │ │ │ └── AccountIface.java
│ │ │ │ └── wolfmc/
│ │ │ │ └── xx.java
│ │ │ └── xxx.java
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── example/
│ │ └── AppTest.java
│ ├── sparta-api-uofs/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walnut/
│ │ │ └── sparta/
│ │ │ └── uofs/
│ │ │ ├── thrift/
│ │ │ │ └── UOFSIface.java
│ │ │ └── xxx.java
│ │ └── test/
│ │ └── java/
│ │ └── cn/
│ │ └── ken/
│ │ └── AppTest.java
│ ├── sparta-core-console/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walnut/
│ │ │ │ └── sparta/
│ │ │ │ ├── Sparta.java
│ │ │ │ ├── SpartaBoot.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── SpringGlobalJSONConfig.java
│ │ │ │ │ └── ibatis/
│ │ │ │ │ └── IBatisConfig.java
│ │ │ │ ├── services/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── Dummy.java
│ │ │ │ │ │ ├── FileSystemController.java
│ │ │ │ │ │ ├── UOFSController.java
│ │ │ │ │ │ └── v2/
│ │ │ │ │ │ ├── RegistryMetaController.java
│ │ │ │ │ │ ├── RegistryTreeController.java
│ │ │ │ │ │ ├── ScenarioMetaController.java
│ │ │ │ │ │ ├── ServiceMetaController.java
│ │ │ │ │ │ ├── ServiceTreeController.java
│ │ │ │ │ │ └── TaskMetaController.java
│ │ │ │ │ ├── drivers/
│ │ │ │ │ │ ├── RegistryMasterManipulatorImpl.java
│ │ │ │ │ │ ├── RegistryMasterTreeManipulatorImpl.java
│ │ │ │ │ │ ├── ScenarioMasterManipulatorImpl.java
│ │ │ │ │ │ ├── ScenarioTreeManipulatorSharerImpl.java
│ │ │ │ │ │ ├── ServiceMasterManipulatorImpl.java
│ │ │ │ │ │ └── ServiceMasterTreeManipulatorImpl.java
│ │ │ │ │ ├── dto/
│ │ │ │ │ │ └── updateObjectDto.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ └── FakeNews.java
│ │ │ │ │ ├── pojo/
│ │ │ │ │ │ └── Dummy.java
│ │ │ │ │ └── service/
│ │ │ │ │ ├── ServiceNodeService.java
│ │ │ │ │ ├── ServiceTreeService.java
│ │ │ │ │ └── serviceImpl/
│ │ │ │ │ ├── ServiceNodeServiceImpl.java
│ │ │ │ │ └── ServiceTreeServiceImpl.java
│ │ │ │ └── system/
│ │ │ │ ├── BasicResultResponse.java
│ │ │ │ └── SystemController.java
│ │ │ └── resources/
│ │ │ └── uid/
│ │ │ └── default-uid-spring.xml
│ │ └── test/
│ │ └── java/
│ │ ├── UniTrieMaptronTest.java
│ │ ├── com/
│ │ │ ├── ender/
│ │ │ │ └── TestEnderHydra.java
│ │ │ ├── rpc/
│ │ │ │ └── TestGrpcService.java
│ │ │ └── sparta/
│ │ │ ├── TestAccount.java
│ │ │ ├── TestBucket.java
│ │ │ ├── TestDeployTree.java
│ │ │ ├── TestInnerTree.java
│ │ │ ├── TestKOMKing.java
│ │ │ ├── TestLayer.java
│ │ │ ├── TestQueue.java
│ │ │ ├── TestRegistry.java
│ │ │ ├── TestRemoteProcess.java
│ │ │ ├── TestRuntime.java
│ │ │ ├── TestSFM.java
│ │ │ ├── TestServiceManager.java
│ │ │ ├── TestServiceTree.java
│ │ │ ├── TestSparta.java
│ │ │ ├── TestTaskTree.java
│ │ │ ├── TestUOFS.java
│ │ │ └── TestVolume.java
│ │ └── test.java
│ ├── sparta-uac-console/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walnut/
│ │ │ │ └── sparta/
│ │ │ │ └── account/
│ │ │ │ ├── SpartaAccountService.java
│ │ │ │ ├── SpartaBoot.java
│ │ │ │ ├── api/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── v2/
│ │ │ │ │ │ │ └── AccountController.java
│ │ │ │ │ │ └── xxx.java
│ │ │ │ │ └── response/
│ │ │ │ │ └── BasicResultResponse.java
│ │ │ │ ├── config/
│ │ │ │ │ └── WebConfig.java
│ │ │ │ ├── domian/
│ │ │ │ │ └── vo/
│ │ │ │ │ ├── AccountLoginVO.java
│ │ │ │ │ ├── QueryallUserVO.java
│ │ │ │ │ └── UserLoginVO.java
│ │ │ │ ├── interceptor/
│ │ │ │ │ ├── AuthenticationInterceptor.java
│ │ │ │ │ └── RequiresAuthentication.java
│ │ │ │ ├── properties/
│ │ │ │ │ └── JwtProperties.java
│ │ │ │ ├── rpc/
│ │ │ │ │ └── thrift/
│ │ │ │ │ ├── AccountIfaceImpl.java
│ │ │ │ │ └── AccountRPCService.java
│ │ │ │ └── util/
│ │ │ │ └── JwtUtil.java
│ │ │ └── resources/
│ │ │ └── Account.thrift
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── sparta/
│ │ └── account/
│ │ └── TestSpartaAccount.java
│ ├── sparta-ucdn-console/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walnut/
│ │ │ └── sparta/
│ │ │ └── ucdn/
│ │ │ └── console/
│ │ │ ├── SpartaBoot.java
│ │ │ ├── UCDNBoot.java
│ │ │ ├── api/
│ │ │ │ └── controller/
│ │ │ │ ├── v2/
│ │ │ │ │ ├── CDNFileController.java
│ │ │ │ │ ├── CDNFolderController.java
│ │ │ │ │ ├── ClientController.java
│ │ │ │ │ ├── SiteController.java
│ │ │ │ │ ├── SiteNodeController.java
│ │ │ │ │ ├── TransmitController.java
│ │ │ │ │ └── VersionController.java
│ │ │ │ └── xx.java
│ │ │ ├── config/
│ │ │ │ ├── AppCDNMyBatisConfig.java
│ │ │ │ ├── BeanConfig.java
│ │ │ │ ├── WebConfig.java
│ │ │ │ └── WebSocketConfig.java
│ │ │ ├── domain/
│ │ │ │ └── service/
│ │ │ │ ├── FileSystemService.java
│ │ │ │ ├── NodeFileDistributionService.java
│ │ │ │ ├── cluster/
│ │ │ │ │ ├── ClusterFileSyncTransaction.java
│ │ │ │ │ ├── ClusterFileSyncTransactionManager.java
│ │ │ │ │ ├── ClusterFileSynchronizationService.java
│ │ │ │ │ ├── ClusterFileSynchronizationServiceImpl.java
│ │ │ │ │ ├── ClusterFileTransactionManager.java
│ │ │ │ │ ├── FileSynchronizedEventSubscriber.java
│ │ │ │ │ ├── MultiClusterFileSyncTransaction.java
│ │ │ │ │ └── UFMTransactionSynchronizedNotifier.java
│ │ │ │ └── impl/
│ │ │ │ ├── FileSystemServiceImpl.java
│ │ │ │ └── NodeFileDistributionServiceImpl.java
│ │ │ ├── infrastructure/
│ │ │ │ ├── ClusterLock.java
│ │ │ │ ├── FSContentDeliveryService.java
│ │ │ │ ├── SpartaUCDNService.java
│ │ │ │ ├── UCDNConsoleContents.java
│ │ │ │ ├── UCDNConstants.java
│ │ │ │ ├── UCDNContentDelivery.java
│ │ │ │ ├── UCDNService.java
│ │ │ │ ├── WolfKingMessageWareStone.java
│ │ │ │ ├── dto/
│ │ │ │ │ ├── ClusterFileSyncDTO.java
│ │ │ │ │ ├── DownloadObjectByChannelDTO.java
│ │ │ │ │ ├── LogicVolumeDTO.java
│ │ │ │ │ ├── PhysicalVolumeDTO.java
│ │ │ │ │ ├── RenameDTO.java
│ │ │ │ │ ├── SiteNodeDTO.java
│ │ │ │ │ ├── StorageExpansionDTO.java
│ │ │ │ │ ├── UpdateFileNameDTO.java
│ │ │ │ │ └── UpdateObjectByChannelDTO.java
│ │ │ │ ├── service/
│ │ │ │ │ ├── UCDNCentralServiceManager.java
│ │ │ │ │ └── UCDNServiceManager.java
│ │ │ │ └── vo/
│ │ │ │ ├── FolderContentVo.java
│ │ │ │ ├── SiteNodeVO.java
│ │ │ │ └── SyncFinishedVO.java
│ │ │ ├── interceptor/
│ │ │ │ └── JWTInterceptor.java
│ │ │ ├── mapper/
│ │ │ │ └── ClusterFileSyncMapper.java
│ │ │ ├── ufm/
│ │ │ │ ├── FMDTransactionBlock.java
│ │ │ │ ├── FileMultiDistributionController.java
│ │ │ │ ├── FileMultiDistributionIface.java
│ │ │ │ ├── FileMultiDistributionService.java
│ │ │ │ ├── SessionPhaser.java
│ │ │ │ ├── SessionValidator.java
│ │ │ │ ├── UCFMConfig.java
│ │ │ │ ├── UFMConfig.java
│ │ │ │ ├── UFMDClusterDO.java
│ │ │ │ ├── UFMDClusterFrame.java
│ │ │ │ ├── UFMSessionPhaser.java
│ │ │ │ ├── UFMSessionValidator.java
│ │ │ │ ├── UFMSessionValidatorController.java
│ │ │ │ ├── UOFSFileMultiDistributionService.java
│ │ │ │ ├── event/
│ │ │ │ │ └── UFMEventSubscriber.java
│ │ │ │ ├── protocol/
│ │ │ │ │ ├── FileMeta64.java
│ │ │ │ │ └── RequestHead.java
│ │ │ │ └── session/
│ │ │ │ └── UFMTransaction.java
│ │ │ └── util/
│ │ │ └── JWTUtil.java
│ │ └── test/
│ │ └── java/
│ │ └── cn/
│ │ └── ken/
│ │ └── AppTest.java
│ ├── sparta-ucdn-service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── sparta/
│ │ └── ucdn/
│ │ └── service/
│ │ ├── SpartaBoot.java
│ │ ├── UCDNBoot.java
│ │ ├── api/
│ │ │ ├── controller/
│ │ │ │ └── v2/
│ │ │ │ ├── ClientController.java
│ │ │ │ └── ConsoleController.java
│ │ │ ├── iface/
│ │ │ │ └── v2/
│ │ │ │ └── FileSyncDistributionController.java
│ │ │ └── response/
│ │ │ └── BasicResultResponse.java
│ │ ├── infrastructure/
│ │ │ ├── FSContentDeliveryService.java
│ │ │ ├── SpartaUCDNService.java
│ │ │ ├── UCDNBeans.java
│ │ │ ├── UCDNService.java
│ │ │ ├── UOFSContentDelivery.java
│ │ │ ├── constants/
│ │ │ │ └── PolicyConstants.java
│ │ │ ├── dto/
│ │ │ │ └── UploadDTO.java
│ │ │ └── exception/
│ │ │ └── IllegalPathException.java
│ │ └── umct/
│ │ ├── FileSyncDistribution.java
│ │ └── FileSyncDistributionImpl.java
│ ├── sparta-uofs-console/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walnut/
│ │ │ │ └── sparta/
│ │ │ │ └── uofs/
│ │ │ │ └── console/
│ │ │ │ ├── SpartaBoot.java
│ │ │ │ ├── UOFSBoot.java
│ │ │ │ ├── api/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── v2/
│ │ │ │ │ │ │ ├── BucketController.java
│ │ │ │ │ │ │ ├── ExternalSymbolicController.java
│ │ │ │ │ │ │ ├── FileController.java
│ │ │ │ │ │ │ ├── FolderController.java
│ │ │ │ │ │ │ ├── SiteController.java
│ │ │ │ │ │ │ ├── TransmitController.java
│ │ │ │ │ │ │ ├── UserController.java
│ │ │ │ │ │ │ └── VolumeController.java
│ │ │ │ │ │ └── xxx.java
│ │ │ │ │ └── response/
│ │ │ │ │ └── BasicResultResponse.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── AsyncConfig.java
│ │ │ │ │ └── WebConfig.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── dto/
│ │ │ │ │ │ ├── CreateExternalDTO.java
│ │ │ │ │ │ ├── CreateExternalSymbolicDTO.java
│ │ │ │ │ │ ├── DownloadObjectByChannelDTO.java
│ │ │ │ │ │ ├── LogicVolumeDTO.java
│ │ │ │ │ │ ├── PhysicalVolumeDTO.java
│ │ │ │ │ │ ├── RenameDTO.java
│ │ │ │ │ │ ├── StorageExpansionDTO.java
│ │ │ │ │ │ ├── UpdateFileNameDTO.java
│ │ │ │ │ │ ├── UpdateObjectByChannelDTO.java
│ │ │ │ │ │ └── UserLoginDTO.java
│ │ │ │ │ └── vo/
│ │ │ │ │ └── FolderContentVo.java
│ │ │ │ ├── infrastructure/
│ │ │ │ │ ├── SpartaUOFSService.java
│ │ │ │ │ ├── UOFSCommonConfig.java
│ │ │ │ │ ├── UOFSConfig.java
│ │ │ │ │ ├── UOFSConsoleContents.java
│ │ │ │ │ ├── UOFSContentDelivery.java
│ │ │ │ │ ├── UOFSContentDeliveryService.java
│ │ │ │ │ └── UOFSService.java
│ │ │ │ ├── interceptor/
│ │ │ │ │ └── JWTInterceptor.java
│ │ │ │ ├── service/
│ │ │ │ │ ├── FileService.java
│ │ │ │ │ └── impl/
│ │ │ │ │ └── FileServiceImpl.java
│ │ │ │ └── util/
│ │ │ │ └── JWTUtil.java
│ │ │ └── resources/
│ │ │ └── UOFSIface.thrift
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── sparta/
│ │ └── uofs/
│ │ ├── SparteUcdnServiceApplicationTests.java
│ │ └── TestSparta.java
│ └── sparta-uofs-service/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── walnut/
│ │ └── sparta/
│ │ └── uofs/
│ │ └── service/
│ │ ├── Sparta.java
│ │ ├── SpartaBoot.java
│ │ ├── api/
│ │ │ ├── controller/
│ │ │ │ └── xxx.java
│ │ │ └── response/
│ │ │ └── BasicResultResponse.java
│ │ └── infrastructure/
│ │ └── Contents.java
│ └── test/
│ └── java/
│ └── com/
│ └── sparta/
│ └── TestSparta.java
├── TaskJuggler/
│ ├── TaskJuggler.iml
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── genius/
│ ├── common/
│ │ └── Heist.java
│ ├── config/
│ │ ├── HeistConfig.java
│ │ └── MqConfig.java
│ ├── core/
│ │ └── HeistCenter.java
│ └── mq/
│ └── Harbor.java
├── TestJar.cmd
├── Walnuts/
│ ├── pom.xml
│ └── sailor-stream-distribute-sdk/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── walnut/
│ └── sailor/
│ └── stream/
│ ├── Dummy.java
│ └── fm/
│ ├── FileMultiDistributionIface.java
│ ├── SFMConfig.java
│ ├── SFMDistributionController.java
│ ├── SFMFileFrame.java
│ ├── SFMSessionPhaser.java
│ ├── SFMSessionValidator.java
│ ├── SFMSessionValidatorController.java
│ ├── SailorFMConfig.java
│ ├── SailorFMDistributionService.java
│ ├── SessionPhaser.java
│ ├── SessionValidator.java
│ ├── SingleStreamFileMultiDistributionService.java
│ ├── event/
│ │ └── SFMEventSubscriber.java
│ ├── protocol/
│ │ ├── RequestHead.java
│ │ └── UFMCFileMeta64.java
│ └── session/
│ └── SFMTransaction.java
├── gitignore.txt
├── pom.xml
├── prompt/
│ ├── base_front_standard.md
│ ├── coding_standard.md
│ └── mysql_table_standard.md
└── system/
└── setup/
├── CenterMessagram.json5
├── ServersScope.json5
├── SpringBootApplication.json5
├── StorageSystem.json5
├── config.json5
├── heist.json5
├── heists/
│ ├── Apesk.json5
│ ├── ArtStation.json5
│ ├── Chronicle.json5
│ ├── DeviantArt.json5
│ ├── DouBan.json5
│ ├── DownloadCNet.json5
│ ├── NeteaseMusic.json5
│ ├── PubChem.json5
│ ├── Steam.json5
│ ├── UrukhaiHeists.json5
│ ├── Void.json5
│ └── Wikipedia.json5
├── lords/
│ ├── odin.json5
│ ├── redqueen.json5
│ └── skynet.json5
└── sparta/
├── AccountServiceSpring.json5
├── SpartaUCDNService.json5
├── SpartaUISService.json5
├── SpartaUOFSService.json5
└── SpartaUTASKService.json5
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*
================================================
FILE: .idea/.gitignore
================================================
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
================================================
FILE: .idea/ApifoxUploaderProjectSetting.xml
================================================
================================================
FILE: .idea/codeStyles/codeStyleConfig.xml
================================================
================================================
FILE: .idea/compiler.xml
================================================
================================================
FILE: .idea/dataSources.xml
================================================
mysql.8
true
com.mysql.cj.jdbc.Driver
jdbc:mysql://node1.nutgit.com:13393
$ProjectFileDir$
mysql.8
true
com.mysql.cj.jdbc.Driver
jdbc:mysql://localhost:3306
$ProjectFileDir$
================================================
FILE: .idea/dictionaries/project.xml
================================================
Clientile
================================================
FILE: .idea/dictionaries/undefined.xml
================================================
arraytron
heistgram
heistotron
heistron
indexable
indexables
maptron
nonjron
pinecone
sauron
servgram
servtus
sitemap
================================================
FILE: .idea/encodings.xml
================================================
================================================
FILE: .idea/jarRepositories.xml
================================================
================================================
FILE: .idea/misc.xml
================================================
================================================
FILE: .idea/sqldialects.xml
================================================
================================================
FILE: .idea/uiDesigner.xml
================================================
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
================================================
FILE: .idea/vcs.xml
================================================
================================================
FILE: Archcraft/ender-system-hydra/pom.xml
================================================
archcraft
com.archcraft
2.5.1
4.0.0
com.walnut.ender.system
ender-system-hydra
2.5.1
jar
com.pinecone.hydra.kernel
hydra-system-reign
2.1.0
compile
com.pinecone.tritium
hydra-system-tritium
2.1.0
compile
com.acorn.redqueen.kernel
redqueen-system
2.1.0
compile
com.acorn.skynet.kernel
skynet-system
2.1.0
compile
com.acorn.redqueen.kernel
redqueen-system
2.1.0
compile
================================================
FILE: Archcraft/ender-system-hydra/src/main/java/com/walnut/archcraft/ender/EnderHydra.java
================================================
package com.walnut.archcraft.ender;
import com.acorn.redqueen.system.ServiceCentralControl;
import com.acorn.skynet.system.SkynetSubsystem;
import com.pinecone.framework.system.CascadeSystem;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.system.regime.arch.Lord;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.framework.util.name.UniNamespace;
import com.pinecone.hydra.proc.ProcessManager;
import com.pinecone.hydra.proc.UProcess;
import com.pinecone.hydra.proc.UniformProcessManager;
import com.pinecone.hydra.proc.image.FileSystemMappingImageLoader;
import com.pinecone.hydra.proc.image.ImageLoader;
import com.pinecone.hydra.proc.image.UniformMultiScopeImageLoader;
import com.pinecone.hydra.proc.image.kom.VirtualExeImageInstrument;
import com.pinecone.hydra.proc.image.kom.VirtualMappingExeImageInstrument;
import com.pinecone.hydra.reign.UnixInstitutionalizedMetaImperiumPrivy;
import com.pinecone.hydra.system.component.LogStatuses;
import com.pinecone.hydra.system.imperium.ImperiumPrivy;
import com.pinecone.hydra.system.imperium.KernelObjectRootMountPoint;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.hydra.system.ko.runtime.GenericRuntimeInstrumentConfig;
import com.pinecone.hydra.system.subsystem.CentralKernelLordFederation;
import com.pinecone.hydra.system.subsystem.KernelLordFederation;
import com.pinecone.tritium.Tritium;
import com.pinecone.ulf.util.guid.GUIDs;
import com.pinecone.ulf.util.guid.i64.GuidAllocator72;
import com.pinecone.ulf.util.guid.i64.GuidAllocator72V2;
import com.walnut.archcraft.ender.system.HydraEmpire;
import com.walnut.archcraft.ender.system.Hydroxy;
public class EnderHydra extends Tritium implements HydraEmpire {
protected GuidAllocator mSystemGuidAllocator;
protected GuidAllocator72 mSystemGuidAllocator72;
protected ImageLoader mSystemImageLoader;
protected ProcessManager mSystemProcessManager;
protected UProcess mProxiedRootSystemProcess;
protected KernelObjectConfig mFundamentalKernelObjectConfig;
protected VirtualExeImageInstrument mVirtualExeImageInstrument;
protected ImperiumPrivy mImperiumPrivy;
protected KernelLordFederation mLordFederation;
protected SkynetSubsystem mSkynetSubsystem;
protected ServiceCentralControl mServiceCentralControl;
public EnderHydra( String[] args, CascadeSystem parent ) {
this( args, null, parent );
}
public EnderHydra( String[] args, String szName, CascadeSystem parent ){
super( args, szName, parent );
}
@Override
protected void prepare_system_skeleton() {
super.prepare_system_skeleton();
this.prepare_uniform_system();
}
protected void prepare_uniform_system_process_task_subsystem() {
this.mVirtualExeImageInstrument = new VirtualMappingExeImageInstrument( this, "" );
this.infoLifecycle( " ProcessSubsystem[1] System VirtualExeImageInstrument Initialization", LogStatuses.StatusDone );
ImageLoader localMappingImageLoader = new FileSystemMappingImageLoader( this, this.mVirtualExeImageInstrument );
this.infoLifecycle( " ProcessSubsystem[2] System Scope LocalMappingImageLoader Initialization", LogStatuses.StatusDone );
this.mSystemImageLoader = new UniformMultiScopeImageLoader( this, localMappingImageLoader );
this.infoLifecycle( " ProcessSubsystem[3] System Scope UniformMultiScopeImageLoader Initialization", LogStatuses.StatusDone );
this.mSystemProcessManager = new UniformProcessManager(
this, null, "SystemUniformProcessManager", "", null
);
this.getDispenserCenter().getInstanceDispenser().registerInstance( "__SystemTaskManager__", this.mSystemProcessManager );
this.infoLifecycle( " ProcessSubsystem[4] System ProcessManager Initialization", LogStatuses.StatusDone );
this.mProxiedRootSystemProcess = new Hydroxy( this );
this.mSystemProcessManager.applyRootUProcess( this.mProxiedRootSystemProcess );
this.mSystemProcessManager.register( this.mProxiedRootSystemProcess );
this.infoLifecycle( " ProcessSubsystem[5] System Hydroxy Initialization", LogStatuses.StatusDone );
this.infoLifecycle( " Uniform System Process/Task Subsystem", LogStatuses.StatusDone );
}
protected void prepare_uniform_system_imperium_privy() {
this.mImperiumPrivy = new UnixInstitutionalizedMetaImperiumPrivy( new UniNamespace( "SystemUnixInstitutionalizedMetaImperiumPrivy" ), this, null, this.fundamentalKernelObjectConfig() );
this.infoLifecycle(
" System ImperiumPrivy Initialization. (name: `" + this.mImperiumPrivy.getTargetingName() + "`, class: `" + this.mImperiumPrivy.getClass().getName() + "`)",
LogStatuses.StatusDone
);
this.mImperiumPrivy.getExpressInstrument().mount( KernelObjectRootMountPoint.SysImages.getMountPoint(), this.mVirtualExeImageInstrument );
this.infoLifecycle(
" System VirtualExeImageInstrument Mount. (MountPoint: `/" + KernelObjectRootMountPoint.SysImages.getMountPoint() + "`)",
LogStatuses.StatusDone
);
this.infoLifecycle( " Uniform Imperium Privy", LogStatuses.StatusDone );
}
@Override
protected void prepare_system_skeleton_before() {
this.prepare_uniform_system_guid_system();
}
protected void prepare_uniform_system_guid_system() {
this.mSystemGuidAllocator = GUIDs.newGuidAllocator( 1984 ); // TODO MachineId allocation.
this.infoLifecycle(
" System GUIDAllocator Initialization [Type: `" + this.mSystemGuidAllocator.getClass().getName() + "`]",
LogStatuses.StatusDone
);
this.mSystemGuidAllocator72 = new GuidAllocator72V2();
this.infoLifecycle(
" System GUIDAllocator72 Initialization [Type: `" + this.mSystemGuidAllocator72.getClass().getName() + "`]",
LogStatuses.StatusDone
);
}
protected void prepare_uniform_system() {
this.infoLifecycle( " Uniform Operation System", LogStatuses.StatusStart );
this.init_uniform_system_configuration();
this.prepare_uniform_system_process_task_subsystem();
this.init_process_kernel_subsystem();
this.prepare_modularized_subsystem();
this.infoLifecycle( " Uniform Operation System", LogStatuses.StatusReady );
this.getLogger().info( "[Welcome] [ Welcome to join the imperial army!]" );
}
protected void prepare_modularized_subsystem() {
this.infoLifecycle( " [SummoningLords] Modularized Subsystem Initialization", LogStatuses.StatusStart );
this.mLordFederation = new CentralKernelLordFederation( this );
this.mSkynetSubsystem = (SkynetSubsystem) this.mLordFederation.get( "KernelSkynetLord" );
if ( this.mSkynetSubsystem != null ) {
this.mSkynetSubsystem.vitalize();
}
this.mServiceCentralControl = (ServiceCentralControl) this.mLordFederation.get( "KernelRedQueenLord" );
if ( this.mServiceCentralControl != null ) {
this.mServiceCentralControl.vitalize();
}
this.getLogger().info( "[ActionReport] [SummoningLords] Empire now has {} lords.", this.countEmpireLords() );
this.infoLifecycle( " [SummoningLords] Modularized Subsystem Initialization", LogStatuses.StatusDone );
}
protected void init_process_kernel_subsystem() {
this.infoLifecycle( "Uniform Process Subsystem", LogStatuses.StatusStart );
this.prepare_uniform_system_imperium_privy();
this.infoLifecycle( "Uniform Process Subsystem", LogStatuses.StatusDone );
}
protected void init_uniform_system_configuration() {
this.infoLifecycle( "Uniform System Configuration", LogStatuses.StatusStart );
this.mFundamentalKernelObjectConfig = new GenericRuntimeInstrumentConfig();
this.infoLifecycle( " System FundamentalKernelObjectConfig Initialization", LogStatuses.StatusDone );
this.infoLifecycle( "Uniform System Configuration", LogStatuses.StatusDone );
}
@Override
protected void traceWelcomeInfo() {
this.pout().print( "---------------------------------------------------------------\n" );
this.pout().print( "\u001B[31mBean Nuts Pinecone Ursus for Java\u001B[0m\n" );
this.pout().print( "\u001B[31mHydra Kingdom Framework (Ender Hydra) \u001B[0m\n" );
this.pout().print( "\u001B[32mCopyright(C) 2008-2028 Bean Nuts Foundation. All rights reserved.\u001B[0m\n" );
this.pout().print( "---------------------------------------------------------------\n" );
this.pout().print( "\u001B[31mDragon King\u001B[0m\n" );
this.pout().print( "\u001B[32mWebsit: https://www.dragonking.cn/ \u001B[0m\n" );
this.traceSubsystemWelcomeInfo();
this.traceSystemBootingInfo();
this.prepare_system_log4j_logger();
this.infoLifecycle( "Initialization", LogStatuses.StatusStart );
}
@Override
public GuidAllocator getSystemGuidAllocator() {
return this.mSystemGuidAllocator;
}
@Override
public GuidAllocator72 getSystemGuidAllocator72() {
return this.mSystemGuidAllocator72;
}
@Override
public ProcessManager processManager() {
return this.mSystemProcessManager;
}
@Override
public ImageLoader imageLoader() {
return this.mSystemImageLoader;
}
@Override
public Processum ownedLocalProcess() {
return this;
}
@Override
public UProcess ownedUniformProcess() {
return this.mProxiedRootSystemProcess;
}
@Override
public KernelObjectConfig fundamentalKernelObjectConfig() {
return this.mFundamentalKernelObjectConfig;
}
@Override
public ImperiumPrivy imperiumPrivy() {
return this.mImperiumPrivy;
}
@Override
public ServiceCentralControl redQueen() {
return this.mServiceCentralControl;
}
@Override
public SkynetSubsystem skynet() {
return this.mSkynetSubsystem;
}
@Override
public Lord getEmpireLordsByName( String lordName ) {
return this.mLordFederation.get( lordName );
}
@Override
public KernelLordFederation getLordFederation() {
return this.mLordFederation;
}
@Override
public int countEmpireLords() {
return this.mLordFederation.size();
}
@Override
public VirtualExeImageInstrument virtualExeImageInstrument() {
return this.mVirtualExeImageInstrument;
}
}
================================================
FILE: Archcraft/ender-system-hydra/src/main/java/com/walnut/archcraft/ender/system/HydraEmpire.java
================================================
package com.walnut.archcraft.ender.system;
import com.acorn.redqueen.system.ServiceCentralControl;
import com.acorn.skynet.system.SkynetSubsystem;
import com.pinecone.framework.system.regime.arch.Lord;
import com.pinecone.hydra.proc.InstitutionalProcess;
import com.pinecone.hydra.proc.ProcessManager;
import com.pinecone.hydra.proc.ProcessManagerSystema;
import com.pinecone.hydra.proc.image.ImageLoader;
import com.pinecone.hydra.proc.image.kom.VirtualExeImageInstrument;
import com.pinecone.hydra.system.centrum.Centrum;
import com.pinecone.hydra.system.component.Slf4jTraceable;
import com.pinecone.hydra.system.subsystem.KernelLordFederation;
import com.pinecone.hydra.system.types.HydraKingdom;
public interface HydraEmpire extends Centrum, HydraKingdom, Slf4jTraceable, InstitutionalProcess, ProcessManagerSystema {
ProcessManager processManager();
ImageLoader imageLoader();
VirtualExeImageInstrument virtualExeImageInstrument();
ServiceCentralControl redQueen();
SkynetSubsystem skynet();
Lord getEmpireLordsByName( String lordName );
KernelLordFederation getLordFederation();
int countEmpireLords();
}
================================================
FILE: Archcraft/ender-system-hydra/src/main/java/com/walnut/archcraft/ender/system/Hydroxy.java
================================================
package com.walnut.archcraft.ender.system;
import java.util.HashMap;
import java.util.Map;
import com.pinecone.framework.system.RuntimeSystem;
import com.pinecone.framework.util.Debug;
import com.pinecone.framework.util.config.StartupCommandParser;
import com.pinecone.hydra.proc.ArchUProcess;
import com.pinecone.hydra.proc.UProcess;
import com.pinecone.hydra.proc.image.ExecutionImage;
import com.pinecone.hydra.proc.image.GenericClassImage;
import com.pinecone.hydra.proc.ns.GenericSegregationSpace;
import com.pinecone.hydra.proc.ns.ProcSpace;
import com.pinecone.hydra.system.component.LogStatuses;
public class Hydroxy extends ArchUProcess {
public Hydroxy(
HydraEmpire hostedSystem,
UProcess parent, ExecutionImage image, ProcSpace procSpace,
Map startupArgs, Map environmentVars
) {
super( hostedSystem, parent, hostedSystem.processManager(), image, procSpace, startupArgs, environmentVars );
this.revealNearestSystem().infoLifecycle(
"HydraSystemProcess [UProcessProxy] [Name: `" + this.getName() + "`]",
LogStatuses.StatusStandby
);
this.revealNearestSystem().infoLifecycle( "HydraSystemProcess Initialization", LogStatuses.StatusDone );
}
public Hydroxy( HydraEmpire hostedSystem ) {
this(
hostedSystem, null,
new HydroxyImage( hostedSystem ), new GenericSegregationSpace(),
hostedSystem.getStartupCommandMap(), hostedSystem.getEnvironmentVars()
);
}
@Override
public RuntimeSystem parentSystem() {
return super.parentSystem();
}
@Override
public HydraEmpire revealNearestSystem() {
return (HydraEmpire) super.revealNearestSystem();
}
}
================================================
FILE: Archcraft/ender-system-hydra/src/main/java/com/walnut/archcraft/ender/system/HydroxyImage.java
================================================
package com.walnut.archcraft.ender.system;
import java.util.Map;
import com.pinecone.hydra.proc.UProcess;
import com.pinecone.hydra.proc.image.ArchEntryPointRunnable;
import com.pinecone.hydra.proc.image.EntryPointRunnable;
import com.pinecone.hydra.proc.image.GenericClassImage;
import com.pinecone.hydra.proc.image.ImageLoadProcedureException;
import com.pinecone.hydra.proc.image.ImageLoader;
public class HydroxyImage extends GenericClassImage {
public HydroxyImage(
HydraEmpire system, String name, EntryPointRunnable entryPoint, Class extends UProcess> processClassType, ImageLoader imageLoader
) throws ImageLoadProcedureException {
super(
name, entryPoint, processClassType, imageLoader
);
}
public HydroxyImage( HydraEmpire system ) throws ImageLoadProcedureException {
this(
system, "SystemProcess", new ArchEntryPointRunnable() {
@Override
public int main( Map args ) {
system.start();
return 0;
}
},
Hydroxy.class, system.imageLoader()
);
}
}
================================================
FILE: Archcraft/pom.xml
================================================
sauron
com.sauron
1.2.7
4.0.0
com.archcraft
archcraft
pom
2.5.1
redstone-architecture
redstone-message-stones
ender-system-hydra
================================================
FILE: Archcraft/redstone-architecture/pom.xml
================================================
archcraft
com.archcraft
2.5.1
org.apache.maven.plugins
maven-compiler-plugin
11
11
4.0.0
com.walnut.redstone.kernel
redstone-architecture
2.1.0
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-web
2.6.13
compile
com.pinecone
pinecone
2.5.1
compile
com.pinecone.hydra.kernel
hydra-framework-runtime
2.1.0
compile
com.pinecone.summer.springram
springram
2.1.0
compile
com.pinecone.tritium
hydra-system-tritium
2.1.0
test
com.pinecone.hydra.kom.driver.default
hydra-kom-default-driver
2.1.0
compile
org.apache.thrift
libthrift
0.18.0
compile
com.pinecone.hydra.sdk.thrift
hydra-lib-thrift-sdk
1.2.1
compile
com.walnut.sparta.api.uac
sparta-api-uac
2.1.0
compile
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/architect/Bedrock.java
================================================
package com.walnut.archcraft.redstone.architect;
public interface Bedrock extends Stone {
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/architect/Redstone.java
================================================
package com.walnut.archcraft.redstone.architect;
public interface Redstone extends Stone {
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/architect/Stone.java
================================================
package com.walnut.archcraft.redstone.architect;
import com.pinecone.framework.system.prototype.Pinenut;
public interface Stone extends Pinenut {
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/response/ArchResponseObjectManager.java
================================================
package com.walnut.archcraft.redstone.response;
import java.util.function.Supplier;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.hydra.system.ArchSystemCascadeComponent;
import com.pinecone.hydra.system.HyComponent;
import com.pinecone.hydra.system.Hydrogen;
public abstract class ArchResponseObjectManager extends ArchSystemCascadeComponent implements ResponseObjectManager {
public ArchResponseObjectManager( Namespace name, Hydrogen system, HyComponent parent ) {
super( name, system, system.getComponentManager(), parent );
}
public ArchResponseObjectManager( Hydrogen system, HyComponent parent ) {
this( null, system, parent );
}
public ArchResponseObjectManager( Hydrogen system ) {
this( system, null );
}
@Override
public T newResponse(Supplier cons) {
T response = cons.get();
response.setRequestId(this.nextTraceId());
return response;
}
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/response/GenericResultResponse.java
================================================
package com.walnut.archcraft.redstone.response;
import com.pinecone.framework.unit.KeyValue;
import com.pinecone.framework.util.json.JSONEncoder;
import org.springframework.http.HttpStatus;
public class GenericResultResponse implements RedResponseEntity {
private Boolean success;
private Integer code = HttpStatus.OK.value();
private String message;
private String requestId;
private String errorCode;
private T data;
public static GenericResultResponse success() {
GenericResultResponse result = new GenericResultResponse<>();
result.code = HttpStatus.OK.value();
result.success = true;
return result;
}
public static GenericResultResponse successMsg( String msg ) {
GenericResultResponse result = GenericResultResponse.success();
result.message = msg;
return result;
}
public static GenericResultResponse success( T object ) {
GenericResultResponse result = GenericResultResponse.success();
result.data = object;
return result;
}
public static GenericResultResponse error( String msg ) {
GenericResultResponse result = new GenericResultResponse<>();
result.success = false;
result.message = msg;
result.code = HttpStatus.INTERNAL_SERVER_ERROR.value();
return result;
}
@Override
public Boolean getSuccess() {
return this.success;
}
@Override
public void setSuccess( Boolean success ) {
this.success = success;
}
@Override
public Integer getCode() {
return this.code;
}
@Override
public void setCode( Integer code ) {
this.code = code;
}
@Override
public String getErrorCode() {
return this.errorCode;
}
@Override
public void setErrorCode( String errorCode ) {
this.errorCode = errorCode;
}
@Override
public void setRequestId( String requestId ) {
this.requestId = requestId;
}
@Override
public String getRequestId() {
return this.requestId;
}
@Override
public String getMessage() {
return this.message;
}
@Override
public void setMessage( String msg ) {
this.message = msg;
}
@Override
public T getData() {
return this.data;
}
@Override
public void setData( T data ) {
this.data = data;
}
@Override
public String toJSONString() {
return JSONEncoder.stringifyMapFormat(new KeyValue[]{
new KeyValue<>( "success", this.getSuccess() ),
new KeyValue<>( "code", this.code ),
new KeyValue<>( "message", this.message ),
new KeyValue<>( "errorCode", this.errorCode ),
new KeyValue<>( "requestId", this.requestId ),
new KeyValue<>( "data", this.data )
});
}
@Override
public String toString() {
return this.toJSONString();
}
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/response/RedResponse.java
================================================
package com.walnut.archcraft.redstone.response;
import java.io.Serializable;
import com.pinecone.framework.system.prototype.Pinenut;
public interface RedResponse extends Pinenut, Serializable {
Boolean getSuccess();
void setSuccess( Boolean success );
Integer getCode();
void setCode( Integer code );
String getErrorCode();
void setErrorCode( String errorCode );
String getMessage();
void setMessage( String msg );
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/response/RedResponseEntity.java
================================================
package com.walnut.archcraft.redstone.response;
public interface RedResponseEntity extends RedTraceableResponse {
T getData();
void setData( T data );
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/response/RedTraceableResponse.java
================================================
package com.walnut.archcraft.redstone.response;
public interface RedTraceableResponse extends RedResponse {
void setRequestId( String requestId );
String getRequestId();
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/response/ResponseObjectManager.java
================================================
package com.walnut.archcraft.redstone.response;
import java.util.function.Supplier;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.hydra.system.HyComponent;
public interface ResponseObjectManager extends Pinenut, HyComponent {
String nextTraceId();
T newResponse(Supplier cons);
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/system/Dummy.java
================================================
package com.walnut.archcraft.redstone.system;
public class Dummy {
}
================================================
FILE: Archcraft/redstone-architecture/src/main/java/com/walnut/archcraft/redstone/util/Dummy.java
================================================
package com.walnut.archcraft.redstone.util;
public class Dummy {
}
================================================
FILE: Archcraft/redstone-message-stones/pom.xml
================================================
archcraft
com.archcraft
2.5.1
org.apache.maven.plugins
maven-compiler-plugin
11
11
4.0.0
com.walnut.redstone.stones
redstone-message-stones
2.1.0
com.pinecone
pinecone
2.5.1
compile
com.pinecone.hydra.kernel
hydra-framework-runtime
2.1.0
compile
com.walnut.redstone.kernel
redstone-architecture
2.1.0
compile
com.pinecone.hydra.kernel
hydra-message-broadcast
2.1.0
compile
com.pinecone.hydra.kernel
hydra-message-control
2.1.0
compile
================================================
FILE: Archcraft/redstone-message-stones/src/main/java/com/walnut/archcraft/redstone/Dummy.java
================================================
package com.walnut.archcraft.redstone;
public class Dummy {
}
================================================
FILE: Archcraft/redstone-message-stones/src/main/java/com/walnut/archcraft/redstone/messge/PrimaryMessageWareStone.java
================================================
package com.walnut.archcraft.redstone.messge;
import com.pinecone.framework.system.RuntimeSystem;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.hydra.uma.DuplexAppointClient;
import com.pinecone.hydra.uma.DuplexAppointServer;
import com.pinecone.hydra.umb.wolf.UlfBroadcastControlNode;
public interface PrimaryMessageWareStone extends Pinenut {
RuntimeSystem parentSystem();
Processum getParentProcess();
DuplexAppointServer getWolfKingAppointServer();
DuplexAppointClient getWolfAppointClient();
UlfBroadcastControlNode getPrimaryKafkaClient();
UlfBroadcastControlNode getPrimaryRocketClient();
}
================================================
FILE: CHANGELOG.md
================================================
# 更新日志
```markdown
格式:
## [版本号] - 日期
### 模板名称 (可选 console-ui, console, FileModule, common, ...)
- 🎈新增: {模块名称} {功能介绍}
- 🐞Bug: #{issue号} {bug描述}
- ⛏修复: #{issue号} {修复描述}
- 📝文档: {文件名} 添加注释
- 🚀性能: {类} {方法} {描述}
- 🎨样式:
- 🧹重构:
- 🧪测试: {类|方法} {测试结果}
- 🛑更名: {旧名} ➡ {新名}
- ❌移除: {模块|方法}
- 🚧施工
------
```
------
# 目录
* [V 1.0.1]()
* [V 1.0.0]()
------
## [V 1.0.0] - 2023.5.18
### Messenger
- ❌移除: `Message,MessageType`,移除所有的模块中与`Message`有关的代码
- 🧹重构: 重构`Message`为`UlfUMCMessage`,构建了全新协议UlfUMC
- 🎈新增: 新增`MessageBuilder,MessageFactory`用来构建专属的`UlfUMCMessage`类
------
## [V 1.0.0] - 2023.5.13
### 🎈 TaskJuggler
任务调度模块,主要负责节点的任务分配和处理
- 🎈新增: 新增`Heist 劫匪` 作为`HeistCenter`的工作线程,负责处理单个任务,有失败重试机制
- 🎈新增: 新增`HeistCenter` 任务调度中心,负责初始化任务进度,与`Harbor 港口`通信,是整个任务调度的**核心类**
- 🎈新增: 新增`HeistConfig` 作为整个`Heist`家族的配置类
- 🎈新增: 新增`Harbor 港口` 与 Master节点通信的核心类,目前具备向master节点发送任务查询申请,任务缓存,`HeistCenter`任务获取
- 🎈新增: 新增`MqConfig` 消息队列初始化
### 🎈 com.pinecone
整个项目的核心公共代码所在地
- 🎈新增: 新增`SystemConfig` 整个系统的配置类,可获取一些系统的全局变量
- 🎈新增: 新增`RadiumConstPool` 项目的公共常量池,存放一些常量
- 🎈新增: 新增`SystemUtils` 系统工具类,定制一些独属于该系统的工具
- 🎈🚧新增: 新增`TimeUtil` 时间工具 (不推荐使用)
### 🎈 Messenger
负责定义消息类型,消息结构以及消息队列的一些全局变量管理,专门用来定义消息的模块
- 🎈新增: 新增`Message` 消息类,目前消息队列通信的**核心类**
- 🎈新增: 新增`MessageType` 消息类型类,目前有`Query,Post,Reply,ReplyPost,ShutDown`
- 🎈新增: 新增`MessageConverterConfig` 主要负责mq中类传输的转化
- 🎈新增: 新增`FunctionNamePool` 主要存放Master中对应的方法名称
- 🎈新增: 新增`MqPool` 消息队列全局变量池
### 🎈 Console
项目启动模块
### 🎈 File
文件操作模块
- 🎈新增: 新增 `JsonFileUtil` 工具类,用于进行json文件的读写操作
- 🎈新增: 新增 `FileUtil` 工具类,用于进行文件复制文件删除等操作
- 🎈新增: 新增 `FileCondition` 方法,用于对文件递归删除进行条件过滤
- 🧪测试: 测试 `FileUtil` 工具类, 测试 `JsonFileUtil` 工具类
- 🎈新增: 新增 `FileCacheManagerInstance` 将整个FileCacheManager转变为全局单例,防止重复使用调用
- 🎈新增: 新增 `GlobalFileCache` 全局文件缓存,也负责为`FileCacheManagerInstance`提供初始化的文件缓存队列
- 🎈新增: 新增 `FileCache` 文件缓冲池类,负责缓存文件内容,文件的读取,修改,追加,能够根据刷入时间或者写入字节,来进行自动刷盘操作
- 🎈新增: 新增 `FileCacheManager` 文件缓冲池管理类,管理所有文件缓存池,轮询查看每个文件是否需要自动刷入,目前包含巡逻线程与刷入线程
- 🎈新增: 新增 `FileCacheManagerInit` 用于启动初始化FileCacheManager
------
================================================
FILE: File/File.iml
================================================
================================================
FILE: File/pom.xml
================================================
com.Sauron
sauron
1.0-SNAPSHOT
4.0.0
File
jar
File
http://maven.apache.org
UTF-8
com.Sauron
pinecone
3.3.1
com.aliyun.oss
aliyun-sdk-oss
3.10.2
org.springframework.boot
spring-boot-starter-web
com.alibaba
fastjson
1.2.75
org.springframework.boot
spring-boot-starter-test
test
org.projectlombok
lombok
org.slf4j
slf4j-api
================================================
FILE: File/src/main/java/com/genius/App.java
================================================
package com.genius;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
================================================
FILE: File/src/main/java/com/genius/cache/FileCache.java
================================================
package com.genius.cache;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.genius.exception.FileCacheException;
import com.genius.pojo.ConfigFile;
import com.genius.pojo.FileType;
import com.genius.util.JsonFileUtil;
import com.genius.util.TimeUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @author Genius
* @date 2023/04/24 00:01
**/
//TODO 文件缓存写入优化 考虑是否要加一个缓存写入Buffer,将短时间内多个相同Key的内容存入Buffer中,合并存入
public class FileCache {
private T configFile; //文件配置类,得到文件信息和文件夹结构,更新文件存入时间
private Logger logger;
private ConcurrentHashMap jsonFile; //文件内容缓存
private static int MAX_WRITE_BUFFER_LIMIT = 4096; //最大写入缓存上线
private AtomicInteger writeByte; //当前写入的字节数
private BlockingQueue> syncChannel; //磁盘刷入阻塞队列
//TODO 优化 考虑是否采用一个定时线程管理所有FileCache的写入
private ExecutorService pool; //Sync线程池
private long autoSyncTime; //自动刷入时间
public FileCache(T configFile) throws FileCacheException {
init(configFile,10);
}
/**
* 构造方法
* @param configFile 指定的配置文件
* @param autoSyncTime 自动刷新时间
* @param maxWriteBufferLimit 写入上限
* @throws FileCacheException
*/
public FileCache(T configFile,long autoSyncTime,int maxWriteBufferLimit)throws FileCacheException {
MAX_WRITE_BUFFER_LIMIT = maxWriteBufferLimit;
init(configFile,autoSyncTime);
}
/**
* 初始化方法
* @param configFile 配置文件
* @param autoSyncTime 自动刷入时间
* @throws FileCacheException
*/
private void init(T configFile, long autoSyncTime) throws FileCacheException {
this.configFile = configFile;
this.configFile.updateConfigTime();//更新一下当前的时间
this.logger = LoggerFactory.getLogger("FileCache:"+this.configFile.getFileName());
this.autoSyncTime = autoSyncTime;
if(!load(getFullFilePath())){
throw new FileCacheException("FileCache Init Error,please Check if your path is correct");
}
this.writeByte = new AtomicInteger(0);
this.syncChannel = new ArrayBlockingQueue<>(20);
this.pool = Executors.newSingleThreadExecutor();
pool.submit(new SyncMan());
}
/**
* 加载文件内容
* @return boolean
*/
private boolean load(String path){
Map stringObjectMap = JsonFileUtil.readJsonFile(path);
if(Objects.isNull(stringObjectMap)){
logger.error("{}配置文件不存在!",path);
return false;
}
this.jsonFile = new ConcurrentHashMap<>(stringObjectMap);
return true;
}
/**
* 重新加载内存池Map
* @return boolean
*/
public synchronized boolean reload(){
return load(Paths.get(this.configFile.getFilePath(),this.configFile.getFileName()).toString());
}
/**
* 递进寻找JsonObject中的对象,并改写
* @param data
* @param keys
* @return
* @throws InterruptedException
*/
public int writeKeys(Object data,String...keys) throws InterruptedException, FileCacheException {
return writeKeys(false,data,keys);
}
private int writeKeys(boolean isAppend,Object data,String...keys) throws FileCacheException, InterruptedException {
if(Objects.isNull(data)){return 0;}
String jsonDataStr = JSON.toJSONString(data);
int writeBytes = jsonDataStr.getBytes().length;
if(writeBytes==0){return 0;}
Object jsonData = writeInData(isAppend,data,keys);
if(Objects.isNull(jsonData)){return 0;}
ConcurrentHashMap temp = new ConcurrentHashMap<>(JSONObject.parseObject(JSON.toJSONString(jsonFile),Map.class));
int newBytes = writeByte.updateAndGet(x -> x + writeBytes >= MAX_WRITE_BUFFER_LIMIT ? 0 : x + writeBytes);
//TODO 此处会发生脏读问题,即put进入的Map版本不是当前版本,但是目前没有发现该问题是否会影响到文件写入
if(newBytes==0){
logger.debug("缓冲区已满,刷入磁盘");
syncChannel.put(temp);
}
return writeBytes;
}
//写入
public int write(Object data,String key) throws InterruptedException, FileCacheException {
return this.writeKeys(data,key);
}
private Object writeInData(boolean isAppend,Object value,String...keys) throws FileCacheException {
String[] finds = Arrays.copyOf(keys, keys.length - 1);
Object data = this.get("data");
Object temp = this.get(finds);
if(temp instanceof JSONArray){
try{
//元素添加
int index = Integer.parseInt(keys[keys.length-1]);
if(index==-1){
((JSONArray) temp).add(value);
}else{
String oldValue = ((JSONArray) temp).get(index).toString();
value = isAppend?oldValue+value.toString():value;
if(oldValue.equals(value)){
return null;
}
((JSONArray) temp).add(index,value);
}
}catch (Exception e){
return null;
}
}
else if(temp instanceof JSONObject){
String key = keys[keys.length-1];
String oldValue = ((JSONObject) temp).get(key).toString();
value = isAppend?oldValue+value:value;
if(oldValue.equals(value)){
return null;
}
((JSONObject) temp).put(key,value);
}
else{
throw new FileCacheException("the keys is error!");
}
return data;
}
/**
* 追加内容,支持数组添加内容,添加内容,需要将最后一个key置为-1
* @param keys 要查找的key
* @param append 追加内容
* @return
* @throws InterruptedException
*/
public int append(Object append,String...keys) throws InterruptedException, FileCacheException {
return writeKeys(true,append,keys);
}
/**
* 根据key数组,不断向下获取内容
* @param keys
* @return
*/
public Object get(String...keys){
Object jsonObject = this.get("data");
for (String key : keys) {
if(jsonObject instanceof JSONObject){
jsonObject = ((JSONObject) jsonObject).get(key);
}
else if(jsonObject instanceof JSONArray){
jsonObject = ((JSONArray) jsonObject).get(Integer.parseInt(key));
}else{
return jsonObject;
}
}
return jsonObject;
}
/**
* 获取文件内容
* @param key
* @return
*/
public Object get(String key){
return jsonFile.get(key);
}
/**
* 清除已写入的字节数记录
*/
protected void clearWriteBytes(){
writeByte.updateAndGet(x->0);
}
/**
* 判断当前时间是否超过更新时间
* @return boolean
*/
public boolean needAutoSync(){
long now = TimeUtil.getCurrentSecond();
return now - TimeUtil.getSecond(configFile.getUpdateTime())>autoSyncTime;
}
/**
* 强制刷入磁盘
*/
public void forceSync(){
if(writeByte.get()==0){
logger.info("未发生版本变化");
return;
}
clearWriteBytes();
ConcurrentHashMap temp = new ConcurrentHashMap<>(JSONObject.parseObject(JSON.toJSONString(jsonFile),Map.class));
try {
syncChannel.put(temp);
} catch (InterruptedException e) {
logger.error("自动刷入失败");
}
}
/**
* 缓冲区刷入
* @return
*/
private boolean sync(ConcurrentHashMap take){
configFile.updateConfigTime(); //刷新配置文件刷入时间
String dir = getFullFilePath();
configFile.onlyUpdateTime(take);
File file = JsonFileUtil.writeJsonFile(dir, take);
logger.debug("正在写入{}新版本",dir);
return Objects.isNull(file);
}
public BlockingQueue getFileChannel(){
return this.syncChannel;
}
public String getFullFilePath(){
return Paths.get(this.configFile.getFilePath(), this.configFile.getFileName()).toString();
}
public String getFilePath(){
return this.configFile.getFilePath();
}
public String getFileName(){
return this.configFile.getFileName();
}
public long getSyncTime(){
return this.autoSyncTime;
}
public FileType getFileType(){
return this.configFile.getFileType();
}
class SyncMan implements Runnable{
@Override
public void run() {
for(;;){
try {
ConcurrentHashMap take = syncChannel.take();
sync(take);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
}
@Override
public int hashCode() {
return Objects.hash(configFile);
}
@Override
public boolean equals(Object obj) {
if(obj instanceof FileCache){
if(((FileCache) obj).getFullFilePath().equals(this.getFullFilePath())){
return true;
}else if(obj.hashCode() == this.hashCode()){
return true;
}
}
return false;
}
}
================================================
FILE: File/src/main/java/com/genius/cache/FileCacheManager.java
================================================
package com.genius.cache;
import org.example.util.TimeUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicLong;
/**
* @author Genius
* @date 2023/04/24 17:35
**/
/**
* 文件自动刷入管理类,不断监听文件是否需要自动写入
*/
public class FileCacheManager {
private Logger logger = LoggerFactory.getLogger(FileCacheManager.class);
private final List fileCaches;
private AtomicLong sleepTime; //睡眠时间
private ExecutorService watchPool; //巡逻线程
private ExecutorService autoSyncer; //生产者线程
private volatile Watcher watcher;
protected FileCacheManager(List fileCaches){
this.fileCaches = new CopyOnWriteArrayList<>(fileCaches);
initSleepTime();
this.watchPool = Executors.newSingleThreadExecutor();
this.autoSyncer = Executors.newFixedThreadPool(fileCaches.size());
}
/**
* 根据文件缓存的刷盘时间得到一个最小的睡眠时间,减少空转
*/
private void initSleepTime(){
AtomicLong minSleepTime = new AtomicLong(Long.MAX_VALUE);
fileCaches.forEach(item->{
minSleepTime.set(Long.min(minSleepTime.get(), item.getSyncTime()));
});
this.sleepTime = minSleepTime;
}
public void start(){
if(!fileCaches.isEmpty()){
if(watcher==null){
synchronized (FileCacheManager.class){
if(watcher==null){
watcher = new Watcher();
this.watchPool.submit(watcher);
}
}
}
}
}
public boolean addFileCache(FileCache fileCache){
if (this.fileCaches.indexOf(fileCache)==-1) {
fileCaches.add(fileCache);
initSleepTime();
}
return false;
}
public List getRunnableFileCaches(){
return this.fileCaches;
}
class Watcher implements Runnable{
@Override
public void run() {
for(;;){
long now = TimeUtil.getCurrentSecond();
for(FileCache cache:fileCaches){
BlockingQueue fileChannel = cache.getFileChannel();
if(fileChannel.isEmpty()){
if(cache.needAutoSync()){
logger.info("检测到需要强制刷新的文件 {}",cache.getFileName());
autoSyncer.submit(new AutoSyncer(cache));
}
}
}
now -= TimeUtil.getCurrentSecond();
if(now fileCaches = GlobalFileCache.fileCaches;
private static volatile FileCacheManager Instance;
public static FileCacheManager getInstance(){
if(Instance==null){
synchronized (FileCacheManagerInstance.class){
if(Instance==null){
Instance = new FileCacheManager(fileCaches);
}
}
}
return Instance;
}
}
================================================
FILE: File/src/main/java/com/genius/constpool/GlobalFileCache.java
================================================
package com.genius.constpool;
import com.genius.cache.FileCache;
import java.util.List;
/**
* @author Genius
* @date 2023/04/25 23:03
**/
/**
* 全局文件缓存池,用于存放全局文件缓存,便于跨模块调用
*/
public class GlobalFileCache {
public static List fileCaches
= List.of();
}
================================================
FILE: File/src/main/java/com/genius/exception/FileCacheException.java
================================================
package com.genius.exception;
/**
* @author Genius
* @date 2023/04/24 00:57
**/
public class FileCacheException extends Exception{
String message;
public FileCacheException(String ErrorMessage){
this.message = ErrorMessage;
}
@Override
public String getMessage() {
return message;
}
}
================================================
FILE: File/src/main/java/com/genius/method/FileCondition.java
================================================
package com.genius.method;
import java.nio.file.Path;
@FunctionalInterface
public interface FileCondition {
boolean condition(Path path);
}
================================================
FILE: File/src/main/java/com/genius/pojo/CommonConfigFile.java
================================================
package com.genius.pojo;
import org.example.common.ConfigFile;
/**
* @author Genius
* @date 2023/04/26 00:12
**/
public class CommonConfigFile extends ConfigFile {
public CommonConfigFile(String filePath, String fileName, Object data) {
super(filePath, fileName, data);
}
}
================================================
FILE: File/src/main/java/com/genius/pojo/ConfigFile.java
================================================
package com.genius.pojo;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;
/**
* @author Genius
* @date 2023/04/21 02:24
**/
//配置文件的抽象类,只负责构建配置文件最基础的架构,一般不用来存放配置文件本身的内容
public abstract class ConfigFile {
private FileType fileType;
private String filePath;
private String fileName;
private T data; //json文件的结构不是文件的数据 例如 {username:"",password:""}
//上一次更新时间
private LocalDateTime updateTime;
/**
* 用于最开始创建配置文件结构的打包
* @return Map
*/
public Map packageConfig() {
return this.packageConfig(this.data);
}
/**
* 用于给外部函数提供的内容打包
* @return
*/
public Map packageConfig(T data){
updateConfigTime();
return Map.of(
"data",data,
"updateTime", updateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
);
}
/**
* 只进行时间更新操作
* @param map
* @return
*/
public Map onlyUpdateTime(Map map){
updateConfigTime();
if (map.containsKey("updateTime")) {
map.put("updateTime",updateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
return map;
}
/**
* 更新配置文件类本身的时间
*/
public void updateConfigTime(){
updateTime = LocalDateTime.now();
}
public ConfigFile() {
}
public ConfigFile(String filePath, String fileName, T data) {
this.filePath = filePath;
this.fileName = fileName;
this.data = data;
this.updateTime = LocalDateTime.now();
this.fileType = FileType.COMMON;
}
public ConfigFile(String filePath,String fileName,T data,FileType fileType){
this.filePath = filePath;
this.fileName = fileName;
this.data = data;
this.updateTime = LocalDateTime.now();
this.fileType = fileType;
}
public String getFilePath() {
return this.filePath;
}
public String getFileName() {
return this.fileName;
}
public LocalDateTime getUpdateTime() {return this.updateTime;}
public FileType getFileType(){
return this.fileType;
}
//不推荐直接使用
public T getData() {
return this.data;
}
public void setData(T data){this.data = data;}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public void setFilePath(String filePath){
this.filePath = filePath;
}
}
================================================
FILE: File/src/main/java/com/genius/pojo/FileType.java
================================================
package com.genius.pojo;
/**
* @author Genius
* @date 2023/04/26 01:48
**/
public enum FileType {
LOGGER("日志"),
COMMON("普通文件");
private final String name;
FileType(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
================================================
FILE: File/src/main/java/com/genius/pojo/oss/AliyunOSS.java
================================================
package com.genius.pojo.oss;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
/**
* @author Genius
* @date 2023/05/01 16:38
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@Configuration
public class AliyunOSS implements OssAble {
private Logger logger = LoggerFactory.getLogger(AliyunOSS.class);
private String ENDPOINT;
private String ACCESS_KEY_ID;
private String ACCESS_KEY_SECRET;
private long PART_SIZE = 1024*1024;
public OSS getOssInstance(){
return new OSSClientBuilder().build(ENDPOINT,ACCESS_KEY_ID,ACCESS_KEY_SECRET);
}
/**
* 单文件上传
* @param filePath
* @param bucketName
* @param objectName
* @return boolean
*/
@Override
public String simpleUpload(String filePath, String bucketName, String objectName) {
File file = new File(filePath);
try(InputStream inputStream = new FileInputStream(file)) {
return this.simpleUpload(inputStream,bucketName,objectName);
} catch (IOException e){
return null;
}
}
@Override
public String simpleUpload(InputStream inputStream, String bucketName, String objectName) {
OSS ossClient = this.getOssInstance();
try{
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName,objectName,inputStream);
ossClient.putObject(putObjectRequest);
}catch (OSSException e){
loggerError(e);
return null;
}finally {
shutDown(ossClient);
}
return Paths.get(bucketName,objectName).toString();
}
@Override
public String multipartUpload(String filePath, String bucketName, String objectName) {
OSS ossClient = this.getOssInstance();
try {
InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(bucketName,objectName);
InitiateMultipartUploadResult upresult = ossClient.initiateMultipartUpload(request);
String uploadId = upresult.getUploadId();
File sampleFile = new File(filePath);
long fileLength = sampleFile.length();
int partCount = (int)(fileLength/PART_SIZE);
if(fileLength%PART_SIZE!=0){
partCount++;
}
List partETags = new ArrayList();
for(int i=0;i fileNames, String bucketName) {
OSS ossClient = this.getOssInstance();
try{
DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName);
deleteObjectsRequest.setKeys(fileNames);
ossClient.deleteObjects(deleteObjectsRequest);
}catch (OSSException e){
loggerError(e);
return false;
}finally {
shutDown(ossClient);
}
return true;
}
private void loggerError(OSSException e){
logger.error("Error Message:{}",e.getErrorMessage());
logger.error("Error Code:{}" + e.getErrorCode());
logger.error("Request ID:{}" + e.getRequestId());
logger.error("Host ID:{}" + e.getHostId());
}
private void shutDown(OSS ossClient){
if(ossClient != null){
ossClient.shutdown();
}
}
}
================================================
FILE: File/src/main/java/com/genius/pojo/oss/OssAble.java
================================================
package com.genius.pojo.oss;
import java.io.File;
import java.io.InputStream;
import java.util.List;
public interface OssAble {
String simpleUpload(String filePath,String bucketName,String objectName);
String simpleUpload(InputStream inputStream,String bucketName,String objectName);
String multipartUpload(String filePath,String bucketName,String objectName);
boolean endPointUpload(String filePath,String bucketName,String objectName);
File downloadFile(String downloadPath,String bucketName,String objectName);
boolean deleteFile(String fileName,String bucketName);
boolean deleteFiles(List fileNames,String bucketName);
}
================================================
FILE: File/src/main/java/com/genius/util/FileUtil.java
================================================
package com.genius.util;
/**
* @author Genius
* @date 2023/04/20 11:03
**/
import com.genius.method.FileCondition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
/**
* 文件工具类
*/
public class FileUtil {
private static Logger logger = LoggerFactory.getLogger(FileUtil.class);
/**
* 判断文件是否存在
*
* @param dir 文件路径需要包含文件名
* @return Boolean
*/
public static Boolean isFileExist(String dir) {
return new File(dir).exists();
}
/**
* 复制文件 比 Files更快
*
* @param srcPath 源文件路径
* @param destPath 目标文件路径
* @return file
*/
public static File copyFile(String srcPath, String destPath) {
try (
FileChannel src = new FileInputStream(srcPath).getChannel();
FileChannel dest = new FileInputStream(destPath).getChannel()
) {
dest.transferFrom(src, 0, src.size());
} catch (IOException e) {
logger.error("复制文件失败", e);
return null;
}
return new File(destPath);
}
/**
* 删除文件
*
* @param path 文件路径
* @param filename 文件名
* @return boolean
*/
public static boolean deleteFile(String path, String filename) {
return deleteFile(Paths.get(path, filename).toString());
}
/**
* 删除文件
*
* @param path 文件路径
* @return boolean
* @throws IOException IOException
*/
public static boolean deleteFile(String path) {
try {
Files.delete(Paths.get(path));
} catch (IOException e) {
logger.error("删除文件失败", e);
return false;
}
return true;
}
/**
* 文件目录递归删除
*
* @param path 文件路径
* @return boolean
* @throws IOException IOException
*/
public static boolean deleteDirectory(String path) throws IOException {
FileCondition condition = file -> !file.toString().startsWith("C:") || !file.toString().startsWith("root");
return deleteDirectory0(path, condition, condition, condition);
}
/**
* 文件目录递归删除
*
* @param path 文件路径
* @param visit 访问文件时触发该方法
* @param preVisit 访问子目录前触发该方法
* @param postVisit 访问目录之后触发该方法
* @return boolean
* @throws IOException IOException
*/
public static boolean deleteDirectory(String path, FileCondition visit, FileCondition preVisit, FileCondition postVisit) throws IOException {
return deleteDirectory0(path, visit, preVisit, postVisit);
}
/**
* 递归删除
*
* @param path 文件路径
* @return file
*/
private static boolean deleteDirectory0(String path, FileCondition visit, FileCondition preVisit, FileCondition postVisit) throws IOException {
Files.walkFileTree(Paths.get(path), new SimpleFileVisitor() {
// 在访问文件时触发该方法
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (!visit.condition(file)) {
logger.info("文件被跳过: {}", file);
return FileVisitResult.SKIP_SUBTREE;
}
Files.delete(file);
logger.info("文件被删除: {}", file);
return FileVisitResult.CONTINUE;
}
// 在访问子目录前触发该方法
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
if (!preVisit.condition(dir)) {
logger.info("目录被跳过: {}", dir);
return FileVisitResult.SKIP_SUBTREE;
}
logger.info("目录被访问: {}", dir);
return FileVisitResult.CONTINUE;
}
// 在访问目录之后触发该方法
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
if (!postVisit.condition(dir)) {
logger.info("目录被跳过: {}", dir);
return FileVisitResult.SKIP_SUBTREE;
}
Files.delete(dir);
logger.info("目录被删除: {}", dir);
return FileVisitResult.CONTINUE;
}
// 在访问失败时触发该方法
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
// 写一些具体的业务逻辑
return super.visitFileFailed(file, exc);
}
}
);
return true;
}
}
================================================
FILE: File/src/main/java/com/genius/util/JsonFileUtil.java
================================================
package com.genius.util;
import com.alibaba.fastjson.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @author Genius
* @date 2023/04/20 10:53
**/
/**
* 操作json文件
*/
public class JsonFileUtil {
private static final Logger logger = LoggerFactory.getLogger(JsonFileUtil.class);
/* ------------------read json file------------------ */
/**
* 读取json文件
* @param filePath 文件路径,应该为全路径
* @param fileName 文件名
* @return Map 返回Map类型的数据
*/
public static Map readJsonFile(String filePath, String fileName) {
return readJsonFile(Paths.get(filePath, fileName).toString());
}
/**
* 读取json文件
* @param fullPath 文件路径,包含文件名
* @return Map 返回Map类型的数据
*/
public static Map readJsonFile(String fullPath){
Map maps = null;
JSONObject jsonObject = readJsonFileToJSONObject(fullPath);
if (Objects.nonNull(jsonObject)) {
maps = jsonObject.getInnerMap();
}
return maps;
}
/**
* 读取json文件转为JSONObject
* @param fullPath 文件路径,包含文件名
* @return JSONObject
*/
public static JSONObject readJsonFileToJSONObject(String fullPath){
return readJsonFileToObject(fullPath, JSONObject.class);
}
/** 读取json文件转为对应的类
* @param fullPath 文件路径,包含文件名
* @param clazz 类
* @return T
*/
public static T readJsonFileToObject(String fullPath, Class clazz){
T t = null;
Path dir = Paths.get(fullPath);
try{
if (FileUtil.isFileExist(dir.toString())) {
String res = Files.readString(dir, StandardCharsets.UTF_8);
logger.debug("读取json文件成功, 文件内容为: {}", res);
t = JSON.parseObject(res, clazz);
}
}catch (Exception e){
logger.error("读取json文件失败", e);
}
return t;
}
/* ------------------write json file------------------ */
/**
* 写入json文件
* @param filePath 文件路径,应该为全路径
* @param fileName 文件名
* @param data 写入Json数据
* @return file
*/
public static File writeJsonFile(String filePath, String fileName, Map data) {
return writeJsonFile(Paths.get(filePath, fileName).toString(), data);
}
/**
* 读取json文件
* @param fullPath 文件路径,应该为全路径
* @param data 写入Json数据
* @return file
*/
public static File writeJsonFile(String fullPath, Map data) {
return writeJsonFile0(fullPath, JSON.toJSONString(data,true),true);
}
/**
* 写入json文件,如果文件不存在则报错
* @param filePath 文件路径,应该为全路径
* @param fileName 文件名
* @param data 写入Json数据
* @return file
*/
public static File writeJsonFileIsExist(String filePath, String fileName, T data) {
return writeJsonFileIsExist(Paths.get(filePath, fileName).toString(), data);
}
/**
* 写入json文件,如果文件不存在则报错
* @param fullPath 文件路径,应该为全路径
* @param data 写入Json数据
* @return file
*/
public static File writeJsonFileIsExist(String fullPath, T data) {
return writeJsonFile0(fullPath, JSON.toJSONString(data,true),false);
}
/**
* 将Obj写入json文件
* @param filePath 文件路径,应该为全路径
* @param fileName 文件名
* @param obj 写入Json数据
* @return file
*/
public static File writeJsonFile(String filePath, String fileName, T obj) {
return writeJsonFile(Paths.get(filePath, fileName).toString(), obj);
}
/**
* 将Obj写入json文件
* @param fullPath 文件路径,应该为全路径
* @param obj 写入Json数据
* @return file
*/
public static File writeJsonFile(String fullPath, T obj) {
return writeJsonFile0(fullPath, JSON.toJSONString(obj,true),true);
}
/**
* 写入json文件,如果文件不存在则自动创建
* @param fullPath 文件路径,应该为全路径
* @param json 写入Json数据
* @param autoCreate 是否自动创建文件
* @return file
*/
public static File writeJsonFile0(String fullPath, String json,boolean autoCreate) {
Path dir = Paths.get(fullPath);
try{
if(!FileUtil.isFileExist(dir.toString())&&autoCreate){
Files.createFile(dir);
logger.debug("新建文件{}",dir);
}
if (FileUtil.isFileExist(dir.toString())) {
Files.writeString(dir, json, StandardCharsets.UTF_8);
logger.debug("写入json文件成功, 文件内容为: {}", json);
}else {
logger.error("写入json文件失败, 文件不存在");
return null;
}
}catch (Exception e){
logger.error("写入json文件失败", e);
return null;
}
return dir.toFile();
}
/**
* 写入大j对象到Json文件中
* @param fullPath 文件路径,应该为全路径
* @param data 写入Json数据
* @return file
*/
public static File writeBigJsonFile(String fullPath, Map data) {
Path dir = Paths.get(fullPath);
try{
if(!FileUtil.isFileExist(dir.toString())){
Files.createFile(dir);
logger.info("新建文件{}",dir);
}
if (FileUtil.isFileExist(dir.toString())) {
JSONWriter writer = new JSONWriter(Files.newBufferedWriter(dir, StandardCharsets.UTF_8));
writer.startObject();
for (Map.Entry stringObjectEntry : data.entrySet()) {
String key = stringObjectEntry.getKey();
Object value = stringObjectEntry.getValue();
writer.writeKey(key);
writer.writeValue(value);
logger.info("写入json类成功, 类内容为: {}:{}", key, value);
}
writer.endObject();
writer.close();
}else {
logger.error("写入json文件失败, 文件不存在");
return null;
}
}catch (Exception e){
logger.error("写入json文件失败", e);
return null;
}
return dir.toFile();
}
/**
* 写入大j对象到Json文件中
* @param fullPath 文件路径,应该为全路径
* @param Objs 写入大对象的数组
* @return file
*/
public static File writeBigJsonFile(String fullPath, List Objs) {
Path dir = Paths.get(fullPath);
try{
if(!FileUtil.isFileExist(dir.toString())){
Files.createFile(dir);
logger.info("新建文件{}",dir);
}
if (FileUtil.isFileExist(dir.toString())) {
JSONWriter writer = new JSONWriter(Files.newBufferedWriter(dir, StandardCharsets.UTF_8));
writer.startArray();
for (T obj : Objs) {
writer.writeValue(obj);
logger.info("写入json类成功, 类内容为: {}", obj);
}
writer.endArray();
writer.close();
}else {
logger.error("写入json文件失败, 文件不存在");
return null;
}
}catch (Exception e){
logger.error("写入json文件失败", e);
return null;
}
return dir.toFile();
}
}
================================================
FILE: File/src/main/java/com/genius/util/OSSUtil.java
================================================
package com.genius.util;
/**
* @author Genius
* @date 2023/05/01 16:34
**/
public class OSSUtil {
}
================================================
FILE: File/src/test/java/com/genius/AppTest.java
================================================
package com.genius;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}
================================================
FILE: Hydra/hydra-architecture/pom.xml
================================================
hydra
com.pinecone.hydra
2.5.1
org.apache.maven.plugins
maven-compiler-plugin
11
11
4.0.0
com.pinecone.hydra.kernel
hydra-architecture
2.1.0
jar
11
11
UTF-8
com.pinecone
pinecone
2.5.1
compile
com.pinecone.ulf
ulfhedinn
1.2.1
compile
com.pinecone.slime
slime
2.1.0
compile
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/Hydra.java
================================================
package com.pinecone.hydra;
import com.pinecone.framework.system.Framework;
import com.pinecone.framework.system.CascadeSystem;
import com.pinecone.framework.system.architecture.SystemComponentManager;
import com.pinecone.hydra.system.HySkeleton;
import com.pinecone.hydra.system.Hydrogen;
import com.pinecone.hydra.system.MultiComponentSystem;
import com.pinecone.hydra.system.SystemSkeleton;
import java.nio.file.Path;
public abstract class Hydra extends Framework implements Hydrogen {
private HySkeleton mComponentManager ;
protected boolean mDebugMode ;
protected Path mWorkingPath ;
protected String mServiceID ;
public Hydra(){
this( new String[0], null, null );
}
public Hydra( String[] args ){
this( args, null, null );
}
public Hydra( String[] args, String szName ){
this( args, szName, null );
}
public Hydra( String[] args, CascadeSystem parent ){
this( args, null, parent );
}
public Hydra( String[] args, String szName, CascadeSystem parent, HySkeleton manager ){
super( args, szName, parent );
if( manager == null ) {
manager = new SystemSkeleton( this );
}
this.mComponentManager = manager;
}
public Hydra( String[] args, String szName, CascadeSystem parent ){
this( args, szName, parent, null );
}
protected void prepare_system_skeleton() {
}
@Override
public HySkeleton getComponentManager() {
return this.mComponentManager;
}
@Override
public MultiComponentSystem apply( SystemComponentManager manager ) {
this.mComponentManager = (HySkeleton)manager;
return this;
}
@Override
public boolean isDebugMode() {
return this.mDebugMode;
}
@Override
public Path getWorkingPath() {
return this.mWorkingPath;
}
@Override
public String getServiceID() {
return this.mServiceID;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/Hydradom.java
================================================
package com.pinecone.hydra;
import com.pinecone.framework.system.CascadeSystem;
import com.pinecone.hydra.system.HySkeleton;
import com.pinecone.hydra.system.subsystem.CentralMicroSystemCabinet;
import com.pinecone.hydra.system.subsystem.KernelMicroSystemCabinet;
import com.pinecone.hydra.system.types.HydraKingdom;
public abstract class Hydradom extends Hydra implements HydraKingdom {
protected KernelMicroSystemCabinet mKernelMicroSystemCabinet;
public Hydradom(){
this( new String[0], null, null );
}
public Hydradom( String[] args ){
this( args, null, null );
}
public Hydradom( String[] args, String szName ){
this( args, szName, null );
}
public Hydradom( String[] args, CascadeSystem parent ){
this( args, null, parent );
}
public Hydradom( String[] args, String szName, CascadeSystem parent ){
super( args, szName, parent );
}
public Hydradom( String[] args, String szName, CascadeSystem parent, HySkeleton manager ){
super( args, szName, parent, manager );
}
@Override
protected void prepare_system_skeleton() {
this.mKernelMicroSystemCabinet = new CentralMicroSystemCabinet( this );
this.getComponentManager().addComponent( this.mKernelMicroSystemCabinet );
}
public KernelMicroSystemCabinet getKernelMicroSystemCabinet() {
return this.mKernelMicroSystemCabinet;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/deploy/Container.java
================================================
package com.pinecone.hydra.deploy;
public interface Container extends Integration {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/deploy/Deploy.java
================================================
package com.pinecone.hydra.deploy;
import com.pinecone.hydra.device.Deployment;
public interface Deploy extends Deployment {
String getStatus();
void setStatus(String status);
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/deploy/Integration.java
================================================
package com.pinecone.hydra.deploy;
public interface Integration extends Deploy {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/deploy/Namespace.java
================================================
package com.pinecone.hydra.deploy;
public interface Namespace {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/deploy/PhysicalHost.java
================================================
package com.pinecone.hydra.deploy;
public interface PhysicalHost extends Server {
String getHardwareSpecs();
void setHardwareSpecs(String hardwareSpecs);
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/deploy/Quick.java
================================================
package com.pinecone.hydra.deploy;
public interface Quick extends Integration {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/deploy/Server.java
================================================
package com.pinecone.hydra.deploy;
public interface Server extends Deploy {
String getName();
void setName(String name);
String getIpAddress();
void setIpAddress(String ipAddress);
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/deploy/VirtualMachine.java
================================================
package com.pinecone.hydra.deploy;
public interface VirtualMachine extends Server {
PhysicalHost getAffiliateHost();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/device/Deployment.java
================================================
package com.pinecone.hydra.device;
public interface Deployment extends Device {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/device/Device.java
================================================
package com.pinecone.hydra.device;
import com.pinecone.framework.system.prototype.Pinenut;
public interface Device extends Pinenut {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/device/Disk.java
================================================
package com.pinecone.hydra.device;
public interface Disk extends Device {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/express/Deliver.java
================================================
package com.pinecone.hydra.express;
import com.pinecone.framework.system.prototype.Pinenut;
public interface Deliver extends Pinenut {
String getName();
Express getExpress();
void toDispatch( Package that ) throws Exception;
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/express/Express.java
================================================
package com.pinecone.hydra.express;
import com.pinecone.framework.system.prototype.Pinenut;
public interface Express extends Pinenut {
Deliver recruit ( String szName );
Express register( Deliver deliver );
Express fired ( Deliver deliver );
boolean hasOwnDeliver( Deliver deliver );
boolean hasOwnDeliver( String deliverName );
int size ();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/express/Package.java
================================================
package com.pinecone.hydra.express;
import com.pinecone.framework.system.prototype.Pinenut;
public interface Package extends Pinenut {
Deliver getDeliver();
String getConsignee();
Package entrust( Deliver deliver );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ArchModularizedSubsystem.java
================================================
package com.pinecone.hydra.system;
import org.slf4j.Logger;
import com.pinecone.framework.system.ModularizedSubsystem;
import com.pinecone.framework.util.config.PatriarchalConfig;
public abstract class ArchModularizedSubsystem implements ModularizedSubsystem {
protected Hydrogen mPrimarySystem;
protected String mszName;
protected Logger mLogger;
protected PatriarchalConfig mSubsystemConfig;
public ArchModularizedSubsystem( Hydrogen primarySystem, String name, PatriarchalConfig config ) {
this.mPrimarySystem = primarySystem;
this.mszName = name;
this.mLogger = primarySystem.getTracerScope().newLogger( name );
this.mSubsystemConfig = config;
}
@Override
public PatriarchalConfig getSubsystemConfig() {
return this.mSubsystemConfig;
}
@Override
public Hydrogen parentSystem() {
return this.mPrimarySystem;
}
@Override
public String getName() {
return this.mszName;
}
public Logger getLogger() {
return this.mLogger;
}
protected abstract void traceWelcomeInfo() ;
@Override
public void release() {
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ArchSystemAutoAssembleComponent.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.architecture.CascadeComponent;
import com.pinecone.framework.unit.affinity.ObjectOverrider;
import com.pinecone.framework.unit.affinity.RecursiveUnitOverrider;
import com.pinecone.framework.util.lang.DynamicFactory;
import com.pinecone.framework.util.lang.GenericDynamicFactory;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.hydra.system.component.Slf4jTraceable;
import org.slf4j.Logger;
public abstract class ArchSystemAutoAssembleComponent extends ArchSystemCascadeComponent implements Slf4jTraceable {
protected Logger mLogger;
protected ObjectOverrider mObjectOverrider ;
protected DynamicFactory mUniformFactory ;
protected ArchSystemAutoAssembleComponent(Namespace name, Hydrogen system, SystemCascadeComponentManager manager, CascadeComponent parent ) {
super( name, system, manager, parent );
this.mLogger = system.getTracerScope().newLogger( this.className() );
this.mObjectOverrider = new RecursiveUnitOverrider<>();
this.mUniformFactory = new GenericDynamicFactory( system.getTaskManager().getClassLoader() );
}
protected ArchSystemAutoAssembleComponent( Namespace name, SystemCascadeComponentManager manager, CascadeComponent parent ) {
this( name, manager.getSystem(), manager, parent );
}
protected ArchSystemAutoAssembleComponent( Namespace name, SystemCascadeComponentManager manager ) {
this( name, manager, null );
}
public DynamicFactory getSharedUniformFactory() {
return this.mUniformFactory;
}
@Override
public Logger getLogger() {
return this.mLogger;
}
public ObjectOverrider getObjectOverrider() {
return this.mObjectOverrider;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ArchSystemCascadeComponent.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.architecture.ArchCascadeComponent;
import com.pinecone.framework.system.architecture.CascadeComponent;
import com.pinecone.framework.util.name.Namespace;
public abstract class ArchSystemCascadeComponent extends ArchCascadeComponent implements HyComponent {
private Hydrogen mSystem;
protected ArchSystemCascadeComponent( Namespace name, Hydrogen system, SystemCascadeComponentManager manager, CascadeComponent parent ) {
super( name, manager, parent );
this.mSystem = system;
}
protected ArchSystemCascadeComponent( Namespace name, SystemCascadeComponentManager manager, CascadeComponent parent ) {
this( name, manager.getSystem(), manager, parent );
}
protected ArchSystemCascadeComponent( Namespace name, SystemCascadeComponentManager manager ) {
this( name, manager, null );
}
@Override
public SystemCascadeComponentManager getComponentManager() {
return (SystemCascadeComponentManager) super.getComponentManager();
}
@Override
public Hydrogen getSystem() {
return this.mSystem;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ArchSystemCascadeComponentManager.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.architecture.ArchCascadeComponentManager;
public abstract class ArchSystemCascadeComponentManager extends ArchCascadeComponentManager implements SystemCascadeComponentManager {
protected Hydrogen mSystem;
protected ArchSystemCascadeComponentManager( Hydrogen system ){
super();
this.mSystem = system;
}
@Override
public Hydrogen getSystem() {
return this.mSystem;
}
@Override
public SystemCascadeComponent getRootComponentByFullName(String fullName) {
return (SystemCascadeComponent)super.getRootComponentByFullName(fullName);
}
@Override
public SystemCascadeComponent getComponentByFullName(String fullName) {
return (SystemCascadeComponent)super.getComponentByFullName(fullName);
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/BlockSystem.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.prototype.Pinenut;
public interface BlockSystem extends Pinenut {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/DistributedSystem.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.prototype.Pinenut;
public interface DistributedSystem extends Pinenut {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/FederalSystem.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.prototype.Pinenut;
public interface FederalSystem extends Pinenut {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/HierarchySystem.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.prototype.Pinenut;
public interface HierarchySystem extends Pinenut {
HyHierarchy getServiceArch();
boolean isTopmostArchy();
HyHierarchy getTopmostArchy();
boolean isBottommostArchy();
HyHierarchy getBottommostArchy();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/HyComponent.java
================================================
package com.pinecone.hydra.system;
public interface HyComponent extends SystemCascadeComponent {
@Override
Hydrogen getSystem();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/HyHierarchy.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.prototype.Pinenut;
public interface HyHierarchy extends Pinenut {
String getName();
boolean isDominantClass();
boolean isWorkerClass();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/HySkeleton.java
================================================
package com.pinecone.hydra.system;
public interface HySkeleton extends SystemCascadeComponentManager {
Hydrogen getSystem();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/Hydrogen.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.Pinecore;
import com.pinecone.hydra.system.component.Slf4jTracerScope;
import java.nio.file.Path;
public interface Hydrogen extends Pinecore, ScopedSystem, MultiComponentSystem {
@Override
HySkeleton getComponentManager();
String getServiceID();
Path getWorkingPath();
boolean isDebugMode();
Slf4jTracerScope getTracerScope();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/MultiComponentSystem.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.architecture.SystemComponentManager;
import com.pinecone.framework.system.prototype.Pinenut;
public interface MultiComponentSystem extends Pinenut {
SystemComponentManager getComponentManager();
MultiComponentSystem apply( SystemComponentManager manager );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ScopedSystem.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.unit.MultiScopeMap;
public interface ScopedSystem extends Pinenut {
MultiScopeMap getGlobalConfigScope();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/SystemCascadeComponent.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.architecture.CascadeComponent;
import com.pinecone.framework.system.architecture.SystemComponent;
public interface SystemCascadeComponent extends CascadeComponent, SystemComponent {
@Override
SystemCascadeComponentManager getComponentManager();
default Hydrogen getSystem() {
return this.getComponentManager().getSystem();
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/SystemCascadeComponentManager.java
================================================
package com.pinecone.hydra.system;
import com.pinecone.framework.system.architecture.CascadeComponentManager;
import com.pinecone.framework.system.architecture.SystemComponentManager;
public interface SystemCascadeComponentManager extends SystemComponentManager, CascadeComponentManager {
Hydrogen getSystem();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/SystemSkeleton.java
================================================
package com.pinecone.hydra.system;
public class SystemSkeleton extends ArchSystemCascadeComponentManager implements HySkeleton {
public SystemSkeleton( Hydrogen system ){
super( system );
}
@Override
public Hydrogen getSystem() {
return this.mSystem;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/centrum/CentralControlSubsystem.java
================================================
package com.pinecone.hydra.system.centrum;
import com.pinecone.framework.system.ModularizedSubsystem;
import com.pinecone.framework.system.regime.arch.Lord;
import com.pinecone.hydra.system.component.Slf4jTraceable;
public interface CentralControlSubsystem extends ModularizedSubsystem, Lord, Slf4jTraceable {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/centrum/Centrum.java
================================================
package com.pinecone.hydra.system.centrum;
/**
* Pinecone Ursus For Java, Uniformity Centralized Metasystem
* Author: Harald.E (Dragon King)
* Copyright © 2008 - 2028 Bean Nuts Foundation All rights reserved.
* *****************************************************************************************
* Uniformity Centralized Metasystem
* 统一中央集权元系统
* *****************************************************************************************
* 1). Top-level abstraction and aggregation of large-scale distributed systems,
* enabling centralized global control-ability and simplified manipulation of complex systems.
* 2). Meta-level aggregation of global resources, tasks, services, data, and intelligence,
* aimed at centralized planning and large-scale absolute control.
* 3). Core architecture: atomic-level design of meta-information, control scheduling, intelligence,
* and auditing, centralized aggregation, and highest-level external abstraction.
* *****************************************************************************************
* 1). 大型分布式系统的顶级抽象化、汇总化,面向中央全局可控,大型系统简单操纵。
* 2). 面向全局资源、任务、服务、数据、情报等元汇总,全局统筹规划、大规模绝对控制。
* 3). 核心架构:元信息、控制调度、情报、审计原子化,中央汇总,对外最高抽象。
* *****************************************************************************************
*/
public interface Centrum extends UniformCentralSystem, Metasystem {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/centrum/Metasystem.java
================================================
package com.pinecone.hydra.system.centrum;
import com.pinecone.framework.system.prototype.Pinenut;
public interface Metasystem extends Pinenut {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/centrum/UniformCentralSystem.java
================================================
package com.pinecone.hydra.system.centrum;
import com.pinecone.framework.system.RuntimeSystem;
import com.pinecone.framework.system.architecture.Component;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.hydra.system.DistributedSystem;
import com.pinecone.hydra.system.HierarchySystem;
import com.pinecone.hydra.system.imperium.ImperiumPrivy;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.ulf.util.guid.i64.GuidAllocator72;
public interface UniformCentralSystem extends HierarchySystem, DistributedSystem {
GuidAllocator getSystemGuidAllocator();
GuidAllocator72 getSystemGuidAllocator72();
Component imageLoader();
KernelObjectConfig fundamentalKernelObjectConfig();
ImperiumPrivy imperiumPrivy();
static UniformCentralSystem evalCentralSystem( Processum that ) {
if ( that instanceof UniformCentralSystem ) {
return (UniformCentralSystem) that;
}
RuntimeSystem rs = that.parentSystem();
if ( rs instanceof UniformCentralSystem ) {
return (UniformCentralSystem) rs;
}
throw new IllegalArgumentException( "Not in UniformCentralSystem family." );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/ComponentInitializationException.java
================================================
package com.pinecone.hydra.system.component;
import com.pinecone.framework.system.prototype.Pinenut;
public class ComponentInitializationException extends Exception implements Pinenut {
public ComponentInitializationException () {
super();
}
public ComponentInitializationException ( String message ) {
super(message);
}
public ComponentInitializationException ( String message, Throwable cause ) {
super(message, cause);
}
public ComponentInitializationException ( Throwable cause ) {
super(cause);
}
protected ComponentInitializationException ( String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace ) {
super( message, cause, enableSuppression, writableStackTrace );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/GenericResourceDispenserCenter.java
================================================
package com.pinecone.hydra.system.component;
import com.pinecone.framework.system.construction.StructureInstanceDispenser;
import com.pinecone.framework.system.construction.UnifyCentralInstanceDispenser;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.hydra.system.ArchSystemCascadeComponent;
import com.pinecone.hydra.system.HyComponent;
import com.pinecone.hydra.system.Hydrogen;
public class GenericResourceDispenserCenter extends ArchSystemCascadeComponent implements ResourceDispenserCenter {
protected StructureInstanceDispenser mInstanceDispenser;
public GenericResourceDispenserCenter(Namespace name, Hydrogen system, HyComponent parent ) {
super( name, system, system.getComponentManager(), parent );
this.mInstanceDispenser = new UnifyCentralInstanceDispenser();
}
public GenericResourceDispenserCenter(Hydrogen system, HyComponent parent ) {
this( null, system, parent );
}
public GenericResourceDispenserCenter( Hydrogen system ) {
this( system, null );
}
@Override
public StructureInstanceDispenser getInstanceDispenser() {
return this.mInstanceDispenser;
}
@Override
public Hydrogen getSystem() {
return super.getSystem();
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/GenericTracerScope.java
================================================
package com.pinecone.hydra.system.component;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.hydra.system.ArchSystemCascadeComponent;
import com.pinecone.hydra.system.HyComponent;
import com.pinecone.hydra.system.Hydrogen;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class GenericTracerScope extends ArchSystemCascadeComponent implements Slf4jTracerScope {
public GenericTracerScope(Namespace name, Hydrogen system, HyComponent parent ) {
super( name, system, system.getComponentManager(), parent );
}
public GenericTracerScope(Hydrogen system, HyComponent parent ) {
this( null, system, parent );
}
public GenericTracerScope( Hydrogen system ) {
this( system, null );
}
@Override
public Hydrogen getSystem() {
return super.getSystem();
}
@Override
public String getLoggerName( String name ){
return String.format( "%s<%s>", this.getSystem().className(), name );
}
@Override
public Logger newLogger( String name ){
return LoggerFactory.getLogger( this.getLoggerName( name ) );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/LogStatuses.java
================================================
package com.pinecone.hydra.system.component;
public final class LogStatuses {
public static final String StatusStart = "Start";
public static final String StatusDone = "Done";
public static final String StatusVitalization = "Vitalization";
public static final String StatusVitalized = "Vitalized";
public static final String StatusTermination = "Termination";
public static final String StatusTerminated = "Terminated";
public static final String StatusStandby = "Standby";
public static final String StatusReady = "Ready";
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/LoggingConfigurator.java
================================================
package com.pinecone.hydra.system.component;
import java.util.Map;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import org.slf4j.LoggerFactory;
import com.pinecone.framework.system.ConformitySystem;
import com.pinecone.framework.util.config.JSONConfig;
import com.pinecone.framework.util.config.PatriarchalConfig;
public class LoggingConfigurator implements TracerConfigurator {
protected org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger( this.getClass() );
protected ConformitySystem mConformitySystem;
public LoggingConfigurator( ConformitySystem conformitySystem ) {
this.mConformitySystem = conformitySystem;
}
@Override
public void apply() {
PatriarchalConfig tracer = this.mConformitySystem.getSystemConfig().getChild( "Tracer" );
if ( tracer != null ) {
PatriarchalConfig logging = tracer.getChild( "Logging" );
if ( logging != null ) {
PatriarchalConfig levels = logging.getChild( "Levels" );
if ( levels instanceof JSONConfig ) {
JSONConfig joLevels = (JSONConfig) levels;
apply( joLevels );
log.info( "[Lifecycle] Set logging levels. " );
}
}
}
}
public static void apply( Map levelMap ) {
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
for (Map.Entry entry : levelMap.entrySet()) {
String loggerName = entry.getKey();
String levelStr = entry.getValue().toString();
Level level = Level.toLevel(levelStr, Level.INFO);
if ( "root".equalsIgnoreCase(loggerName) ) {
context.getLogger(Logger.ROOT_LOGGER_NAME).setLevel(level);
}
else {
context.getLogger(loggerName).setLevel(level);
}
}
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/ResourceDispenserCenter.java
================================================
package com.pinecone.hydra.system.component;
import com.pinecone.framework.system.construction.StructureInstanceDispenser;
import com.pinecone.hydra.system.HyComponent;
public interface ResourceDispenserCenter extends HyComponent {
StructureInstanceDispenser getInstanceDispenser() ;
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/Slf4jTraceable.java
================================================
package com.pinecone.hydra.system.component;
import com.pinecone.framework.system.prototype.Pinenut;
import org.slf4j.Logger;
public interface Slf4jTraceable extends Pinenut {
Logger getLogger();
default Slf4jTraceable infoLifecycle( String szWhat, String szStateOrExtra ) {
this.getLogger().info( "[Lifecycle] [{}] <{}>", szWhat, szStateOrExtra );
return this;
}
default Slf4jTraceable infoLifecycle( String szStateOrExtra ) {
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
return this.infoLifecycle( stackTraceElements[ 2 ].getMethodName(), szStateOrExtra );
}
default Slf4jTraceable infoLifecycleDone( String szWhat ) {
return this.infoLifecycle( szWhat, LogStatuses.StatusDone );
}
default Slf4jTraceable infoLifecycleInitializationDone() {
return this.infoLifecycle( this.className() + "::Constructor", LogStatuses.StatusDone );
}
default Slf4jTraceable infoCriticalOperation( String szWhat, String szStateOrExtra ) {
this.getLogger().info( "[CriticalOperation] [{}] <{}>", szWhat, szStateOrExtra );
return this;
}
default Slf4jTraceable warnSimple( String szStateOrExtra ) {
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
this.getLogger().warn( "[{}] <{}>", stackTraceElements[ 2 ].getMethodName(), szStateOrExtra );
return this;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/Slf4jTracerScope.java
================================================
package com.pinecone.hydra.system.component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public interface Slf4jTracerScope extends TracerScope {
@Override
default Logger newLogger( String name ){
return LoggerFactory.getLogger( this.getLoggerName( name ) );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/TracerConfigurator.java
================================================
package com.pinecone.hydra.system.component;
import com.pinecone.framework.system.prototype.Pinenut;
public interface TracerConfigurator extends Pinenut {
void apply();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/component/TracerScope.java
================================================
package com.pinecone.hydra.system.component;
import com.pinecone.hydra.system.HyComponent;
import com.pinecone.hydra.system.Hydrogen;
public interface TracerScope extends HyComponent {
@Override
Hydrogen getSystem();
String getLoggerName( String name );
Object newLogger( String name );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/identifier/KOPathResolver.java
================================================
package com.pinecone.hydra.system.identifier;
import com.pinecone.framework.util.name.path.BasicPathResolver;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
public class KOPathResolver extends BasicPathResolver {
public KOPathResolver( KernelObjectConfig config ) {
super( config.getPathNameSeparator(), config.getPathNameSepRegex() );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/imperium/ImperiumPrivy.java
================================================
package com.pinecone.hydra.system.imperium;
import com.pinecone.hydra.system.HyComponent;
import com.pinecone.hydra.system.ko.runtime.CentralizedRuntimeInstrument;
/**
* Pinecone Ursus For Java Imperium Privy Council
* Author: Harald.E (Dragon King), Ken
* Copyright © 2008 - 2028 Bean Nuts Foundation All rights reserved.
* *****************************************************************************************
* Imperium Privy Council
* Information and control are separated in this architecture, where the Privy serves as a central intelligence marshaling database,
* and in principle, does not have direct control privilege over specific objects.
* Its core functions are to centralize the collection of information from all objects, facilitating uniformed orchestration, analysis, and control.
*
* Imperium Privy Council (枢密院,掌文书、行咨询),
* 信息、控制分离架构,枢密是中央情报编组数据库,原则上没有具体对象的实际控制权。
* 其核心职能为:中心化收集所有对象的信息,便于统一统筹决策、分析和控制。
*
* e.g. \Device\HarddiskVolume3\Users\dragonking\AppData\Local\ => {name: xxx, handle: 123, typeId: 37}
* e.g. /proc/137/status => {name: scsi_eh_26, State: S, Pid: 137}
* *****************************************************************************************
*/
public interface ImperiumPrivy extends HyComponent {
CentralizedRuntimeInstrument getExpressInstrument();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/imperium/KernelObjectRootMountPoint.java
================================================
package com.pinecone.hydra.system.imperium;
public enum KernelObjectRootMountPoint {
KernelConfig ( "KernelConfig", KernelRootMountPoint.Config.getConfigSection() + ".Kernel", KernelRootMountPoint.Config.getMountPoint() + "/kernel" ),
Registry ( "Registry", KernelRootMountPoint.Config.getConfigSection() + ".Registry", KernelRootMountPoint.Config.getMountPoint() + "/registry" ),
TaskMeta ( "TaskMeta", KernelRootMountPoint.Meta.getConfigSection() + ".Task", KernelRootMountPoint.Meta.getMountPoint() + "/task" ),
ServiceMeta ( "ServiceMeta", KernelRootMountPoint.Meta.getConfigSection() + ".Service", KernelRootMountPoint.Meta.getMountPoint() + "/service" ),
DeployMeta ( "DeployMeta", KernelRootMountPoint.Meta.getConfigSection() + ".Deploy", KernelRootMountPoint.Device.getMountPoint() + "/deploy" ),
SysImages ( "SysImages", KernelRootMountPoint.System.getConfigSection() + ".Images", KernelRootMountPoint.System.getMountPoint() + "/public/global/exe/images" )
;
private final String name;
private final String configSection;
private final String mountPoint;
KernelObjectRootMountPoint( String name, String configSection, String mountPoint ) {
this.name = name;
this.configSection = configSection;
this.mountPoint = mountPoint;
}
public String getName() {
return this.name;
}
public String getConfigSection() {
return this.configSection;
}
public String getMountPoint() {
return this.mountPoint;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/imperium/KernelPrivyFileSystemConstants.java
================================================
package com.pinecone.hydra.system.imperium;
public final class KernelPrivyFileSystemConstants {
public static final String Root = "$";
public static final String NomenclatureSeparator = ".";
public static final String FileSystemRoot = Root + NomenclatureSeparator + "KPFS"; // $.KPFS
public static final String PathNameSeparator = "/";
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/imperium/KernelRootMountPoint.java
================================================
package com.pinecone.hydra.system.imperium;
public enum KernelRootMountPoint {
Config ( "Config", KernelPrivyFileSystemConstants.FileSystemRoot + ".Config", "conf" ),
Device ( "Device", KernelPrivyFileSystemConstants.FileSystemRoot + ".Device", "dev" ),
UserHome ( "UserHome", KernelPrivyFileSystemConstants.FileSystemRoot + ".UserHome", "home" ),
Mount ( "Mount", KernelPrivyFileSystemConstants.FileSystemRoot + ".Mount", "mnt" ),
System ( "System", KernelPrivyFileSystemConstants.FileSystemRoot + ".System", "sys" ),
Process ( "Process", KernelPrivyFileSystemConstants.FileSystemRoot + ".Process", "proc" ),
Variable ( "Variable", KernelPrivyFileSystemConstants.FileSystemRoot + ".Variable", "var" ),
Meta ( "Meta", KernelPrivyFileSystemConstants.FileSystemRoot + ".Meta", "meta" ),
;
private final String name;
private final String configSection;
private final String mountPoint;
KernelRootMountPoint( String name, String configSection, String mountPoint ) {
this.name = name;
this.configSection = configSection;
this.mountPoint = mountPoint;
}
public String getName() {
return this.name;
}
public String getConfigSection() {
return this.configSection;
}
public String getMountPoint() {
return this.mountPoint;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/ArchKernelObjectConfig.java
================================================
package com.pinecone.hydra.system.ko;
import java.util.Map;
import com.pinecone.framework.system.Nullable;
public abstract class ArchKernelObjectConfig implements KernelObjectConfig {
protected String mszPathNameSeparator = KernelObjectConstants.PathNameSeparator;
protected String mszFullNameSeparator = KernelObjectConstants.FullNameSeparator;
protected String mszPathNameSepRegex = KernelObjectConstants.PathNameSepRegex;
protected String mszFullNameSepRegex = KernelObjectConstants.FullNameSepRegex;
protected int mnShortPathLength = KernelObjectConstants.ShortPathLength;
protected ArchKernelObjectConfig() {
}
public ArchKernelObjectConfig( @Nullable Map config ){
this();
if ( config == null ) {
return;
}
this.mszPathNameSeparator = (String) config.getOrDefault("PathNameSeparator", KernelObjectConstants.PathNameSeparator);
this.mszFullNameSeparator = (String) config.getOrDefault("FullNameSeparator", KernelObjectConstants.FullNameSeparator);
this.mszPathNameSepRegex = (String) config.getOrDefault("PathNameSepRegex", KernelObjectConstants.PathNameSepRegex);
this.mszFullNameSepRegex = (String) config.getOrDefault("FullNameSepRegex", KernelObjectConstants.FullNameSepRegex);
this.mnShortPathLength = ( (Number) config.getOrDefault("ShortPathLength", KernelObjectConstants.ShortPathLength) ).intValue();
}
@Override
public String getPathNameSeparator() {
return this.mszPathNameSeparator;
}
@Override
public String getFullNameSeparator() {
return this.mszFullNameSeparator;
}
@Override
public String getPathNameSepRegex() {
return this.mszPathNameSepRegex;
}
@Override
public String getFullNameSepRegex() {
return this.mszFullNameSepRegex;
}
@Override
public int getShortPathLength() {
return this.mnShortPathLength;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/CascadeInstrument.java
================================================
package com.pinecone.hydra.system.ko;
import com.pinecone.framework.system.regime.Instrument;
import com.pinecone.framework.system.regimentation.UniformCascadeNodus;
import com.pinecone.framework.util.name.Namespace;
public interface CascadeInstrument extends UniformCascadeNodus, Instrument {
String EmptySuperiorPathScope = "";
@Override
CascadeInstrument parent();
void setParent( CascadeInstrument parent );
@Override
default boolean isRoot() {
return this.parent() == null;
}
default CascadeInstrument root() {
return (CascadeInstrument) UniformCascadeNodus.super.root();
}
@Override
Namespace getTargetingName();
@Override
void setTargetingName( Namespace name );
@Override
default void setTargetingName( String name ) {
UniformCascadeNodus.super.setTargetingName( name );
}
@Override
default String getSimpleName() {
return this.getTargetingName().getSimpleName();
}
@Override
default String getFullName() {
return this.getTargetingName().getFullName();
}
/**
* Superior Path Scope (Specialized namespace)
* 上级键空间(专门命名空间)
* e.g. `/proc`/pid/name => Scope : `/proc`
* @return ParentPathScope
*/
String getSuperiorPathScope();
void applySuperiorPathScope( String superiorPathScope );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/CascadeKOTreeInstrument.java
================================================
package com.pinecone.hydra.system.ko;
public interface CascadeKOTreeInstrument extends CascadeKernelObjectInstrument, KernelObjectTreeInstrument {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/CascadeKernelObjectInstrument.java
================================================
package com.pinecone.hydra.system.ko;
public interface CascadeKernelObjectInstrument extends KernelObjectInstrument, CascadeInstrument {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/InstrumentException.java
================================================
package com.pinecone.hydra.system.ko;
import com.pinecone.framework.system.prototype.Pinenut;
public class InstrumentException extends Exception implements Pinenut {
public InstrumentException() {
super();
}
public InstrumentException( String message ) {
super(message);
}
public InstrumentException( String message, Throwable cause ) {
super(message, cause);
}
public InstrumentException( Throwable cause ) {
super(cause);
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/KernelObject.java
================================================
package com.pinecone.hydra.system.ko;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
public interface KernelObject extends Pinenut {
GUID getGuid();
String objectFunctionName();
String objectCategoryName();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/KernelObjectConfig.java
================================================
package com.pinecone.hydra.system.ko;
import com.pinecone.framework.system.prototype.Pinenut;
public interface KernelObjectConfig extends Pinenut {
String getPathNameSeparator();
String getFullNameSeparator();
String getPathNameSepRegex();
String getFullNameSepRegex();
int getShortPathLength();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/KernelObjectConstants.java
================================================
package com.pinecone.hydra.system.ko;
import com.pinecone.hydra.unit.imperium.ImperialTreeConstants;
public final class KernelObjectConstants {
public static String PathNameSeparator = "/";
public static String FullNameSeparator = ".";
public static String PathNameSepRegex = "/";
public static String FullNameSepRegex = "\\.";
public static int ShortPathLength = ImperialTreeConstants.DefaultShortPathLength;
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/KernelObjectInstrument.java
================================================
package com.pinecone.hydra.system.ko;
import com.pinecone.framework.system.regime.Instrument;
import com.pinecone.framework.util.id.GuidAllocator;
public interface KernelObjectInstrument extends Instrument {
GuidAllocator getGuidAllocator();
KernelObjectConfig getConfig();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/KernelObjectTreeInstrument.java
================================================
package com.pinecone.hydra.system.ko;
import com.pinecone.hydra.unit.imperium.ImperialTree;
public interface KernelObjectTreeInstrument extends KernelObjectInstrument {
ImperialTree getMasterTrieTree();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/MetaPersistenceException.java
================================================
package com.pinecone.hydra.system.ko;
public class MetaPersistenceException extends InstrumentException {
public MetaPersistenceException() {
super();
}
public MetaPersistenceException( String message ) {
super(message);
}
public MetaPersistenceException( String message, Throwable cause ) {
super(message, cause);
}
public MetaPersistenceException( Throwable cause ) {
super(cause);
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/QueryableInstrument.java
================================================
package com.pinecone.hydra.system.ko;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.imperium.entity.EntityNode;
public interface QueryableInstrument extends KernelObjectInstrument {
String getPath( GUID objectGuid );
String querySystemKernelObjectPath( GUID objectGuid ) ;
GUID queryGUIDByPath( String path );
EntityNode queryNode( String path );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/UOIUtils.java
================================================
package com.pinecone.hydra.system.ko;
import com.pinecone.framework.util.uoi.UOI;
import com.pinecone.framework.util.uoi.UniformObjectLoaderFactory;
public final class UOIUtils {
public static UOI createJavaClass( String className, String resourceDetail ) {
return UOI.create(
String.format( "%s://%s/%s", UniformObjectLoaderFactory.DefaultJavaClassType, resourceDetail, className )
);
}
public static UOI createLocalJavaClass( String className ) {
return UOIUtils.createJavaClass( className, "" );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/action/ActionObject.java
================================================
package com.pinecone.hydra.system.ko.action;
import com.pinecone.hydra.system.ko.KernelObject;
public interface ActionObject extends KernelObject {
String FunctionName = ActionObject.class.getSimpleName().replace( "Object", "" );
@Override
default String objectFunctionName() {
return FunctionName;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/action/EventObject.java
================================================
package com.pinecone.hydra.system.ko.action;
public interface EventObject extends ActionObject {
String FunctionName = EventObject.class.getSimpleName().replace( "Object", "" );
@Override
default String objectFunctionName() {
return FunctionName;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/control/ControlObject.java
================================================
package com.pinecone.hydra.system.ko.control;
import com.pinecone.hydra.system.ko.KernelObject;
public interface ControlObject extends KernelObject {
String FunctionName = ControlObject.class.getSimpleName().replace( "Object", "" );
@Override
default String objectFunctionName() {
return FunctionName;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/dao/GUIDNameManipulator.java
================================================
package com.pinecone.hydra.system.ko.dao;
import java.util.List;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
public interface GUIDNameManipulator extends Pinenut {
List getGuidsByName( String name );
List getGuidsByNameID( String name, GUID guid );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/driver/KOIMappingDriver.java
================================================
package com.pinecone.hydra.system.ko.driver;
import java.util.Map;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.system.homotype.StereotypicInjector;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.hydra.system.Hydrogen;
public interface KOIMappingDriver extends Pinenut {
String getVersionSignature();
Hydrogen getSystem();
Processum getSuperiorProcess();
KOIMasterManipulator getMasterManipulator();
// Temp, TODO
StereotypicInjector autoConstruct( Class> stereotype, Map config, Object instance );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/driver/KOIMappingDriverFactory.java
================================================
package com.pinecone.hydra.system.ko.driver;
import com.pinecone.framework.system.prototype.Pinenut;
public interface KOIMappingDriverFactory extends Pinenut {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/driver/KOIMasterManipulator.java
================================================
package com.pinecone.hydra.system.ko.driver;
import com.pinecone.framework.system.prototype.Pinenut;
public interface KOIMasterManipulator extends Pinenut {
KOISkeletonMasterManipulator getSkeletonMasterManipulator();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/driver/KOISkeletonMasterManipulator.java
================================================
package com.pinecone.hydra.system.ko.driver;
import com.pinecone.framework.system.prototype.Pinenut;
public interface KOISkeletonMasterManipulator extends Pinenut {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/entity/ObjectHandle.java
================================================
package com.pinecone.hydra.system.ko.entity;
import com.pinecone.hydra.system.ko.handle.HandleObject;
public interface ObjectHandle extends HandleObject {
String FunctionName = HandleObject.class.getSimpleName();
@Override
default String objectFunctionName() {
return FunctionName;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/entity/ObjectTable.java
================================================
package com.pinecone.hydra.system.ko.entity;
import com.pinecone.framework.system.prototype.Pinenut;
public interface ObjectTable extends Pinenut {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/handle/AppliableKHandle.java
================================================
package com.pinecone.hydra.system.ko.handle;
import com.pinecone.framework.util.id.GUID;
public interface AppliableKHandle extends KHandle {
KHandle applyTreeNodeName( String szTreeNodeName );
KHandle applyTreeNodeGuid( GUID treeNodeGuid ) ;
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/handle/ArchKHandle.java
================================================
package com.pinecone.hydra.system.ko.handle;
import com.pinecone.framework.util.id.GUID;
public abstract class ArchKHandle implements KHandle {
protected String mszTreeNodeName;
protected GUID mTreeNodeGuid;
public ArchKHandle( String treeNodeName, GUID treeNodeGuid ) {
this.mszTreeNodeName = treeNodeName;
this.mTreeNodeGuid = treeNodeGuid;
}
protected ArchKHandle() {
this( null, null );
}
public KHandle applyTreeNodeName( String szTreeNodeName ) {
this.mszTreeNodeName = szTreeNodeName;
return this;
}
public KHandle applyTreeNodeGuid( GUID treeNodeGuid ) {
this.mTreeNodeGuid = treeNodeGuid;
return this;
}
@Override
public String getName() {
return this.mszTreeNodeName;
}
@Override
public GUID getGuid() {
return this.mTreeNodeGuid;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/handle/HandleObject.java
================================================
package com.pinecone.hydra.system.ko.handle;
import com.pinecone.hydra.system.ko.KernelObject;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
public interface HandleObject extends TreeNode, KernelObject {
String FunctionName = HandleObject.class.getSimpleName().replace( "Object", "" );
@Override
default String objectFunctionName() {
return FunctionName;
}
@Override
default String objectCategoryName() {
return "Handle";
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/handle/HandleType.java
================================================
package com.pinecone.hydra.system.ko.handle;
public enum HandleType {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/handle/KHandle.java
================================================
package com.pinecone.hydra.system.ko.handle;
public interface KHandle extends HandleObject {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/handle/KOMMountPointHandle.java
================================================
package com.pinecone.hydra.system.ko.handle;
import com.pinecone.hydra.system.ko.kom.KOMInstrument;
public interface KOMMountPointHandle extends ObjectTreeAddressingSectionHandle, KOMInstrument {
KOMInstrument revealWrapped();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/handle/ObjectTreeAddressingSectionHandle.java
================================================
package com.pinecone.hydra.system.ko.handle;
import com.pinecone.hydra.unit.imperium.entity.EntityNode;
public interface ObjectTreeAddressingSectionHandle extends KHandle, SectionHandle {
EntityNode queryNode( String path );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/handle/ObjectTreeGUIDAddressingSectionHandle.java
================================================
package com.pinecone.hydra.system.ko.handle;
import com.pinecone.framework.util.id.GUID;
public interface ObjectTreeGUIDAddressingSectionHandle extends KHandle, SectionHandle {
GUID queryGUIDByPath( String path );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/handle/SectionHandle.java
================================================
package com.pinecone.hydra.system.ko.handle;
public interface SectionHandle extends HandleObject {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/ArchKOMTree.java
================================================
package com.pinecone.hydra.system.ko.kom;
import com.pinecone.framework.system.Nullable;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.lang.DynamicFactory;
import com.pinecone.framework.util.lang.GenericDynamicFactory;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.framework.util.name.path.PathResolver;
import com.pinecone.framework.util.uoi.UOI;
import com.pinecone.hydra.system.Hydrogen;
import com.pinecone.hydra.system.centrum.UniformCentralSystem;
import com.pinecone.hydra.system.ko.CascadeInstrument;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.hydra.system.ko.driver.KOIMasterManipulator;
import com.pinecone.hydra.unit.imperium.ArchRegimentObjectModel;
import com.pinecone.hydra.unit.imperium.ImperialTreeNode;
import com.pinecone.hydra.unit.imperium.ImperialTree;
import com.pinecone.hydra.unit.imperium.GUIDImperialTrieNode;
import com.pinecone.hydra.unit.imperium.entity.EntityNode;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
import com.pinecone.hydra.unit.imperium.operator.OperatorFactory;
import com.pinecone.hydra.unit.imperium.operator.TreeNodeOperator;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.ulf.util.guid.GUIDs;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public abstract class ArchKOMTree extends ArchRegimentObjectModel implements KOMInstrument {
protected Namespace mThisNamespace;
protected KOMInstrument mParentInstrument;
protected Hydrogen hydrogen;
protected Processum superiorProcess;
protected GuidAllocator guidAllocator;
protected OperatorFactory operatorFactory;
protected PathResolver pathResolver;
protected PathSelector pathSelector;
protected DynamicFactory dynamicFactory;
public ArchKOMTree (
Processum superiorProcess, KOIMasterManipulator masterManipulator,
OperatorFactory operatorFactory, KernelObjectConfig kernelObjectConfig, PathSelector pathSelector,
KOMInstrument parent, String name, String superiorPathScope, @Nullable GuidAllocator guidAllocator
){
this( superiorProcess, masterManipulator, kernelObjectConfig, parent, name, superiorPathScope, guidAllocator );
this.pathSelector = pathSelector;
this.operatorFactory = operatorFactory;
}
public ArchKOMTree (
Processum superiorProcess, KOIMasterManipulator masterManipulator, KernelObjectConfig kernelObjectConfig,
KOMInstrument parent, String name, String superiorPathScope, @Nullable GuidAllocator guidAllocator
){
super( masterManipulator, kernelObjectConfig, superiorPathScope );
this.superiorProcess = superiorProcess;
if ( this.superiorProcess instanceof Hydrogen) {
this.hydrogen = (Hydrogen) this.superiorProcess;
}
else {
this.hydrogen = (Hydrogen) superiorProcess.parentSystem();
}
this.guidAllocator = guidAllocator;
this.dynamicFactory = new GenericDynamicFactory( this.superiorProcess.getTaskManager().getClassLoader() );
this.mParentInstrument = parent;
this.setTargetingName( name );
this.prepare_uniform_skeleton();
}
protected void prepare_uniform_skeleton() {
if ( this.superiorProcess != null ) {
if ( this.guidAllocator == null && this.hydrogen instanceof UniformCentralSystem ) {
UniformCentralSystem system = (UniformCentralSystem) this.hydrogen;
this.guidAllocator = system.getSystemGuidAllocator();
}
}
if ( this.guidAllocator == null ) {
throw new IllegalArgumentException( "GUIDAllocator is undefined." );
}
}
//************************************** CascadeInstrument **************************************
@Override
public KOMInstrument parent() {
return this.mParentInstrument;
}
@Override
public Processum getSuperiorProcess() {
return this.superiorProcess;
}
@Override
public void setParent( CascadeInstrument parent ) {
this.mParentInstrument = (KOMInstrument) parent;
}
@Override
public Namespace getTargetingName() {
return this.mThisNamespace;
}
@Override
public void setTargetingName( Namespace name ) {
this.mThisNamespace = name;
}
//************************************** CascadeInstrument End **************************************
@Override
public void applyGuidAllocator( GuidAllocator guidAllocator ) {
this.guidAllocator = guidAllocator;
}
@Override
public GUID put( TreeNode treeNode ) {
TreeNodeOperator operator = this.operatorFactory.getOperator( treeNode.getMetaType() );
return operator.insert( treeNode );
}
@Override
public boolean contains( GUID nodeGuid ) {
return this.imperialTree.contains( nodeGuid );
}
@Override
public TreeNode get( GUID guid, int depth ) {
return this.getOperatorByGuid( guid ).get( guid, depth );
}
@Override
public TreeNode getAsRootDepth( GUID guid ) {
return this.getOperatorByGuid( guid ).getAsRootDepth( guid );
}
protected String getNS( GUID guid, String szSeparator ) {
String path = this.imperialTree.getCachePath(guid);
if ( path != null ) {
return path;
}
ImperialTreeNode node = this.imperialTree.getNode(guid);
if ( node == null ) {
return null;
}
GUID owner = this.imperialTree.getOwner(guid);
if ( owner == null ){
String assemblePath = this.getNodeName(node);
while ( !node.getParentGUIDs().isEmpty() && this.allNonNull( node.getParentGUIDs() ) ){
List parentGuids = node.getParentGUIDs();
for( int i = 0; i < parentGuids.size(); ++i ){
if ( parentGuids.get(i) != null ){
node = this.imperialTree.getNode( parentGuids.get(i) );
break;
}
}
String nodeName = this.getNodeName(node);
assemblePath = nodeName + szSeparator + assemblePath;
}
this.imperialTree.insertCachePath( guid, assemblePath );
return assemblePath;
}
else{
String assemblePath = this.getNodeName( node );
while ( !node.getParentGUIDs().isEmpty() && this.allNonNull( node.getParentGUIDs() ) ){
node = this.imperialTree.getNode( owner );
String nodeName = this.getNodeName( node );
assemblePath = nodeName + szSeparator + assemblePath;
owner = this.imperialTree.getOwner( node.getGuid() );
}
this.imperialTree.insertCachePath( guid, assemblePath );
return assemblePath;
}
}
@Override
public String getPath( GUID guid ) {
return this.getNS( guid, this.kernelObjectConfig.getPathNameSeparator() );
}
@Override
public String getFullName( GUID guid ) {
return this.getNS( guid, this.kernelObjectConfig.getFullNameSeparator() );
}
protected TreeNodeOperator getOperatorByGuid( GUID guid ) {
ImperialTreeNode node = this.imperialTree.getNode( guid );
if ( node == null ){
return null;
}
TreeNode newInstance = (TreeNode)node.getType().newInstance( new Class >[]{this.getClass()}, this );
return this.operatorFactory.getOperator( newInstance.getMetaType() );
}
@Override
public TreeNode get( GUID guid ) {
TreeNodeOperator operator = this.getOperatorByGuid( guid );
if( operator == null ) {
return null;
}
return operator.get( guid );
}
/** Final Solution 20240929: 无法获取类型 */
@Override
public GUID queryGUIDByNS( String path, String szBadSep, String szTargetSep ) {
if( szTargetSep != null ) {
path = path.replace( szBadSep, szTargetSep );
}
String[] parts = this.pathResolver.segmentPathParts( path );
List resolvedParts = this.pathResolver.resolvePath( parts );
path = this.pathResolver.assemblePath( resolvedParts );
GUID guid = this.imperialTree.queryGUIDByPath( path );
if ( guid != null ){
return guid;
}
guid = this.pathSelector.searchGUID( resolvedParts );
if( guid != null ){
this.imperialTree.insertCachePath( guid, path );
}
return guid;
}
@Override
public GUID queryGUIDByPath( String path ) {
return this.queryGUIDByNS( path, null, null );
}
@Override
public void remove( GUID guid ) {
GUIDImperialTrieNode node = this.imperialTree.getNode( guid );
TreeNode newInstance = (TreeNode)node.getType().newInstance();
TreeNodeOperator operator = this.operatorFactory.getOperator( newInstance.getMetaType() );
operator.purge( guid );
}
@Override
public abstract Object queryEntityHandleByNS( String path, String szBadSep, String szTargetSep ) ;
public Object queryEntityHandle( String path ) {
return this.queryEntityHandleByNS( path, null, null );
}
@Override
public void remove( String path ) {
Object handle = this.queryEntityHandle( path );
if( handle instanceof GUID ) {
this.remove( (GUID) handle );
}
}
@Override
public List getChildren( GUID guid ) {
List childNodes = this.imperialTree.getChildren( guid );
ArrayList nodes = new ArrayList<>();
for( GUIDImperialTrieNode node : childNodes ){
TreeNode treeNode = this.get(node.getGuid());
nodes.add( treeNode );
}
return nodes;
}
@Override
public List fetchChildrenGuids( GUID guid ) {
return this.imperialTree.fetchChildrenGuids( guid );
}
public EntityNode queryNodeByNS( String path, String szBadSep, String szTargetSep ) {
Object ret = this.queryEntityHandleByNS( path, szBadSep, szTargetSep );
if( ret instanceof EntityNode ) {
return (EntityNode) ret;
}
else if( ret instanceof GUID ) {
return this.get( (GUID) ret );
}
return null;
}
public TreeNode queryTreeNodeByNS( String path, String szBadSep, String szTargetSep ) {
Object ret = this.queryEntityHandleByNS( path, szBadSep, szTargetSep );
if( ret instanceof TreeNode ) {
return (TreeNode) ret;
}
else if( ret instanceof GUID ) {
return this.get( (GUID) ret );
}
return null;
}
@Override
public List extends TreeNode > fetchRoot() {
List guids = this.imperialTree.fetchRoot();
ArrayList treeNodes = new ArrayList<>();
for( GUID guid : guids ){
TreeNode treeNode = this.get(guid);
treeNodes.add(treeNode);
}
return treeNodes;
}
@Override
public void rename( GUID guid, String name ) {
GUIDImperialTrieNode node = this.imperialTree.getNode(guid);
TreeNode newInstance = (TreeNode)node.getType().newInstance();
TreeNodeOperator operator = this.operatorFactory.getOperator( newInstance.getMetaType() );
operator.updateName( guid, name );
this.imperialTree.removeCachePath( guid );
}
@Override
public EntityNode queryNode( String path ) {
return this.queryNodeByNS( path, null, null );
}
@Override
public TreeNode queryTreeNode( String path ) {
return this.queryTreeNodeByNS( path, null, null );
}
@Override
public GUID queryGUIDByFN( String fullName ) {
return this.queryGUIDByNS(
fullName, this.kernelObjectConfig.getFullNameSeparator(), this.kernelObjectConfig.getPathNameSeparator()
);
}
private String getNodeName( ImperialTreeNode node ){
UOI type = node.getType();
TreeNode newInstance = (TreeNode)type.newInstance();
TreeNodeOperator operator = this.operatorFactory.getOperator(newInstance.getMetaType());
TreeNode treeNode = operator.get(node.getGuid());
return treeNode.getName();
}
private boolean allNonNull( List> list ) {
return list.stream().noneMatch( Objects::isNull );
}
@Override
public GuidAllocator getGuidAllocator() {
return this.guidAllocator;
}
@Override
public ImperialTree getMasterTrieTree() {
return this.imperialTree;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/ArchReparseKOMTree.java
================================================
package com.pinecone.hydra.system.ko.kom;
import com.pinecone.framework.system.Nullable;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.hydra.system.identifier.KOPathResolver;
import com.pinecone.hydra.system.ko.CascadeInstrument;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.hydra.system.ko.driver.KOIMasterManipulator;
import com.pinecone.hydra.unit.imperium.entity.ReparseLinkNode;
import com.pinecone.hydra.unit.imperium.operator.OperatorFactory;
public abstract class ArchReparseKOMTree extends ArchKOMTree implements ReparseKOMTree {
protected ReparseKOMTreeAddition mReparseKOM;
public ArchReparseKOMTree(
Processum superiorProcess, KOIMasterManipulator masterManipulator , OperatorFactory operatorFactory, KernelObjectConfig kernelObjectConfig, PathSelector pathSelector,
KOMInstrument parent, String name, String superiorPathScope, @Nullable GuidAllocator guidAllocator
){
this( superiorProcess, masterManipulator, kernelObjectConfig, parent, name, superiorPathScope, guidAllocator );
this.pathResolver = new KOPathResolver( kernelObjectConfig );
this.pathSelector = pathSelector;
this.operatorFactory = operatorFactory;
this.mReparseKOM = new GenericReparseKOMTreeAddition( this );
}
public ArchReparseKOMTree (
Processum superiorProcess, KOIMasterManipulator masterManipulator ,KernelObjectConfig kernelObjectConfig, KOMInstrument parent, String name, String superiorPathScope, @Nullable GuidAllocator guidAllocator
){
super( superiorProcess, masterManipulator, kernelObjectConfig, parent, name, superiorPathScope, guidAllocator );
}
public ArchReparseKOMTree (
Processum superiorProcess, KOIMasterManipulator masterManipulator ,KernelObjectConfig kernelObjectConfig, KOMInstrument parent, String name, @Nullable GuidAllocator guidAllocator
){
this( superiorProcess, masterManipulator, kernelObjectConfig, parent, name, CascadeInstrument.EmptySuperiorPathScope, guidAllocator );
}
@Override
public ReparseLinkNode queryReparseLinkByNS( String path, String szBadSep, String szTargetSep ) {
return this.mReparseKOM.queryReparseLinkByNS( path, szBadSep, szTargetSep );
}
@Override
public ReparseLinkNode queryReparseLink( String path ) {
return this.queryReparseLinkByNS( path, null, null );
}
@Override
public void affirmOwnedNode( GUID parentGuid, GUID childGuid ) {
this.mReparseKOM.affirmOwnedNode( parentGuid, childGuid );
}
@Override
public void newHardLink( GUID sourceGuid, GUID targetGuid ) {
this.mReparseKOM.newHardLink( sourceGuid, targetGuid );
}
@Override
public void newLinkTag( GUID originalGuid, GUID dirGuid, String tagName ) {
this.mReparseKOM.newLinkTag( originalGuid, dirGuid, tagName);
}
@Override
public void updateLinkTag( GUID tagGuid, String tagName ) {
this.mReparseKOM.updateLinkTag( tagGuid, tagName );
}
@Override
public void removeReparseLink( GUID guid ) {
this.mReparseKOM.removeReparseLink( guid );
}
@Override
public void newLinkTag( String originalPath, String dirPath, String tagName ) {
this.mReparseKOM.newLinkTag( originalPath, dirPath, tagName );
}
/** ReparseLinkNode or GUID **/
@Override
public Object queryEntityHandleByNS( String path, String szBadSep, String szTargetSep ) {
return this.mReparseKOM.queryEntityHandleByNS( path, szBadSep, szTargetSep );
}
@Override
public void remove( String path ) {
this.mReparseKOM.remove( path );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/ExpressInstrument.java
================================================
package com.pinecone.hydra.system.ko.kom;
import com.pinecone.hydra.system.ko.runtime.CentralizedRuntimeInstrument;
import com.pinecone.hydra.system.ko.runtime.DirectMappingTrieRuntimeInstrument;
public interface ExpressInstrument extends CentralizedRuntimeInstrument, DirectMappingTrieRuntimeInstrument {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/GenericReparseKOMTreeAddition.java
================================================
package com.pinecone.hydra.system.ko.kom;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.imperium.ImperialTree;
import com.pinecone.hydra.unit.imperium.entity.ReparseLinkNode;
public class GenericReparseKOMTreeAddition implements ReparseKOMTreeAddition {
protected ArchKOMTree mKOMTree;
protected ImperialTree mImperialTree;
protected ReparsePointSelector mReparsePointSelector;
public GenericReparseKOMTreeAddition( ArchKOMTree tree, ReparsePointSelector reparsePointSelector ) {
this.mKOMTree = tree;
this.mImperialTree = tree.getMasterTrieTree();
this.mReparsePointSelector = reparsePointSelector ;
}
public GenericReparseKOMTreeAddition( ArchKOMTree tree ) {
this.mKOMTree = tree;
this.mImperialTree = tree.getMasterTrieTree();
this.mReparsePointSelector = new ReparseLinkSelector( (MultiFolderPathSelector) this.mKOMTree.pathSelector ) ;
}
@Override
public ReparseLinkNode queryReparseLinkByNS(String path, String szBadSep, String szTargetSep ) {
if( szTargetSep != null ) {
path = path.replace( szBadSep, szTargetSep );
}
String[] parts = this.mKOMTree.pathResolver.segmentPathParts( path );
return this.mReparsePointSelector.searchLinkNode( parts );
}
@Override
public ReparseLinkNode queryReparseLink(String path) {
return this.queryReparseLinkByNS( path, null, null );
}
@Override
public void affirmOwnedNode( GUID parentGuid, GUID childGuid ) {
this.mImperialTree.affirmOwnedNode( childGuid, parentGuid );
}
@Override
public void newHardLink( GUID sourceGuid, GUID targetGuid ) {
this.mImperialTree.newHardLink( sourceGuid, targetGuid );
}
@Override
public void newLinkTag( GUID originalGuid, GUID dirGuid, String tagName ) {
this.mImperialTree.newLinkTag( originalGuid, dirGuid, tagName, this.mKOMTree );
}
@Override
public void updateLinkTag( GUID tagGuid, String tagName ) {
this.mImperialTree.updateLinkTagName( tagGuid, tagName );
}
@Override
public void removeReparseLink( GUID guid ) {
this.mImperialTree.removeReparseLink( guid );
}
@Override
public void newLinkTag(String originalPath, String dirPath, String tagName) {
GUID originalGuid = this.mKOMTree.queryGUIDByPath( originalPath );
GUID dirGuid = this.mKOMTree.queryGUIDByPath( dirPath );
if( this.mImperialTree.getOriginalGuid( tagName, dirGuid ) == null ) {
this.mImperialTree.newLinkTag( originalGuid, dirGuid, tagName, this.mKOMTree );
}
}
/** ReparseLinkNode or GUID **/
@Override
public Object queryEntityHandleByNS( String path, String szBadSep, String szTargetSep ) {
if( szTargetSep != null ) {
path = path.replace( szBadSep, szTargetSep );
}
String[] parts = this.mKOMTree.pathResolver.segmentPathParts( path );
return this.mReparsePointSelector.search( parts );
}
@Override
public void remove( String path ) {
Object handle = this.mKOMTree.queryEntityHandle( path );
if( handle instanceof GUID ) {
this.mKOMTree.remove( (GUID) handle );
}
else if( handle instanceof ReparseLinkNode ) {
ReparseLinkNode linkNode = (ReparseLinkNode) handle;
this.removeReparseLink( linkNode.getTagGuid() );
}
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/KOMInstrument.java
================================================
package com.pinecone.hydra.system.ko.kom;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.hydra.system.ko.CascadeKOTreeInstrument;
import com.pinecone.hydra.system.ko.QueryableInstrument;
import com.pinecone.hydra.unit.imperium.entity.EntityNode;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
import java.util.Collection;
import java.util.List;
public interface KOMInstrument extends CascadeKOTreeInstrument, QueryableInstrument {
@Override
KOMInstrument parent();
void applyGuidAllocator( GuidAllocator guidAllocator );
@Override
default void setTargetingName( String name ) {
CascadeKOTreeInstrument.super.setTargetingName( name );
}
@Override
String getPath( GUID objectGuid );
@Override
String querySystemKernelObjectPath( GUID objectGuid ) ;
String getFullName( GUID objectGuid );
@Override
GUID queryGUIDByPath( String path );
GUID queryGUIDByFN ( String fullName );
default GUID assertPath( String path, String pathType ) throws IllegalArgumentException {
GUID guid = this.queryGUIDByPath( path );
if( guid == null ) {
throw new IllegalArgumentException( "Undefined " + pathType + " '" + path + "'" );
}
return guid;
}
default GUID assertPath( String path ) throws IllegalArgumentException {
return this.assertPath( path, "path" );
}
boolean contains( GUID nodeGuid );
GUID put( TreeNode treeNode );
TreeNode get( GUID objectGuid );
GUID queryGUIDByNS( String path, String szBadSep, String szTargetSep );
TreeNode get( GUID guid, int depth );
TreeNode getAsRootDepth( GUID guid );
void remove( GUID guid );
void remove( String path );
Collection getChildren( GUID guid );
Collection fetchChildrenGuids( GUID guid );
Object queryEntityHandleByNS( String path, String szBadSep, String szTargetSep );
@Override
EntityNode queryNode( String path );
TreeNode queryTreeNode( String path );
List extends TreeNode > fetchRoot();
void rename( GUID guid, String name );
Processum getSuperiorProcess();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/KOMSelector.java
================================================
package com.pinecone.hydra.system.ko.kom;
import java.util.List;
import com.pinecone.framework.system.prototype.Pinenut;
/**
* Kernel Object Model
* Same as Document Object Model (DOM)
*/
public interface KOMSelector extends Pinenut {
// Return with json.
Object querySelectorJ ( String szSelector );
Object querySelector ( String szSelector );
List querySelectorAll ( String szSelector );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/MultiFolderPathSelector.java
================================================
package com.pinecone.hydra.system.ko.kom;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import com.pinecone.framework.system.Nullable;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.json.JSON;
import com.pinecone.framework.util.name.path.PathResolver;
import com.pinecone.hydra.system.ko.dao.GUIDNameManipulator;
import com.pinecone.hydra.unit.imperium.ImperialTree;
public class MultiFolderPathSelector implements PathSelector {
protected PathResolver pathResolver;
protected ImperialTree imperialTree;
protected GUIDNameManipulator[] dirManipulators;
protected GUIDNameManipulator[] fileManipulators;
public MultiFolderPathSelector(PathResolver pathResolver, ImperialTree trieTree, GUIDNameManipulator[] dirMans, GUIDNameManipulator[] fileMans ) {
this.pathResolver = pathResolver;
this.imperialTree = trieTree;
this.dirManipulators = dirMans;
this.fileManipulators = fileMans;
}
@Override
public GUID searchGUID( String[] parts ) {
return this.searchGUID( parts, null );
}
@Override
public GUID searchGUID( String[] parts, @Nullable String[] lpResolvedPath ) {
List resolvedParts = this.pathResolver.resolvePath( parts );
if( lpResolvedPath != null ) {
lpResolvedPath[ 0 ] = this.pathResolver.assemblePath( resolvedParts );
}
return this.searchGUID( resolvedParts );
}
@Override
public GUID searchGUID( List resolvedParts ) {
//return dfsSearchGUID(fileMan, dirMan, resolvedParts, 0, null);
return (GUID) this.dfsSearch( resolvedParts );
}
@Override
public GUID searchGUID( GUID parentId, String[] parts ) {
return this.searchGUID( parentId, parts, null );
}
@Override
public GUID searchGUID( GUID parentId, String[] parts, @Nullable String[] lpResolvedPath ) {
List resolvedParts = this.pathResolver.resolvePath( parts );
if( lpResolvedPath != null ) {
lpResolvedPath[ 0 ] = this.pathResolver.assemblePath( resolvedParts );
}
return this.searchGUID( parentId, resolvedParts );
}
@Override
public GUID searchGUID( GUID parentId, List resolvedParts ) {
//return dfsSearchGUID(fileMan, dirMan, resolvedParts, 0, null);
return (GUID) this.dfsSearch( parentId, resolvedParts );
}
@Override
public Object querySelector( String szSelector ) {
return this.searchGUID( this.pathResolver.resolvePathParts( szSelector ) );
}
@Override
public List querySelectorAll( String szSelector ) {
return List.of( this.querySelector( szSelector ) ) ;
}
@Override
public Object querySelectorJ( String szSelector ) {
return JSON.stringify( this.querySelector( szSelector ) );
}
protected Object dfsSearch( List parts ) {
return this.dfsSearch( null, parts );
}
/** Iterative DFS, 迭代 DFS 法 **/
protected Object dfsSearch( GUID parentId, List parts ) {
Stack stack = new Stack<>();
stack.push( new StandardPathSelector.SearchArgs( parentId, 0 ) );
while ( !stack.isEmpty() ) {
StandardPathSelector.SearchArgs currentArgs = stack.pop();
int depth = currentArgs.depth;
GUID parentGuid = currentArgs.parentGuid;
// If we've reached the last part, try to match the current part with all file manipulators
// 如果是第一个部分,判断路径长度,来决定查询器的使用
if ( depth == parts.size() ) {
continue;
}
String currentPart = parts.get( depth );
List guids;
if ( depth == 0 ) {
if ( parts.size() > 1 ) {
// Case1: If more than one part, first part can only be a directory.
guids = this.searchDirAndLinksFirstCase( currentPart );
}
else {
// Case2: If there's only one part, it could be either file or directory.
// 只有一个部分,可能是文件或文件夹,查询所有操纵器. [且必须是Root]
guids = this.fetchAllGuidsRootCase( currentPart );
}
}
else {
// Case3: For middle and last parts, retrieve children GUIDs using distributedTrieTree
guids = this.imperialTree.fetchChildrenGuids( parentGuid );
}
if ( guids == null || guids.isEmpty() ) {
continue;
}
for ( GUID guid : guids ) {
Object blocker = this.tryTerminationBlock( currentPart, guid );
if ( blocker != null ) {
return blocker;
}
if ( this.isGuidMatchingPartName( guid, currentPart, depth, parts.size() ) ) {
if ( depth == parts.size() - 1 ) {
return this.beforeDFSTermination( currentPart, guid );
}
stack.push( new StandardPathSelector.SearchArgs( guid, depth + 1 ) );
}
}
}
return null;
}
/** Recursive DFS, 废弃递归 DFS 法,留着考古**/
@Deprecated
protected Object dfsSearch( List parts, int depth, GUID parentGuid ) {
String currentPart = parts.get(depth);
List guids;
if ( depth == 0 ) {
if ( parts.size() > 1 ) {
// Case1: If more than one part, first part can only be a directory.
guids = this.searchDirAndLinksFirstCase( currentPart );
}
else {
// Case2: If there's only one part, it could be either file or directory.
// 只有一个部分,可能是文件或文件夹,查询所有操纵器. [且必须是Root]
guids = /*this.*/fetchAllGuidsRootCase( currentPart );
}
}
else {
// Case3: For middle and last parts, retrieve children GUIDs using distributedTrieTree
guids = this.imperialTree.fetchChildrenGuids( parentGuid );
}
if ( guids == null || guids.isEmpty() ) {
return null;
}
// 索引法遍历所有可能的 GUID,并继续向下递归.
// Indexing method traverses all possible GUIs and continues to recursively descend.
for ( GUID guid : guids ) {
// Using index to find.
Object blocker = this.tryTerminationBlock( currentPart, guid );
if ( blocker != null ) {
return blocker;
}
if ( this.isGuidMatchingPartName( guid, currentPart, depth, parts.size() ) ) {
if ( depth == parts.size() - 1 ) {
return this.beforeDFSTermination( currentPart, guid );
}
Object result = this.dfsSearch( parts, depth + 1, guid );
if ( result != null ) {
return result;
}
}
}
return null;
}
protected Object beforeDFSTermination( String currentPart, GUID guid ) {
return guid;
}
protected Object tryTerminationBlock( String currentPart, GUID guid ) {
return null;
}
protected boolean checkPartInAllManipulators( GUID guid, String partName ) {
for ( GUIDNameManipulator manipulator : this.fileManipulators ) {
List guids = manipulator.getGuidsByNameID( partName, guid );
if ( guids != null && !guids.isEmpty() ) {
return true;
}
}
List guids = this.searchDirAndLinks( guid, partName );
return guids != null && !guids.isEmpty();
}
protected boolean isGuidMatchingPartName( GUID guid, String partName, int depth, int nParts ) {
// 在中间部分只匹配文件夹,最后一部分匹配文件和文件夹
// In the last part, check both files and directories
if ( depth == nParts - 1 ) {
return this.checkPartInAllManipulators( guid, partName );
}
else {
// Middle part: Directory only.
//List guids = this.dirManipulator.getGuidsByNameID( partName, guid );
List guids = this.searchDirAndLinks( guid, partName );
return guids != null && !guids.isEmpty();
}
}
protected List searchLinks ( GUID guid, String partName ) {
GUID linkGuid = this.imperialTree.getOriginalGuidByNodeGuid( partName, guid );
if( linkGuid != null ) {
return List.of( linkGuid );
}
return null;
}
protected List searchDirAndLinks ( GUID guid, String partName ) {
for( GUIDNameManipulator dirMans : this.dirManipulators ) {
List guids = dirMans.getGuidsByNameID( partName, guid );
if( guids != null && !guids.isEmpty() ) {
return guids;
}
}
return this.searchLinks( guid, partName );
}
protected List searchLinksFirstCase ( String partName ) {
return this.imperialTree.fetchOriginalGuidRoot( partName );
}
protected List searchDirAndLinksFirstCase ( String partName ) {
for( GUIDNameManipulator dirMans : this.dirManipulators ) {
List guids = dirMans.getGuidsByName( partName );
if( guids != null && !guids.isEmpty() ) {
return guids;
}
}
return this.searchLinksFirstCase( partName );
}
protected List fetchDirsAllGuids( String partName ) {
if( this.dirManipulators.length > 0 ) {
List guids = this.dirManipulators[ 0 ].getGuidsByName( partName );
for ( int i = 1; i < this.dirManipulators.length; ++i ) {
guids.addAll( this.dirManipulators[ i ].getGuidsByName( partName ) );
}
guids.removeIf( guid -> !this.imperialTree.isRoot( guid ) );
return guids;
}
return new ArrayList<>();
}
protected void fetchAllOriginalGuidsRootCase( List guids, String partName ) {
guids.addAll( this.imperialTree.fetchOriginalGuidRoot( partName ) );
}
protected List fetchAllGuidsRootCase( String partName ) {
List guids = this.fetchDirsAllGuids( partName );
// Notice: Critical error, querying root element should checks if it is the root.
for ( GUIDNameManipulator manipulator : this.fileManipulators ) {
List gs = manipulator.getGuidsByName( partName );
for( GUID guid : gs ) {
if( this.imperialTree.isRoot( guid ) ) {
guids.add( guid );
}
}
}
this.fetchAllOriginalGuidsRootCase( guids, partName );
return guids;
}
static class SearchArgs {
GUID parentGuid;
int depth;
SearchArgs( GUID parentGuid, int depth ) {
this.parentGuid = parentGuid;
this.depth = depth;
}
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/PathSelector.java
================================================
package com.pinecone.hydra.system.ko.kom;
import java.util.List;
import com.pinecone.framework.system.Nullable;
import com.pinecone.framework.util.id.GUID;
public interface PathSelector extends KOMSelector {
GUID searchGUID( String[] parts );
GUID searchGUID( String[] parts, @Nullable String[] lpResolvedPath );
GUID searchGUID( List resolvedParts );
GUID searchGUID( GUID parentID, String[] parts );
GUID searchGUID( GUID parentID, String[] parts, @Nullable String[] lpResolvedPath );
GUID searchGUID( GUID parentID, List resolvedParts );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/ProxiedKOMMountPointHandle.java
================================================
package com.pinecone.hydra.system.ko.kom;
import java.util.Collection;
import java.util.List;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.hydra.system.ko.CascadeInstrument;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.hydra.system.ko.handle.ArchKHandle;
import com.pinecone.hydra.system.ko.handle.KOMMountPointHandle;
import com.pinecone.hydra.unit.imperium.ImperialTree;
import com.pinecone.hydra.unit.imperium.entity.EntityNode;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
public class ProxiedKOMMountPointHandle extends ArchKHandle implements KOMMountPointHandle {
protected KOMInstrument mWarpedInstrument;
public ProxiedKOMMountPointHandle( String treeNodeName, GUID treeNodeGuid, KOMInstrument warpedInstrument ) {
super( treeNodeName, treeNodeGuid );
this.mWarpedInstrument = warpedInstrument;
}
@Override
public void applyGuidAllocator( GuidAllocator guidAllocator ) {
this.mWarpedInstrument.applyGuidAllocator( guidAllocator );
}
@Override
public KOMInstrument revealWrapped() {
return this.mWarpedInstrument;
}
@Override
public KOMInstrument parent() {
return this.mWarpedInstrument.parent();
}
@Override
public void setParent( CascadeInstrument parent ) {
this.mWarpedInstrument.setParent( parent );
}
@Override
public Namespace getTargetingName() {
return this.mWarpedInstrument.getTargetingName();
}
@Override
public void setTargetingName( Namespace name ) {
this.mWarpedInstrument.setTargetingName( name );
}
@Override
public String getSuperiorPathScope() {
return this.mWarpedInstrument.getSuperiorPathScope();
}
@Override
public void applySuperiorPathScope( String superiorPathScope ) {
this.mWarpedInstrument.applySuperiorPathScope( superiorPathScope );
}
@Override
public String getPath( GUID objectGuid ) {
return this.mWarpedInstrument.getPath( objectGuid );
}
@Override
public String querySystemKernelObjectPath( GUID objectGuid ) {
return this.mWarpedInstrument.querySystemKernelObjectPath( objectGuid );
}
@Override
public String getFullName( GUID objectGuid ) {
return this.mWarpedInstrument.getFullName( objectGuid );
}
@Override
public GUID queryGUIDByPath( String path ) {
return this.mWarpedInstrument.queryGUIDByPath( path );
}
@Override
public GUID queryGUIDByFN( String fullName ) {
return this.mWarpedInstrument.queryGUIDByFN( fullName );
}
@Override
public boolean contains( GUID nodeGuid ) {
return this.mWarpedInstrument.contains( nodeGuid );
}
@Override
public GUID put( TreeNode treeNode ) {
return this.mWarpedInstrument.put( treeNode );
}
@Override
public TreeNode get( GUID objectGuid ) {
return this.mWarpedInstrument.get( objectGuid );
}
@Override
public GUID queryGUIDByNS( String path, String szBadSep, String szTargetSep ) {
return this.mWarpedInstrument.queryGUIDByNS( path, szBadSep, szTargetSep );
}
@Override
public TreeNode get( GUID guid, int depth ) {
return this.mWarpedInstrument.get( guid, depth );
}
@Override
public TreeNode getAsRootDepth( GUID guid ) {
return this.mWarpedInstrument.getAsRootDepth( guid );
}
@Override
public void remove( GUID guid ) {
this.mWarpedInstrument.remove( guid );
}
@Override
public void remove( String path ) {
this.mWarpedInstrument.remove( path );
}
@Override
public Collection getChildren( GUID guid ) {
return this.mWarpedInstrument.getChildren( guid );
}
@Override
public Collection fetchChildrenGuids( GUID guid ) {
return this.mWarpedInstrument.fetchChildrenGuids( guid );
}
@Override
public Object queryEntityHandleByNS( String path, String szBadSep, String szTargetSep ) {
return this.mWarpedInstrument.queryEntityHandleByNS( path, szBadSep, szTargetSep );
}
@Override
public EntityNode queryNode( String path ) {
return this.mWarpedInstrument.queryNode( path );
}
@Override
public TreeNode queryTreeNode( String path ) {
return this.mWarpedInstrument.queryTreeNode( path );
}
@Override
public List extends TreeNode> fetchRoot() {
return this.mWarpedInstrument.fetchRoot();
}
@Override
public void rename( GUID guid, String name ) {
this.mWarpedInstrument.rename( guid, name );
}
@Override
public Processum getSuperiorProcess() {
return this.mWarpedInstrument.getSuperiorProcess();
}
@Override
public GuidAllocator getGuidAllocator() {
return this.mWarpedInstrument.getGuidAllocator();
}
@Override
public ImperialTree getMasterTrieTree() {
return this.mWarpedInstrument.getMasterTrieTree();
}
@Override
public KernelObjectConfig getConfig() {
return this.mWarpedInstrument.getConfig();
}
@Override
public String getName() {
return this.mszTreeNodeName;
}
@Override
public GUID getGuid() {
return this.mTreeNodeGuid;
}
@Override
public String toJSONString() {
return this.mWarpedInstrument.toJSONString();
}
@Override
public String toString() {
return this.mWarpedInstrument.toString();
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/ReparseKOMTree.java
================================================
package com.pinecone.hydra.system.ko.kom;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.imperium.entity.ReparseLinkNode;
public interface ReparseKOMTree extends KOMInstrument {
void newLinkTag( String originalPath, String dirPath, String tagName );
void removeReparseLink( GUID guid );
void affirmOwnedNode( GUID parentGuid, GUID childGuid );
void newHardLink( GUID sourceGuid, GUID targetGuid );
void newLinkTag( GUID originalGuid, GUID dirGuid, String tagName );
void updateLinkTag( GUID tagGuid, String tagName );
ReparseLinkNode queryReparseLinkByNS(String path, String szBadSep, String szTargetSep );
/** ReparseLinkNode or GUID **/
Object queryEntityHandleByNS( String path, String szBadSep, String szTargetSep );
ReparseLinkNode queryReparseLink( String path );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/ReparseKOMTreeAddition.java
================================================
package com.pinecone.hydra.system.ko.kom;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.imperium.entity.ReparseLinkNode;
public interface ReparseKOMTreeAddition extends Pinenut {
ReparseLinkNode queryReparseLinkByNS( String path, String szBadSep, String szTargetSep ) ;
ReparseLinkNode queryReparseLink( String path );
void affirmOwnedNode( GUID parentGuid, GUID childGuid ) ;
void newHardLink( GUID sourceGuid, GUID targetGuid ) ;
void newLinkTag( GUID originalGuid, GUID dirGuid, String tagName ) ;
void updateLinkTag( GUID tagGuid, String tagName ) ;
void removeReparseLink( GUID guid ) ;
void newLinkTag( String originalPath, String dirPath, String tagName ) ;
void remove( String path );
Object queryEntityHandleByNS( String path, String szBadSep, String szTargetSep );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/ReparseLinkSelector.java
================================================
package com.pinecone.hydra.system.ko.kom;
import java.util.List;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.name.path.PathResolver;
import com.pinecone.hydra.system.ko.dao.GUIDNameManipulator;
import com.pinecone.hydra.unit.imperium.ImperialTree;
import com.pinecone.hydra.unit.imperium.entity.ReparseLinkNode;
public class ReparseLinkSelector extends MultiFolderPathSelector implements ReparsePointSelector {
public ReparseLinkSelector( MultiFolderPathSelector pathSelector ) {
super( pathSelector.pathResolver, pathSelector.imperialTree, pathSelector.dirManipulators, pathSelector.fileManipulators );
}
public ReparseLinkSelector(PathResolver pathResolver, ImperialTree trieTree, GUIDNameManipulator dirMan, GUIDNameManipulator[] fileMans ) {
super( pathResolver, trieTree, new GUIDNameManipulator[]{ dirMan }, fileMans );
}
public ReparseLinkSelector(PathResolver pathResolver, ImperialTree trieTree, GUIDNameManipulator[] dirMans, GUIDNameManipulator[] fileMans ) {
super( pathResolver, trieTree, dirMans, fileMans );
}
@Override
public Object search( String[] parts ) {
List resolvedParts = this.pathResolver.resolvePath(parts);
return this.dfsSearch( resolvedParts );
}
@Override
public ReparseLinkNode searchLinkNode( String[] parts ) {
Object result = this.search( parts );
if( result instanceof ReparseLinkNode ) {
return (ReparseLinkNode) result;
}
return null;
}
@Override
protected Object beforeDFSTermination( String currentPart, GUID guid ) {
ReparseLinkNode reparseLinkNode = this.imperialTree.getReparseLinkNodeByNodeGuid( currentPart, guid );
if ( reparseLinkNode != null ) {
return reparseLinkNode;
}
return guid;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/ReparsePointSelector.java
================================================
package com.pinecone.hydra.system.ko.kom;
import com.pinecone.hydra.unit.imperium.entity.ReparseLinkNode;
public interface ReparsePointSelector extends PathSelector {
ReparseLinkNode searchLinkNode( String[] parts );
Object search( String[] parts );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/SimpleMultiFolderPathSelector.java
================================================
package com.pinecone.hydra.system.ko.kom;
import java.util.List;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.name.path.PathResolver;
import com.pinecone.hydra.system.ko.dao.GUIDNameManipulator;
import com.pinecone.hydra.unit.imperium.ImperialTree;
public class SimpleMultiFolderPathSelector extends MultiFolderPathSelector {
public SimpleMultiFolderPathSelector( PathResolver pathResolver, ImperialTree trieTree, GUIDNameManipulator[] dirMans, GUIDNameManipulator[] fileMans ) {
super( pathResolver, trieTree, dirMans, fileMans );
}
@Override
protected List searchLinks ( GUID guid, String partName ) {
return null;
}
@Override
protected List searchLinksFirstCase ( String partName ) {
return null;
}
@Override
protected void fetchAllOriginalGuidsRootCase( List guids, String partName ) {
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/SimplePathSelector.java
================================================
package com.pinecone.hydra.system.ko.kom;
import java.util.List;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.name.path.PathResolver;
import com.pinecone.hydra.system.ko.dao.GUIDNameManipulator;
import com.pinecone.hydra.unit.imperium.ImperialTree;
public class SimplePathSelector extends StandardPathSelector {
public SimplePathSelector( PathResolver pathResolver, ImperialTree trieTree, GUIDNameManipulator dirMan, GUIDNameManipulator[] fileMans ) {
super( pathResolver, trieTree, dirMan, fileMans );
}
@Override
protected List searchLinks ( GUID guid, String partName ) {
return null;
}
@Override
protected List searchLinksFirstCase ( String partName ) {
return null;
}
@Override
protected void fetchAllOriginalGuidsRootCase( List guids, String partName ) {
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/kom/StandardPathSelector.java
================================================
package com.pinecone.hydra.system.ko.kom;
import java.util.List;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.name.path.PathResolver;
import com.pinecone.hydra.system.ko.dao.GUIDNameManipulator;
import com.pinecone.hydra.unit.imperium.ImperialTree;
public class StandardPathSelector extends MultiFolderPathSelector implements PathSelector {
public StandardPathSelector(PathResolver pathResolver, ImperialTree trieTree, GUIDNameManipulator dirMan, GUIDNameManipulator[] fileMans ) {
super( pathResolver, trieTree, new GUIDNameManipulator[]{ dirMan }, fileMans );
}
public GUIDNameManipulator getDirManipulator() {
return this.dirManipulators[ 0 ];
}
@Override
protected List searchDirAndLinks ( GUID guid, String partName ) {
List guids = this.dirManipulators[ 0 ].getGuidsByNameID( partName, guid );
if( guids != null && !guids.isEmpty() ) {
return guids;
}
GUID linkGuid = this.imperialTree.getOriginalGuidByNodeGuid( partName, guid );
if( linkGuid != null ) {
return List.of( linkGuid );
}
return null;
}
@Override
protected List searchDirAndLinksFirstCase ( String partName ) {
List guids = this.dirManipulators[ 0 ].getGuidsByName( partName );
if( guids != null && !guids.isEmpty() ) {
return guids;
}
return this.imperialTree.fetchOriginalGuidRoot( partName );
}
@Override
protected List fetchDirsAllGuids(String partName ) {
List guids = this.dirManipulators[ 0 ].getGuidsByName( partName );
guids.removeIf( guid -> !this.imperialTree.isRoot( guid ) );
return guids;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/meta/ElementObject.java
================================================
package com.pinecone.hydra.system.ko.meta;
import com.pinecone.hydra.system.ko.KernelObject;
import com.pinecone.hydra.unit.imperium.entity.ElementumNode;
public interface ElementObject extends ElementumNode, KernelObject {
String FunctionName = ElementObject.class.getSimpleName().replace( "Object", "" );
@Override
default String objectFunctionName() {
return FunctionName;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/runtime/ArchDirectMappingTrieRuntimeKOMTree.java
================================================
package com.pinecone.hydra.system.ko.runtime;
import java.util.Collection;
import com.pinecone.framework.system.Nullable;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.unit.trie.DirectoryNode;
import com.pinecone.framework.unit.trie.TrieNode;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
public abstract class ArchDirectMappingTrieRuntimeKOMTree extends ArchRuntimeKOMTree implements DirectMappingTrieRuntimeInstrument {
public ArchDirectMappingTrieRuntimeKOMTree( @Nullable Processum superiorProcess, String superiorPathScope, KernelObjectConfig kernelObjectConfig, @Nullable GuidAllocator guidAllocator ) {
super( superiorProcess, superiorPathScope, kernelObjectConfig, guidAllocator );
}
@Override
public boolean hasOwnProperty( Object elm ) {
return this.mNodeIndex.hasOwnProperty( elm );
}
@Override
public boolean containsKey( Object key ) {
return this.queryGUIDByPath( key.toString() ) != null;
}
@Override
public TrieNode getOwnProperty( String path ) {
return this.mNodeIndex.queryNode( path );
}
@Override
public DirectoryNode fetchOwnChildren( String path ) {
TrieNode self = this.getOwnProperty( path );
if ( self == null ) {
return null;
}
return self.evinceDirectory();
}
@Override
public Collection fetchOwnMappingPath() {
return this.mNodeIndex.keySet();
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/runtime/ArchRuntimeKOMTree.java
================================================
package com.pinecone.hydra.system.ko.runtime;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.pinecone.framework.system.Nullable;
import com.pinecone.framework.system.RuntimeSystem;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.unit.Units;
import com.pinecone.framework.unit.trie.TrieMap;
import com.pinecone.framework.unit.trie.UniTrieMaptron;
import com.pinecone.framework.util.CollectionUtils;
import com.pinecone.framework.util.StringUtils;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.lang.DynamicFactory;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.hydra.system.centrum.UniformCentralSystem;
import com.pinecone.hydra.system.ko.CascadeInstrument;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.hydra.system.ko.handle.ObjectTreeAddressingSectionHandle;
import com.pinecone.hydra.system.ko.handle.ObjectTreeGUIDAddressingSectionHandle;
import com.pinecone.hydra.system.ko.kom.KOMInstrument;
import com.pinecone.hydra.unit.imperium.ArchUniformInstitutionalizedInstrument;
import com.pinecone.hydra.unit.imperium.ImperialTree;
import com.pinecone.hydra.unit.imperium.entity.EntityNode;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.ulf.util.guid.GUIDs;
public abstract class ArchRuntimeKOMTree extends ArchUniformInstitutionalizedInstrument implements RuntimeInstrument {
protected Namespace mThisNamespace;
protected KOMInstrument mParentInstrument;
protected TrieMap mNodeIndex;
protected Map mNodeTable;
protected Processum superiorProcess;
protected RuntimeSystem superiorSystem;
protected GuidAllocator guidAllocator;
protected DynamicFactory dynamicFactory;
protected KernelObjectConfig kernelObjectConfig;
public ArchRuntimeKOMTree( @Nullable Processum superiorProcess, String superiorPathScope, KernelObjectConfig kernelObjectConfig, @Nullable GuidAllocator guidAllocator ) {
super( superiorPathScope );
this.kernelObjectConfig = kernelObjectConfig;
this.mNodeIndex = new UniTrieMaptron<>( ConcurrentHashMap::new );
this.mNodeTable = new ConcurrentHashMap<>();
this.superiorProcess = superiorProcess;
this.guidAllocator = guidAllocator;
if ( this.superiorProcess != null ) {
if ( this.superiorProcess instanceof RuntimeSystem ) {
this.superiorSystem = (RuntimeSystem) this.superiorProcess;
}
else {
this.superiorSystem = this.superiorProcess.parentSystem();
}
if ( this.guidAllocator == null && this.superiorSystem instanceof UniformCentralSystem ) {
UniformCentralSystem system = (UniformCentralSystem) this.superiorSystem;
this.guidAllocator = system.getSystemGuidAllocator();
}
}
if ( this.guidAllocator == null ) {
throw new IllegalArgumentException( "GUIDAllocator is undefined." );
}
}
//************************************** CascadeInstrument **************************************
@Override
public KOMInstrument parent() {
return this.mParentInstrument;
}
@Override
public Processum getSuperiorProcess() {
return this.superiorProcess;
}
@Override
public void setParent( CascadeInstrument parent ) {
this.mParentInstrument = (KOMInstrument) parent;
}
@Override
public Namespace getTargetingName() {
return this.mThisNamespace;
}
@Override
public void setTargetingName( Namespace name ) {
this.mThisNamespace = name;
}
//************************************** CascadeInstrument End **************************************
@Override
public void applyGuidAllocator( GuidAllocator guidAllocator ) {
this.guidAllocator = guidAllocator;
}
@Override
public GuidAllocator getGuidAllocator() {
return this.guidAllocator;
}
@Override
public String getSuperiorPathScope() {
return this.superiorPathScope;
}
@Override
public void applySuperiorPathScope( String superiorPathScope ) {
this.superiorPathScope = superiorPathScope;
}
@Override
@SuppressWarnings( "unchecked" )
public Collection fetchTreeNodes() {
return (Collection) this.mNodeTable.values();
}
@Override
public KOMInstrument implicated( GUID objectGuid ) {
RuntimeTreeNode treeNode = this.mNodeTable.get( objectGuid );
if ( treeNode == null ) {
for( RuntimeTreeNode node : this.mNodeTable.values() ) {
if ( node.treeNode instanceof KOMInstrument ) {
KOMInstrument instrument = (KOMInstrument) node.treeNode;
TreeNode sn = instrument.get( objectGuid );
if ( sn != null ) {
return instrument;
}
}
}
return null;
}
if ( treeNode instanceof KOMInstrument ) {
return (KOMInstrument) treeNode;
}
return null;
}
@Override
public KernelObjectConfig getConfig() {
return this.kernelObjectConfig;
}
@Override
public String getPath( GUID guid ) {
RuntimeTreeNode treeNode = this.mNodeTable.get( guid );
if ( treeNode == null ) {
for( RuntimeTreeNode node : this.mNodeTable.values() ) {
if ( node.treeNode instanceof KOMInstrument ) {
KOMInstrument instrument = (KOMInstrument) node.treeNode;
String path = instrument.getPath( guid );
if ( StringUtils.isNoneEmpty( path ) ) {
return path;
}
}
}
return null;
}
return treeNode.getPath();
}
@Override
public String getFullName( GUID guid ) {
return this.getPath( guid );
}
@Override
public GUID queryGUIDByPath( String path ) {
return this.queryGUIDByPathForward(path);
}
protected GUID queryGUIDByPathBackward( String path ) {
TreeNode treeNode = this.mNodeIndex.get( path );
if ( treeNode != null ) {
return treeNode.getGuid();
}
String[] split = path.split(this.kernelObjectConfig.getPathNameSepRegex());
for( int i = split.length - 2; i >= 0; --i ) {
TreeNode node = this.mNodeIndex.get( this.concatenateFullPathBySegments(split, 0, i) );
if( node instanceof RuntimeTreeNode ) {
RuntimeTreeNode rtn = (RuntimeTreeNode)node;
if ( rtn.treeNode instanceof ObjectTreeGUIDAddressingSectionHandle ) {
ObjectTreeGUIDAddressingSectionHandle pointHandle = (ObjectTreeGUIDAddressingSectionHandle) rtn.treeNode;
GUID guid = pointHandle.queryGUIDByPath( this.concatenateFullPathBySegments(split, i + 1, split.length - 1) );
//this.mNodeIndex.put( path, pointHandle.get(guid) );
return guid;
}
}
}
return null;
}
protected GUID queryGUIDByPathForward( String path ) {
TreeNode treeNode = this.mNodeIndex.get( path );
if ( treeNode != null ) {
return treeNode.getGuid();
}
String[] split = path.split(this.kernelObjectConfig.getPathNameSeparator());
for( int i = 0; i < split.length; ++i ) {
TreeNode node = this.mNodeIndex.get( this.concatenateFullPathBySegments(split, 0, i) );
if( node instanceof RuntimeTreeNode ) {
RuntimeTreeNode rtn = (RuntimeTreeNode)node;
if ( rtn.treeNode instanceof ObjectTreeGUIDAddressingSectionHandle ) {
ObjectTreeGUIDAddressingSectionHandle pointHandle = (ObjectTreeGUIDAddressingSectionHandle) rtn.treeNode;
GUID guid = pointHandle.queryGUIDByPath( this.concatenateFullPathBySegments(split, i + 1, split.length - 1) );
//this.mNodeIndex.put( path, pointHandle.get(guid) );
return guid;
}
}
}
return null;
}
protected String concatenateFullPathBySegments( String[] segments, int start, int end ) {
StringBuilder stringBuilder = new StringBuilder();
for( int i = start; i <= end; ++i ) {
if (stringBuilder.length() > 0) {
stringBuilder.append(this.kernelObjectConfig.getPathNameSeparator());
}
stringBuilder.append( segments[ i ] );
}
return stringBuilder.toString();
}
@Override
public GUID queryGUIDByFN( String fullName ) {
return this.queryGUIDByPath( fullName );
}
@Override
public boolean contains( GUID nodeGuid ) {
return this.mNodeTable.containsKey( nodeGuid );
}
@Override
public GUID put( TreeNode treeNode ) throws IllegalArgumentException {
RuntimeTreeNode runtimeTreeNode;
if ( treeNode instanceof RuntimeTreeNode ) {
runtimeTreeNode = (RuntimeTreeNode) treeNode;
}
else {
throw new IllegalArgumentException( "TreeNode which been putted should be `RuntimeTreeNode`." );
}
this.mNodeTable.put( treeNode.getGuid(), runtimeTreeNode );
return treeNode.getGuid();
}
@Override
public TreeNode add( String mountPointPath, TreeNode that ) {
RuntimeTreeNode runtimeTreeNode;
if ( that instanceof RuntimeTreeNode ) {
runtimeTreeNode = (RuntimeTreeNode) that;
}
else {
runtimeTreeNode = new RuntimeTreeNode( that, mountPointPath );
}
this.mNodeTable.put( that.getGuid(), runtimeTreeNode );
this.mNodeIndex.put( mountPointPath, runtimeTreeNode );
return that;
}
@Override
public TreeNode get( GUID guid ) {
return this.mNodeTable.get( guid );
}
@Override
public TreeNode get( GUID guid, int depth ) {
return this.mNodeTable.get( guid );
}
@Override
public TreeNode getAsRootDepth( GUID guid ) {
return this.mNodeTable.get( guid );
}
@Override
public void remove( GUID guid ) {
RuntimeTreeNode treeNode = this.mNodeTable.get( guid );
if ( treeNode != null ) {
this.mNodeIndex.remove( treeNode.getPath() );
this.mNodeTable.remove( guid );
}
}
@Override
public void remove( String path ) {
GUID guid = this.queryGUIDByPath( path );
if ( guid != null ) {
this.remove( guid );
}
}
@Override
public void rename( GUID guid, String name ) {
throw new UnsupportedOperationException();
}
@Override
public Collection getChildren( GUID guid ) {
for( RuntimeTreeNode node : this.mNodeTable.values() ) {
if ( node.treeNode instanceof KOMInstrument ) {
KOMInstrument instrument = (KOMInstrument) node.treeNode;
Collection cs = instrument.getChildren( guid );
if ( CollectionUtils.isNoneEmpty( cs ) ) {
return cs;
}
}
}
return Units.emptyList();
}
@Override
public Collection fetchChildrenGuids( GUID guid ) {
for( RuntimeTreeNode node : this.mNodeTable.values() ) {
if ( node.treeNode instanceof KOMInstrument ) {
KOMInstrument instrument = (KOMInstrument) node.treeNode;
Collection cs = instrument.fetchChildrenGuids( guid );
if ( CollectionUtils.isNoneEmpty( cs ) ) {
return cs;
}
}
}
return Units.emptyList();
}
@Override
public List extends TreeNode> fetchRoot() {
throw new UnsupportedOperationException();
}
@Override
public Object queryEntityHandleByNS( String path, String szBadSep, String szTargetSep ) {
if( szTargetSep != null ) {
path = path.replace( szBadSep, szTargetSep );
}
TreeNode treeNode = this.mNodeIndex.get( path );
if ( treeNode != null ) {
if( treeNode instanceof RuntimeTreeNode ) {
return ( (RuntimeTreeNode) treeNode).treeNode;
}
return treeNode;
}
String[] split = path.split( this.kernelObjectConfig.getPathNameSeparator() );
for( int i = 0; i < split.length; ++i ) {
TreeNode node = this.mNodeIndex.get( this.concatenateFullPathBySegments(split, 0, i) );
if( node instanceof RuntimeTreeNode ) {
RuntimeTreeNode rtn = (RuntimeTreeNode)node;
if ( rtn.treeNode instanceof ObjectTreeAddressingSectionHandle ) {
ObjectTreeAddressingSectionHandle pointHandle = (ObjectTreeAddressingSectionHandle) rtn.treeNode;
EntityNode entityNode = pointHandle.queryNode( this.concatenateFullPathBySegments(split, i + 1, split.length - 1) );
return entityNode;
}
}
}
return null;
}
@Override
public EntityNode queryNode( String path ) {
Object o = this.queryEntityHandleByNS( path, null, null );
if( o instanceof EntityNode ) {
return (EntityNode) o;
}
return null;
}
@Override
public TreeNode queryTreeNode( String path ) {
Object o = this.queryEntityHandleByNS( path, null, null );
if( o instanceof TreeNode ) {
return (TreeNode) o;
}
// Runtime KOM shouldn`t be GUID.
// else if( o instanceof GUID ) {
// return this.get( (GUID) o );
// }
return null;
}
@Override
public GUID queryGUIDByNS( String path, String szBadSep, String szTargetSep ) {
if( szTargetSep != null ) {
path = path.replace( szBadSep, szTargetSep );
}
return this.queryGUIDByPath( path );
}
@Override
public String querySystemKernelObjectPath( GUID objectGuid ) {
String thisScopePath = this.getPath( objectGuid );
if ( thisScopePath == null ) {
return null;
}
KOMInstrument imp = this.implicated( objectGuid );
if ( imp != null ) {
thisScopePath = imp.querySystemKernelObjectPath( objectGuid );
}
return this.getSuperiorPathScope() + this.getConfig().getPathNameSeparator() + thisScopePath;
}
@Override
public ImperialTree getMasterTrieTree() {
return null;
}
static class RuntimeTreeNode implements TreeNode {
private TreeNode treeNode;
private String path;
public RuntimeTreeNode( TreeNode treeNode, String path ) {
this.treeNode = treeNode;
this.path = path;
}
@Override
public String getName() {
return this.treeNode.getName();
}
@Override
public GUID getGuid() {
return this.treeNode.getGuid();
}
public TreeNode getTreeNode() {
return this.treeNode;
}
public String getPath() {
return this.path;
}
@Override
public String toJSONString() {
return this.treeNode.toJSONString();
}
@Override
public String toString() {
return this.treeNode.toString();
}
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/runtime/CentralizedRuntimeInstrument.java
================================================
package com.pinecone.hydra.system.ko.runtime;
import com.pinecone.hydra.system.ko.handle.ObjectTreeAddressingSectionHandle;
import com.pinecone.hydra.system.ko.kom.KOMInstrument;
public interface CentralizedRuntimeInstrument extends RuntimeInstrument {
KOMInstrument mount( String mountPointPath, KOMInstrument that );
KOMInstrument mount( String mountPointPath, String treeNodeName, KOMInstrument that );
ObjectTreeAddressingSectionHandle directMount( String mountPointPath, ObjectTreeAddressingSectionHandle that );
ObjectTreeAddressingSectionHandle directMount( String mountPointPath, String treeNodeName, ObjectTreeAddressingSectionHandle that );
KOMInstrument getMountedInstrument ( String mountPointPath );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/runtime/DirectMappingTrieRuntimeInstrument.java
================================================
package com.pinecone.hydra.system.ko.runtime;
import java.util.Collection;
import com.pinecone.framework.system.prototype.PineUnit;
import com.pinecone.framework.unit.trie.DirectoryNode;
import com.pinecone.framework.unit.trie.TrieNode;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
public interface DirectMappingTrieRuntimeInstrument extends RuntimeInstrument, PineUnit {
TrieNode getOwnProperty( String path );
DirectoryNode fetchOwnChildren( String path );
Collection fetchOwnMappingPath();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/runtime/GenericRuntimeInstrumentConfig.java
================================================
package com.pinecone.hydra.system.ko.runtime;
import java.util.Map;
import com.pinecone.framework.system.Nullable;
import com.pinecone.hydra.system.ko.ArchKernelObjectConfig;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
public class GenericRuntimeInstrumentConfig extends ArchKernelObjectConfig implements KernelObjectConfig {
public GenericRuntimeInstrumentConfig() {
super();
}
public GenericRuntimeInstrumentConfig( @Nullable Map config ){
super( config );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/runtime/KernelExpressInstrument.java
================================================
package com.pinecone.hydra.system.ko.runtime;
import com.pinecone.framework.system.Nullable;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.hydra.system.ko.handle.AppliableKHandle;
import com.pinecone.hydra.system.ko.handle.KOMMountPointHandle;
import com.pinecone.hydra.system.ko.handle.ObjectTreeAddressingSectionHandle;
import com.pinecone.hydra.system.ko.kom.ExpressInstrument;
import com.pinecone.hydra.system.ko.kom.KOMInstrument;
import com.pinecone.hydra.system.ko.kom.ProxiedKOMMountPointHandle;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
public class KernelExpressInstrument extends ArchDirectMappingTrieRuntimeKOMTree implements ExpressInstrument {
public KernelExpressInstrument( @Nullable Processum superiorProcess, String superiorPathScope, KernelObjectConfig kernelObjectConfig, @Nullable GuidAllocator guidAllocator ) {
super( superiorProcess, superiorPathScope, kernelObjectConfig, guidAllocator );
}
public KernelExpressInstrument( @Nullable Processum superiorProcess, String superiorPathScope, KernelObjectConfig kernelObjectConfig ) {
this( superiorProcess, superiorPathScope, kernelObjectConfig, null );
}
@Override
public KOMInstrument mount( String mountPointPath, KOMInstrument that ) {
String[] debris = mountPointPath.split( this.getConfig().getPathNameSepRegex() );
if ( debris.length < 1 ) {
throw new IllegalArgumentException( "Path given should not be empty." );
}
this.mount( mountPointPath, debris[ debris.length - 1 ], that );
that.setParent( this );
that.applySuperiorPathScope( mountPointPath );
return that;
}
@Override
public KOMInstrument mount( String mountPointPath, String treeNodeName, KOMInstrument that ) {
KOMMountPointHandle handle = new ProxiedKOMMountPointHandle(
treeNodeName, this.guidAllocator.nextGUID(), that
);
this.add( mountPointPath, handle );
return that;
}
@Override
public ObjectTreeAddressingSectionHandle directMount( String mountPointPath, ObjectTreeAddressingSectionHandle that ) {
if ( that instanceof AppliableKHandle ) {
String[] debris = mountPointPath.split( this.getConfig().getPathNameSepRegex() );
if ( debris.length < 1 ) {
throw new IllegalArgumentException( "Path given should not be empty." );
}
this.directMount( mountPointPath, debris[ debris.length - 1 ], that );
}
this.add( mountPointPath, that );
return that;
}
@Override
public ObjectTreeAddressingSectionHandle directMount( String mountPointPath, String treeNodeName, ObjectTreeAddressingSectionHandle that ) {
if ( that instanceof AppliableKHandle ) {
AppliableKHandle handle = (AppliableKHandle) that;
if ( that.getGuid() == null ) {
handle.applyTreeNodeGuid( this.guidAllocator.nextGUID() );
}
handle.applyTreeNodeName( treeNodeName );
}
this.add( mountPointPath, that );
return that;
}
@Override
public KOMInstrument getMountedInstrument( String mountPointPath ) {
TreeNode tn = this.mNodeIndex.get( mountPointPath );
if ( tn instanceof RuntimeTreeNode ) {
tn = ((RuntimeTreeNode) tn).getTreeNode();
}
if ( tn instanceof KOMMountPointHandle ) {
return ((KOMMountPointHandle) tn).revealWrapped();
}
else if ( tn instanceof KOMInstrument ) {
return (KOMInstrument) tn;
}
return null;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/ko/runtime/RuntimeInstrument.java
================================================
package com.pinecone.hydra.system.ko.runtime;
import java.util.Collection;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.system.ko.kom.KOMInstrument;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
public interface RuntimeInstrument extends KOMInstrument {
Collection fetchTreeNodes();
TreeNode add( String mountPointPath, TreeNode that );
KOMInstrument implicated( GUID objectGuid );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/polity/RepublicSystem.java
================================================
package com.pinecone.hydra.system.polity;
import com.pinecone.hydra.system.FederalSystem;
import com.pinecone.hydra.system.HierarchySystem;
public interface RepublicSystem extends HierarchySystem, FederalSystem {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/ArchMicroSystem.java
================================================
package com.pinecone.hydra.system.subsystem;
import com.pinecone.framework.util.config.PatriarchalConfig;
import com.pinecone.hydra.system.Hydrogen;
public abstract class ArchMicroSystem implements MicroSystem {
protected String mszName;
protected Hydrogen mSystem;
protected PatriarchalConfig mSubsystemConfig;
public ArchMicroSystem( String name, Hydrogen system, PatriarchalConfig config ) {
this.mszName = name;
this.mSystem = system;
this.mSubsystemConfig = config;
}
@Override
public String getName() {
return this.mszName;
}
@Override
public Hydrogen getMasterSystem(){
return this.mSystem;
}
@Override
public PatriarchalConfig getSubsystemConfig() {
return this.mSubsystemConfig;
}
protected abstract void traceWelcomeInfo();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/ArchSubsystemDirector.java
================================================
package com.pinecone.hydra.system.subsystem;
import java.io.IOException;
import java.nio.file.Path;
import java.util.Map;
import com.pinecone.framework.system.ProxyProvokeHandleException;
import com.pinecone.framework.util.ClassUtils;
import com.pinecone.framework.util.config.PatriarchalConfig;
import com.pinecone.framework.util.lang.DynamicFactory;
import com.pinecone.framework.util.lang.GenericDynamicFactory;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.hydra.system.ArchSystemCascadeComponent;
import com.pinecone.hydra.system.HyComponent;
import com.pinecone.hydra.system.Hydrogen;
public abstract class ArchSubsystemDirector extends ArchSystemCascadeComponent implements SubsystemDirector {
protected DynamicFactory mDynamicFactory;
protected PatriarchalConfig mSubsystemConfig;
protected PatriarchalConfig mSegmentConfig;
protected boolean mSegmentEnabled;
public ArchSubsystemDirector( Namespace name, Hydrogen system, HyComponent parent ) {
super( name, system, system.getComponentManager(), parent );
this.mDynamicFactory = new GenericDynamicFactory( this.getSystem().getTaskManager().getClassLoader() );
this.mSubsystemConfig = this.getSystem().getSystemConfig().getChild( "Subsystem" );
this.prepare_segment();
this.mSegmentEnabled = (boolean) this.mSegmentConfig.get( "Enable" );
}
public ArchSubsystemDirector( Hydrogen system, HyComponent parent ) {
this( null, system, parent );
}
public ArchSubsystemDirector( Hydrogen system ) {
this( system, null );
}
protected abstract void prepare_segment();
protected abstract void prepare_each_sub( String key, Object dy );
protected abstract Object instantiate( Map config, String name ) throws ClassNotFoundException ;
@SuppressWarnings( "unchecked" )
protected void prepare_init_subsystem_config( PatriarchalConfig seg ) {
if ( seg instanceof Map ) {
Map cms = (Map) seg;
for ( Map.Entry kv : cms.entrySet() ) {
Object dy = kv.getValue();
if( dy instanceof String ) {
try {
PatriarchalConfig sysConfig = seg.getChildFromPath( Path.of((String) dy) );
cms.put( kv.getKey(), sysConfig );
dy = sysConfig;
}
catch ( IOException e ) {
throw new ProxyProvokeHandleException( e );
}
}
else if( dy.getClass().isPrimitive() || ClassUtils.isPrimitiveWrapper( dy.getClass() ) ) {
continue;
}
if ( dy instanceof Map ) {
Map tm = (Map) dy;
Boolean lifecycleWithPrimarySystem = (Boolean) tm.get( "LifecycleWithPrimarySystem" );
if ( lifecycleWithPrimarySystem != null && !lifecycleWithPrimarySystem) {
continue;
}
}
this.prepare_each_sub( kv.getKey(), dy );
}
}
}
@Override
public PatriarchalConfig getSubsystemConfig() {
return this.mSubsystemConfig;
}
@Override
public PatriarchalConfig getSegmentConfig() {
return this.mSegmentConfig;
}
@Override
public Object instantiate( String fullName ) {
try {
Object c = this.mSegmentConfig.get( fullName );
if ( c instanceof Map ) {
Map tm = (Map) c;
return this.instantiate( tm, fullName );
}
}
catch ( ClassNotFoundException e ) {
return null;
}
return null;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/Cabinet.java
================================================
package com.pinecone.hydra.system.subsystem;
import com.pinecone.framework.system.regime.arch.Director;
public interface Cabinet extends Director {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/CentralKernelLordFederation.java
================================================
package com.pinecone.hydra.system.subsystem;
import java.io.IOException;
import java.nio.file.Path;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.pinecone.framework.system.ProxyProvokeHandleException;
import com.pinecone.framework.system.regime.arch.Lord;
import com.pinecone.framework.util.CollectionUtils;
import com.pinecone.framework.util.config.JSONConfig;
import com.pinecone.framework.util.config.PatriarchalConfig;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.hydra.system.HyComponent;
import com.pinecone.hydra.system.Hydrogen;
public class CentralKernelLordFederation extends ArchSubsystemDirector implements KernelLordFederation {
protected Logger log = LoggerFactory.getLogger( "CentralKernelLordFederation" );
protected Map mEmpireLords; // Domain subsystem.
public CentralKernelLordFederation( Namespace name, Hydrogen system, HyComponent parent ) {
super( name, system, parent );
this.mEmpireLords = new ConcurrentHashMap<>();
this.prepare_init_subsystem_config( this.mSegmentConfig );
this.log.info( "[Lifecycle] LordFederation prepared, ready to start. " );
}
public CentralKernelLordFederation( Hydrogen system, HyComponent parent ) {
this( null, system, parent );
}
public CentralKernelLordFederation( Hydrogen system ) {
this( system, null );
}
@Override
protected void prepare_segment() {
this.mSegmentConfig = this.mSubsystemConfig.getChild( "SystemFederation" );
}
@Override
protected void prepare_each_sub( String key, Object dy ) {
if ( !this.mSegmentEnabled ) {
return;
}
if( dy instanceof Map ) {
try {
Map tm = (Map) dy;
String name = (String) tm.get( "Name" );
if( name == null ) {
name = key;
}
Lord lord = this.instantiate( tm, name );
this.register( name, lord );
if( lord == null ) {
throw new IllegalArgumentException( "Instancing Lord compromised with illegal arguments." );
}
}
catch ( ClassNotFoundException e ) {
throw new ProxyProvokeHandleException( e );
}
}
else {
throw new IllegalArgumentException( "Lord config should be map or json format." );
}
}
@Override
@SuppressWarnings( "unchecked" )
protected Lord instantiate( Map config, String name ) throws ClassNotFoundException {
Class > clazz = this.mDynamicFactory.getClassLoader().loadClass( (String)config.get( KernelLordFederation.KeyMainClass ) );
JSONConfig p = null;
if ( this.mSegmentConfig instanceof JSONConfig ) {
p = (JSONConfig) this.mSegmentConfig;
}
Object ins = this.mDynamicFactory.optNewInstance( clazz, new Object[] {
this.getSystem(), name, new JSONConfig( (Map) config, p )
} );
return (Lord) ins;
}
@Override
public Lord instantiate( String fullName ) {
Lord ms = (Lord) super.instantiate( fullName );
this.register( fullName, ms );
return ms;
}
@Override
public void register( String name, Lord system ) {
this.mEmpireLords.put( name, system );
}
@Override
public void deregister( String name ) {
this.mEmpireLords.remove( name );
}
@Override
public Lord get( String name ) {
return this.mEmpireLords.get( name );
}
@Override
public void clearLords() {
for ( Lord system : this.mEmpireLords.values() ) {
system.release();
}
this.mEmpireLords.clear();
}
@Override
public Set > entrySet() {
return this.mEmpireLords.entrySet();
}
@Override
public int size() {
return this.mEmpireLords.size();
}
@Override
public Map addConfig( String key, Object dyPathOrObject ) {
Map cms = CollectionUtils.genericConvert( (Map) this.mSegmentConfig );
if( dyPathOrObject instanceof String ) {
try {
PatriarchalConfig sysConfig = this.mSegmentConfig.getChildFromPath( Path.of((String) dyPathOrObject) );
cms.put( key, sysConfig );
return CollectionUtils.genericConvert( (Map) sysConfig );
}
catch ( IOException e ) {
return null;
}
}
else {
cms.put( key, dyPathOrObject );
}
return CollectionUtils.genericConvert( (Map) dyPathOrObject );
}
@Override
public Lord instantiate( String fullName, Object confPathOrObject ) {
if ( !this.mSegmentConfig.containsKey( fullName ) ) {
Map m = this.addConfig( fullName, confPathOrObject );
if ( m == null ) {
return null;
}
}
return this.instantiate( fullName );
}
@Override
public Hydrogen getSystem() {
return super.getSystem();
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/CentralMicroSystemCabinet.java
================================================
package com.pinecone.hydra.system.subsystem;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import com.pinecone.framework.system.ProxyProvokeHandleException;
import com.pinecone.framework.util.config.JSONConfig;
import com.pinecone.framework.util.config.PatriarchalConfig;
import com.pinecone.framework.util.name.Namespace;
import com.pinecone.hydra.system.HyComponent;
import com.pinecone.hydra.system.Hydrogen;
public class CentralMicroSystemCabinet extends ArchSubsystemDirector implements KernelMicroSystemCabinet {
protected ConcurrentHashMap mRegistry;
protected PatriarchalConfig mConfMicroSystems;
public CentralMicroSystemCabinet( Namespace name, Hydrogen system, HyComponent parent ) {
super( name, system, parent );
this.mRegistry = new ConcurrentHashMap<>();
this.prepare_init_subsystem_config( this.mConfMicroSystems );
}
public CentralMicroSystemCabinet( Hydrogen system, HyComponent parent ) {
this( null, system, parent );
}
public CentralMicroSystemCabinet( Hydrogen system ) {
this( system, null );
}
@Override
protected void prepare_segment() {
this.mSegmentConfig = this.mSubsystemConfig.getChild( "SystemCabinet" );
this.mConfMicroSystems = this.mSegmentConfig.getChild( "MicroSystems" );
}
@Override
protected void prepare_each_sub( String key, Object dy ) {
if ( !this.mSegmentEnabled ) {
return;
}
if( dy instanceof Map ) {
try {
Map tm = (Map) dy;
String name = (String) tm.get( "Name" );
if( name == null ) {
name = key;
}
MicroSystem is = this.instantiate( tm, name );
this.register( name, is );
if( is == null ) {
throw new IllegalArgumentException( "Instancing MicroSystem compromised with illegal arguments." );
}
}
catch ( ClassNotFoundException e ) {
throw new ProxyProvokeHandleException( e );
}
}
else {
throw new IllegalArgumentException( "MicroSystem config should be map or json format." );
}
}
@Override
@SuppressWarnings( "unchecked" )
protected MicroSystem instantiate( Map config, String name ) throws ClassNotFoundException {
Class > clazz = this.mDynamicFactory.getClassLoader().loadClass( (String)config.get( KernelMicroSystemCabinet.KeyMainClass ) );
JSONConfig p = null;
if ( this.mSegmentConfig instanceof JSONConfig ) {
p = (JSONConfig) this.mSegmentConfig;
}
Object ins = this.mDynamicFactory.optNewInstance( clazz, new Object[] {
name, this.getSystem(), new JSONConfig( (Map) config, p )
} );
return (MicroSystem) ins;
}
@Override
public MicroSystem instantiate( String fullName ) {
MicroSystem ms = (MicroSystem) super.instantiate( fullName );
this.register( fullName, ms );
return ms;
}
@Override
public void register( String name, MicroSystem system ) {
this.mRegistry.put( name, system );
}
@Override
public void deregister( String name ) {
this.mRegistry.remove( name );
}
@Override
public MicroSystem get( String name ) {
return this.mRegistry.get( name );
}
@Override
public void clearCabinet() {
for( MicroSystem system : this.mRegistry.values() ) {
system.release();
}
this.mRegistry.clear();
}
@Override
public Set > entrySet() {
return this.mRegistry.entrySet();
}
@Override
public int size() {
return this.mRegistry.size();
}
@Override
public Hydrogen getSystem() {
return super.getSystem();
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/Federation.java
================================================
package com.pinecone.hydra.system.subsystem;
import com.pinecone.framework.system.regime.arch.Director;
public interface Federation extends Director {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/KernelLordFederation.java
================================================
package com.pinecone.hydra.system.subsystem;
import java.util.Map;
import java.util.Set;
import com.pinecone.framework.system.regime.arch.Lord;
public interface KernelLordFederation extends SubsystemDirector, Federation {
String KeyMainClass = "MainClass";
void register( String name, Lord system );
void deregister( String name );
Lord get( String name );
void clearLords() ;
Set > entrySet();
int size();
Map addConfig(String key, Object dyPathOrObject );
Lord instantiate( String fullName, Object confPathOrObject );
Lord instantiate( String fullName );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/KernelMicroSystemCabinet.java
================================================
package com.pinecone.hydra.system.subsystem;
import java.util.Map;
import java.util.Set;
public interface KernelMicroSystemCabinet extends SubsystemDirector, Cabinet {
String KeyMainClass = "MainClass";
void register( String name, MicroSystem system );
void deregister( String name );
MicroSystem get( String name );
void clearCabinet() ;
Set > entrySet();
int size();
MicroSystem instantiate( String fullName );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/MicroSystem.java
================================================
package com.pinecone.hydra.system.subsystem;
import com.pinecone.framework.system.RuntimeSystem;
import com.pinecone.framework.system.executum.Systema;
import com.pinecone.framework.util.config.PatriarchalConfig;
public interface MicroSystem extends Systema {
void release();
RuntimeSystem getMasterSystem();
PatriarchalConfig getSubsystemConfig();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/subsystem/SubsystemDirector.java
================================================
package com.pinecone.hydra.system.subsystem;
import com.pinecone.framework.system.regime.arch.Director;
import com.pinecone.framework.util.config.PatriarchalConfig;
import com.pinecone.hydra.system.HyComponent;
public interface SubsystemDirector extends Director, HyComponent {
PatriarchalConfig getSubsystemConfig();
PatriarchalConfig getSegmentConfig();
Object instantiate( String fullName );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/system/types/HydraKingdom.java
================================================
package com.pinecone.hydra.system.types;
import com.pinecone.hydra.system.HierarchySystem;
import com.pinecone.hydra.system.Hydrogen;
public interface HydraKingdom extends Hydrogen, HierarchySystem {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/ArchRegimentObjectModel.java
================================================
package com.pinecone.hydra.unit.imperium;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.hydra.system.ko.driver.KOIMasterManipulator;
import com.pinecone.hydra.system.ko.kom.KOMInstrument;
import com.pinecone.hydra.unit.imperium.source.TreeMasterManipulator;
public abstract class ArchRegimentObjectModel extends ArchUniformInstitutionalizedInstrument implements KOMInstrument {
protected ImperialTree imperialTree;
protected TreeMasterManipulator treeMasterManipulator;
protected KernelObjectConfig kernelObjectConfig;
public ArchRegimentObjectModel( TreeMasterManipulator masterManipulator, KernelObjectConfig kernelObjectConfig, String superiorPathScope ) {
super( superiorPathScope );
this.treeMasterManipulator = masterManipulator; // [1st]
this.kernelObjectConfig = kernelObjectConfig; // [2st]
this.imperialTree = new RegimentedImperialTree( this );
}
public ArchRegimentObjectModel( KOIMasterManipulator masterManipulator, KernelObjectConfig kernelObjectConfig, String superiorPathScope ) {
this( (TreeMasterManipulator) masterManipulator.getSkeletonMasterManipulator(), kernelObjectConfig, superiorPathScope );
}
public ImperialTree getMasterTrieTree() {
return this.imperialTree;
}
TreeMasterManipulator getTreeMasterManipulator() {
return this.treeMasterManipulator;
}
@Override
public KernelObjectConfig getConfig() {
return this.kernelObjectConfig;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/ArchUniformInstitutionalizedInstrument.java
================================================
package com.pinecone.hydra.unit.imperium;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.system.ko.kom.KOMInstrument;
/**
* Pinecone Ursus For Java Uniform Institutionalized Instrument
* Author: Harald.E (Dragon King)
* Copyright © 2008 - 2028 Bean Nuts Foundation All rights reserved.
* *****************************************************************************************
* Uniform Institutionalized Instrument
* 统一编制化元信息中级模型
* *****************************************************************************************
*/
public abstract class ArchUniformInstitutionalizedInstrument implements KOMInstrument {
protected String superiorPathScope;
public ArchUniformInstitutionalizedInstrument( String superiorPathScope ) {
this.superiorPathScope = superiorPathScope;
}
@Override
public String querySystemKernelObjectPath( GUID objectGuid ) {
String thisScopePath = this.getPath( objectGuid );
if ( thisScopePath == null ) {
return null;
}
return this.getSuperiorPathScope() + this.getConfig().getPathNameSeparator() + thisScopePath;
}
@Override
public String getSuperiorPathScope() {
return this.superiorPathScope;
}
@Override
public void applySuperiorPathScope( String superiorPathScope ) {
this.superiorPathScope = superiorPathScope;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/GUIDImperialTrieNode.java
================================================
package com.pinecone.hydra.unit.imperium;
import com.pinecone.framework.unit.KeyValue;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.json.JSONEncoder;
import com.pinecone.framework.util.uoi.UOI;
import java.util.List;
/**
* Pinecone Ursus For Java GUIDDistributedTrieNode
* Author:
* Copyright © 2008 - 2028 Bean Nuts Foundation All rights reserved.
* **********************************************************
* Thanks for genius`s contribution.
* **********************************************************
*/
public class GUIDImperialTrieNode implements ImperialTreeNode {
//节点id
protected long enumId;
//节点uuid
protected GUID guid;
//父节点uuid
protected List parentGUID;
//基础信息uuid
protected GUID attributesGUID;
//元信息uuid
protected GUID nodeMetadataGUID;
//节点的类型方便获取数据
protected UOI type;
public GUIDImperialTrieNode() {
}
public GUIDImperialTrieNode(
long enumId, GUID guid, List parentGUID, GUID baseDataGUID, GUID nodeMetadataGUID, UOI type
) {
this.enumId = enumId;
this.guid = guid;
this.parentGUID = parentGUID;
this.attributesGUID = baseDataGUID;
this.nodeMetadataGUID = nodeMetadataGUID;
this.type = type;
}
@Override
public long getEnumId() {
return this.enumId;
}
@Override
public void setEnumId( long enumId ) {
this.enumId = enumId;
}
@Override
public GUID getGuid() {
return this.guid;
}
@Override
public void setGuid( GUID guid ) {
this.guid = guid;
}
@Override
public List getParentGUIDs() {
return this.parentGUID;
}
@Override
public void setParentGUID( List parentGUID ) {
this.parentGUID = parentGUID;
}
@Override
public GUID getAttributesGUID() {
return this.attributesGUID;
}
@Override
public void setBaseDataGUID( GUID baseDataGUID ) {
this.attributesGUID = baseDataGUID;
}
@Override
public GUID getNodeMetadataGUID() {
return this.nodeMetadataGUID;
}
@Override
public void setNodeMetadataGUID( GUID nodeMetadataGUID ) {
this.nodeMetadataGUID = nodeMetadataGUID;
}
@Override
public UOI getType() {
return this.type;
}
@Override
public void setType(UOI type) {
this.type = type;
}
@Override
public String toString() {
return JSONEncoder.stringifyMapFormat( new KeyValue[]{
new KeyValue<>( "class", this.className() ),
new KeyValue<>( "guid", this.getGuid() ),
new KeyValue<>( "type", this.getType() )
} );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/ImperialTree.java
================================================
package com.pinecone.hydra.unit.imperium;
import com.pinecone.framework.system.prototype.PineUnit;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.system.ko.KernelObjectInstrument;
import com.pinecone.hydra.unit.imperium.entity.ReparseLinkNode;
import java.util.List;
/**
* Pinecone Ursus For Java Imperial Tree
* Author: Harald.E (Dragon King), Ken
* Copyright © 2008 - 2028 Bean Nuts Foundation All rights reserved.
* *****************************************************************************************
* Imperium (Imperial Tree)
* It is a distributed uniformed institutionalization system tree used for uniformed and systematic institutionalization of controlled distributed objects.
* Similar to kernel object management in other OS, it ensures that kernel objects and target-controlled objects in the system are marshaled
* and accessed in a uniformed URL-style.
* This data structure is based on a prefix tree and a GUID system, which can also be utilized for other marshaling purposes.
*
* Imperium (统治树),
* 是一种分布式统一编制体系树,用于对受控分布式对象进行统一系统性编制。
* 与其他操作系统内核对象管理类似,使得系统中的内核对象和欲控对象,整整齐齐的被编制和统一URL式访问。
* 该数据结构基于前缀树和GUID身份证体系,是一类通用数据结构,也可用于其他编制或编组目的的实现。
*
* e.g. \Device\HarddiskVolume3\Users\dragonking\AppData\Local\
* e.g. /proc/137/task
* *****************************************************************************************
*/
public interface ImperialTree extends PineUnit {
void insert( ImperialTreeNode distributedConfTreeNode );
void affirmOwnedNode( GUID nodeGUID, GUID parentGUID );
GUIDImperialTrieNode getNode(GUID guid );
void purge( GUID guid );
void removeTreeNodeOnly( GUID guid );
void put( GUID guid, GUIDImperialTrieNode distributedTreeNode );
boolean contains( GUID key );
boolean containsChild( GUID parentGuid, GUID childGuid );
GUID queryGUIDByPath( String path );
List getChildren(GUID guid );
List fetchChildrenGuids( GUID parentGuid );
List fetchParentGuids( GUID guid );
void removeInheritance( GUID childGuid,GUID parentGuid );
String getCachePath( GUID guid );
void removeCachePath( GUID guid );
GUID getOwner( GUID guid );
void setOwner( GUID sourceGuid, GUID targetGuid );
void setGuidLineage( GUID sourceGuid, GUID targetGuid );
List getSubordinates( GUID guid );
void insertCachePath( GUID guid,String path );
List fetchRoot();
boolean isRoot( GUID guid );
/** Link / Reference */
long queryLinkedCount( GUID guid, LinkedType linkedType );
long queryAllLinkedCount( GUID guid );
default long queryStrongLinkedCount( GUID guid ) {
return this.queryLinkedCount( guid, LinkedType.Owned );
}
default long queryWeakLinkedCount( GUID guid ) {
return this.queryLinkedCount( guid, LinkedType.Hard );
}
void newHardLink( GUID sourceGuid, GUID targetGuid );
void moveTo( GUID sourceGuid, GUID destinationGuid );
void newLinkTag( GUID originalGuid, GUID dirGuid, String tagName, KernelObjectInstrument instrument );
void updateLinkTagName( GUID tagGuid, String tagName );
/** Link Tag */
GUID getOriginalGuid( String tagName, GUID parentDirGUID );
GUID getOriginalGuidByNodeGuid( String tagName, GUID nodeGUID );
List fetchOriginalGuid( String tagName );
List fetchOriginalGuidRoot( String tagName );
ReparseLinkNode getReparseLinkNode( String tagName, GUID parentDirGuid );
ReparseLinkNode getReparseLinkNodeByNodeGuid( String tagName, GUID nodeGUID );
GUID getOriginalGuid( GUID tagGuid );
void removeReparseLink( GUID guid );
boolean isTagGuid( GUID guid );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/ImperialTreeConstants.java
================================================
package com.pinecone.hydra.unit.imperium;
public final class ImperialTreeConstants {
public static int DefaultShortPathLength = 330;
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/ImperialTreeNode.java
================================================
package com.pinecone.hydra.unit.imperium;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.uoi.UOI;
import java.util.List;
/**
* Pinecone Ursus For Java
* Author: Harald.E / JH.W (DragonKing)
* Copyright © 2008 - 2028 Bean Nuts Foundation All rights reserved.
* *****************************************************************************************
* Uniform Distributed Trie Tree (UDTT)
* *****************************************************************************************
*/
public interface ImperialTreeNode extends Pinenut {
long getEnumId();
void setEnumId(long enumId);
GUID getGuid();
void setGuid(GUID guid);
List getParentGUIDs();
void setParentGUID(List parentGUID);
GUID getAttributesGUID();
void setBaseDataGUID(GUID baseDataGUID);
GUID getNodeMetadataGUID();
void setNodeMetadataGUID(GUID nodeMetadataGUID);
UOI getType();
void setType( UOI type );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/LinkedType.java
================================================
package com.pinecone.hydra.unit.imperium;
public enum LinkedType {
Owned ( "Owned" ),
// HardLink
Hard ( "Hard" ),
WeaK ("Weak");
private final String value;
LinkedType( String value ){
this.value = value;
}
public String getName(){
return this.value;
}
public static String queryName( LinkedType type ) {
return type.getName();
}
public static LinkedType queryLinkedType( String sz ) {
return LinkedType.valueOf( sz );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/RegimentedImperialTree.java
================================================
package com.pinecone.hydra.unit.imperium;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.system.ko.KernelObjectConfig;
import com.pinecone.hydra.system.ko.KernelObjectInstrument;
import com.pinecone.hydra.system.ko.kom.KOMInstrument;
import com.pinecone.hydra.unit.imperium.entity.ReparseLinkNode;
import com.pinecone.hydra.unit.imperium.source.TireOwnerManipulator;
import com.pinecone.hydra.unit.imperium.source.TriePathCacheManipulator;
import com.pinecone.hydra.unit.imperium.source.TrieTreeManipulator;
import com.pinecone.hydra.unit.imperium.source.TreeMasterManipulator;
import com.pinecone.ulf.util.guid.i64.GUID72;
import com.pinecone.framework.util.id.GuidAllocator;
import java.util.List;
public class RegimentedImperialTree implements UniImperialTree {
static TreeMasterManipulator evalTreeMasterManipulator( KOMInstrument komInstrument ) {
return ((ArchRegimentObjectModel) komInstrument).getTreeMasterManipulator();
}
static KernelObjectConfig evalKernelObjectConfig( KOMInstrument komInstrument ) {
return komInstrument.getConfig();
}
protected TrieTreeManipulator trieTreeManipulator;
protected TireOwnerManipulator tireOwnerManipulator;
protected TriePathCacheManipulator triePathCacheManipulator;
protected KernelObjectConfig kernelObjectConfig;
protected int shortPathLength;
public RegimentedImperialTree( TreeMasterManipulator masterManipulator ) {
this.trieTreeManipulator = masterManipulator.getTrieTreeManipulator();
this.tireOwnerManipulator = masterManipulator.getTireOwnerManipulator();
this.triePathCacheManipulator = masterManipulator.getTriePathCacheManipulator();
this.shortPathLength = ImperialTreeConstants.DefaultShortPathLength;
}
public RegimentedImperialTree( TreeMasterManipulator masterManipulator, KernelObjectConfig config ) {
this( masterManipulator );
this.kernelObjectConfig = config;
this.shortPathLength = config.getShortPathLength();
}
public RegimentedImperialTree( KOMInstrument komInstrument ) {
this(
RegimentedImperialTree.evalTreeMasterManipulator(komInstrument),
RegimentedImperialTree.evalKernelObjectConfig(komInstrument)
);
}
@Override
public void insert( ImperialTreeNode node ) {
this.trieTreeManipulator.insert( this.tireOwnerManipulator, (GUIDImperialTrieNode) node );
}
@Override
public void affirmOwnedNode( GUID nodeGUID, GUID parentGUID ){
GUID owner = this.tireOwnerManipulator.getOwner( nodeGUID );
if ( owner == null ){
this.tireOwnerManipulator.remove( nodeGUID, owner );
this.tireOwnerManipulator.insertOwnedNode( nodeGUID, parentGUID );
}
else {
this.tireOwnerManipulator.insertOwnedNode( nodeGUID, parentGUID );
}
}
@Override
public GUIDImperialTrieNode getNode( GUID guid ){
return this.trieTreeManipulator.getNode( guid );
}
@Override
public void purge( GUID guid ){
this.trieTreeManipulator.purge( guid );
}
@Override
public void removeTreeNodeOnly( GUID guid ) {
this.trieTreeManipulator.removeTreeNode( guid );
}
@Override
public void put( GUID guid, GUIDImperialTrieNode distributedTreeNode ){
this.trieTreeManipulator.insertNode( guid, distributedTreeNode );
}
@Override
public boolean contains( GUID key ) {
return this.trieTreeManipulator.contains( key );
}
@Override
public boolean containsChild( GUID parentGuid, GUID childGuid ) {
return this.trieTreeManipulator.countNode( parentGuid, childGuid ) > 0;
}
@Override
public GUID queryGUIDByPath( String path ) {
return this.triePathCacheManipulator.queryGUIDByPath( path );
}
@Override
public List getChildren(GUID guid ) {
return this.trieTreeManipulator.getChildren(guid);
}
@Override
public List fetchChildrenGuids( GUID parentGuid ) {
return this.trieTreeManipulator.fetchChildrenGuids( parentGuid );
}
@Override
public List fetchParentGuids( GUID guid ) {
return this.trieTreeManipulator.fetchParentGuids(guid);
}
@Override
public void removeInheritance( GUID childGuid, GUID parentGuid ) {
this.trieTreeManipulator.removeInheritance(childGuid,parentGuid);
}
@Override
public void setOwner( GUID sourceGuid, GUID targetGuid ) {
GUID owner = this.tireOwnerManipulator.getOwner(sourceGuid);
if ( owner == null ){
long exist = this.trieTreeManipulator.countNode( sourceGuid, targetGuid );
if ( exist <= 0 ){
this.tireOwnerManipulator.insertOwnedNode( sourceGuid, targetGuid );
}
else {
this.tireOwnerManipulator.setOwned(sourceGuid, targetGuid);
}
}
else {
this.tireOwnerManipulator.remove( sourceGuid, owner );
this.tireOwnerManipulator.insertOwnedNode( sourceGuid, targetGuid );
}
}
@Override
public void setGuidLineage( GUID sourceGuid, GUID targetGuid ) {
this.tireOwnerManipulator.updateParentGuid( sourceGuid, targetGuid );
}
@Override
public String getCachePath( GUID guid ){
return this.triePathCacheManipulator.getPath(guid);
}
@Override
public void removeCachePath( GUID guid ) {
this.triePathCacheManipulator.remove( guid );
}
@Override
public GUID getOwner( GUID guid ) {
return this.tireOwnerManipulator.getOwner(guid);
}
@Override
public List getSubordinates( GUID guid) {
return this.tireOwnerManipulator.getSubordinates(guid);
}
@Override
public void insertCachePath( GUID guid, String path ) {
if ( path.length() > this.shortPathLength ){
String part1 = path.substring( 0, this.shortPathLength );
String part2 = path.substring( this.shortPathLength );
this.triePathCacheManipulator.insertLongPath( guid, part1, part2 );
}
else {
GUID node = this.triePathCacheManipulator.getNode(path);
if( node == null ){
this.triePathCacheManipulator.insert( guid, path );
}
}
}
@Override
public List fetchRoot() {
return this.trieTreeManipulator.fetchRoot();
}
@Override
public boolean isRoot( GUID guid ) {
return this.trieTreeManipulator.isRoot( guid );
}
@Override
public long queryLinkedCount( GUID guid, LinkedType linkedType ) {
return this.trieTreeManipulator.queryLinkedCount( guid, linkedType );
}
@Override
public long queryAllLinkedCount( GUID guid ) {
return this.trieTreeManipulator.queryAllLinkedCount( guid );
}
@Override
public long queryStrongLinkedCount( GUID guid ) {
return this.trieTreeManipulator.queryStrongLinkedCount( guid );
}
@Override
public long queryWeakLinkedCount( GUID guid ) {
return this.trieTreeManipulator.queryWeakLinkedCount( guid );
}
@Override
public void newHardLink( GUID sourceGuid, GUID targetGuid ) {
long count = this.trieTreeManipulator.countNode( sourceGuid, targetGuid );
if ( count <= 0 ){
this.tireOwnerManipulator.insertHardLinkedNode( sourceGuid,targetGuid );
}
}
@Override
public void moveTo( GUID sourceGuid, GUID destinationGuid ) {
this.removeCachePath( sourceGuid );
this.tireOwnerManipulator.updateParentGuid( sourceGuid, destinationGuid );
}
@Override
public void newLinkTag( GUID originalGuid, GUID dirGuid, String tagName, KernelObjectInstrument instrument ) {
GuidAllocator guidAllocator = instrument.getGuidAllocator();
GUID tagGuid = guidAllocator.nextGUID();
this.trieTreeManipulator.newLinkTag( originalGuid, dirGuid, tagName, tagGuid );
}
@Override
public void updateLinkTagName( GUID tagGuid, String tagName ) {
this.trieTreeManipulator.updateLinkTagName( tagGuid,tagName );
}
@Override
public boolean isTagGuid(GUID guid) {
return this.trieTreeManipulator.isTagGuid( guid );
}
@Override
public GUID getOriginalGuid( String tagName, GUID parentDirGUID ) {
return this.trieTreeManipulator.getOriginalGuid( tagName, parentDirGUID );
}
@Override
public GUID getOriginalGuidByNodeGuid( String tagName, GUID nodeGUID ) {
return this.trieTreeManipulator.getOriginalGuidByNodeGuid( tagName, nodeGUID );
}
@Override
public List fetchOriginalGuid( String tagName ) {
return this.trieTreeManipulator.fetchOriginalGuid( tagName );
}
@Override
public List fetchOriginalGuidRoot( String tagName ) {
return this.trieTreeManipulator.fetchOriginalGuidRoot( tagName );
}
@Override
public ReparseLinkNode getReparseLinkNodeByNodeGuid( String tagName, GUID nodeGUID ) {
return this.trieTreeManipulator.getReparseLinkNodeByNodeGuid( tagName, nodeGUID );
}
@Override
public ReparseLinkNode getReparseLinkNode( String tagName, GUID parentDirGuid ) {
return this.trieTreeManipulator.getReparseLinkNode( tagName, parentDirGuid );
}
@Override
public GUID getOriginalGuid( GUID tagGuid ) {
return this.trieTreeManipulator.getOriginalGuidByTagGuid( tagGuid );
}
@Override
public void removeReparseLink( GUID guid ) {
this.trieTreeManipulator.removeReparseLink( guid );
}
@Override
public boolean hasOwnProperty(Object key) {
return this.containsKey( key );
}
@Override
public boolean containsKey(Object key) {
if( key instanceof GUID ) {
return this.containsKey((GUID) key );
}
else if( key instanceof String ) {
return this.containsKey( (new GUID72((String)key)) );
}
return false;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/UniImperialTree.java
================================================
package com.pinecone.hydra.unit.imperium;
public interface UniImperialTree extends ImperialTree {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/entity/BranchNode.java
================================================
package com.pinecone.hydra.unit.imperium.entity;
import com.pinecone.framework.util.id.GUID;
public interface BranchNode extends EntityNode {
String getName();
GUID getGuid();
default String getMetaType() {
return this.className().replace("Generic","");
}
default BranchNode evinceBranchNode(){
return this;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/entity/ElementumNode.java
================================================
package com.pinecone.hydra.unit.imperium.entity;
public interface ElementumNode extends TreeNode, MetadataNode {
default ElementumNode evinceElementNode() {
return this;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/entity/EntityNode.java
================================================
package com.pinecone.hydra.unit.imperium.entity;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
public interface EntityNode extends Pinenut {
String getName();
GUID getGuid();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/entity/MetaEntryNode.java
================================================
package com.pinecone.hydra.unit.imperium.entity;
public interface MetaEntryNode extends EntityNode, MetadataNode {
default MetaEntryNode evinceEntryNode() {
return this;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/entity/MetadataNode.java
================================================
package com.pinecone.hydra.unit.imperium.entity;
public interface MetadataNode extends EntityNode {
default MetadataNode evinceMetadataNode() {
return this;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/entity/ReparseLinkNode.java
================================================
package com.pinecone.hydra.unit.imperium.entity;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.imperium.LinkedType;
public interface ReparseLinkNode extends EntityNode {
@Override
default String getName() {
return this.getTagName();
}
@Override
default GUID getGuid() {
return this.getTagGuid();
}
String getTagName();
GUID getTagGuid();
LinkedType getLinkedType();
GUID getTargetNodeGuid();
GUID getParentNodeGuid();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/entity/SkeletonNode.java
================================================
package com.pinecone.hydra.unit.imperium.entity;
public interface SkeletonNode extends EntityNode {
default SkeletonNode evinceSkeletonNode(){
return this;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/entity/TreeNode.java
================================================
package com.pinecone.hydra.unit.imperium.entity;
import com.pinecone.framework.util.id.GUID;
public interface TreeNode extends SkeletonNode {
String getName();
GUID getGuid();
default String getMetaType() {
return this.className().replace("Generic","");
}
default TreeNode evinceTreeNode(){
return this;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/entity/TreeReparseLinkNode.java
================================================
package com.pinecone.hydra.unit.imperium.entity;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.imperium.LinkedType;
public class TreeReparseLinkNode implements ReparseLinkNode {
protected String tagName;
protected GUID tagGuid;
protected LinkedType linkedType;
protected GUID targetNodeGuid;
protected GUID parentNodeGuid;
public TreeReparseLinkNode(){
}
@Override
public String getTagName() {
return this.tagName;
}
public void setTagName( String tagName ) {
this.tagName = tagName;
}
@Override
public GUID getTagGuid() {
return this.tagGuid;
}
public void setTagGuid( GUID tagGuid ) {
this.tagGuid = tagGuid;
}
@Override
public LinkedType getLinkedType() {
return this.linkedType;
}
public void setLinkedType( LinkedType linkedType ) {
this.linkedType = linkedType;
}
@Override
public GUID getTargetNodeGuid() {
return this.targetNodeGuid;
}
public void setTargetNodeGuid( GUID targetNodeGuid ) {
this.targetNodeGuid = targetNodeGuid;
}
@Override
public GUID getParentNodeGuid() {
return this.parentNodeGuid;
}
public void setParentNodeGuid( GUID parentNodeGuid ) {
this.parentNodeGuid = parentNodeGuid;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/operator/OperatorFactory.java
================================================
package com.pinecone.hydra.unit.imperium.operator;
import com.pinecone.framework.system.prototype.Pinenut;
public interface OperatorFactory extends Pinenut {
void register( String typeName, TreeNodeOperator functionalNodeOperation );
TreeNodeOperator getOperator(String typeName);
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/operator/TreeNodeOperator.java
================================================
package com.pinecone.hydra.unit.imperium.operator;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
public interface TreeNodeOperator extends Pinenut {
GUID insert( TreeNode treeNode );
void purge( GUID guid );
TreeNode get( GUID guid ) ;
TreeNode get( GUID guid, int depth );
TreeNode getAsRootDepth( GUID guid );
void update( TreeNode treeNode );
void updateName( GUID guid ,String name );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/source/TireOwnerManipulator.java
================================================
package com.pinecone.hydra.unit.imperium.source;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.imperium.LinkedType;
import java.util.List;
public interface TireOwnerManipulator extends Pinenut {
void insertRootNode ( GUID guid, LinkedType linkedType );
default void insertRootNode ( GUID guid ) {
this.insertRootNode( guid, LinkedType.Owned );
}
void insert( GUID targetGuid, GUID parentGUID, LinkedType linkedType );
default void insertOwnedNode( GUID targetGuid, GUID parentGUID ) {
this.insert( targetGuid, parentGUID, LinkedType.Owned );
}
default void insertHardLinkedNode( GUID targetGuid, GUID parentGUID ) {
this.insert( targetGuid, parentGUID, LinkedType.Hard );
}
void update( GUID targetGuid, GUID parentGUID, LinkedType linkedType );
void updateParentGuid( GUID targetGuid, GUID parentGUID );
void updateLinkedType( GUID targetGuid, LinkedType linkedType );
void remove( GUID subordinateGuid, GUID ownerGuid );
void removeBySubordinate( GUID subordinateGuid );
void removeByOwner( GUID OwnerGuid );
GUID getOwner( GUID subordinateGuid );
List getSubordinates( GUID guid );
void setLinkedType ( GUID sourceGuid, GUID targetGuid, LinkedType linkedType );
default void setOwned ( GUID sourceGuid, GUID targetGuid ) {
this.setLinkedType( sourceGuid, targetGuid, LinkedType.Owned );
}
default void setHardLink ( GUID sourceGuid, GUID targetGuid ) {
this.setLinkedType( sourceGuid, targetGuid, LinkedType.Hard );
}
LinkedType getLinkedType ( GUID childGuid,GUID parentGuid );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/source/TreeMasterManipulator.java
================================================
package com.pinecone.hydra.unit.imperium.source;
import com.pinecone.hydra.system.ko.driver.KOISkeletonMasterManipulator;
public interface TreeMasterManipulator extends KOISkeletonMasterManipulator {
TireOwnerManipulator getTireOwnerManipulator();
TrieTreeManipulator getTrieTreeManipulator();
TriePathCacheManipulator getTriePathCacheManipulator();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/source/TriePathCacheManipulator.java
================================================
package com.pinecone.hydra.unit.imperium.source;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
public interface TriePathCacheManipulator extends Pinenut {
void insert ( GUID guid, String path );
void insertLongPath( GUID guid, String path, String longPath );
void remove ( GUID guid );
String getPath ( GUID guid );
GUID getNode ( String path );
GUID queryGUIDByPath( String path );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/imperium/source/TrieTreeManipulator.java
================================================
package com.pinecone.hydra.unit.imperium.source;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.uoi.UOI;
import com.pinecone.hydra.unit.imperium.GUIDImperialTrieNode;
import com.pinecone.hydra.unit.imperium.LinkedType;
import com.pinecone.hydra.unit.imperium.entity.ReparseLinkNode;
import java.util.List;
public interface TrieTreeManipulator extends Pinenut {
void insert( TireOwnerManipulator ownerManipulator, GUIDImperialTrieNode node );
/** With detail meta data node information. */
GUIDImperialTrieNode getNode(GUID guid );
boolean contains( GUID key ) ;
/** Only with tree node index information. */
GUIDImperialTrieNode getTreeNodeOnly(GUID guid, GUID parentGuid );
long countNode( GUID guid, GUID parentGuid );
// TODO
void insertNode( GUID guid, GUIDImperialTrieNode distributedTreeNode );
// TODO
void updateNode( GUID guid, GUIDImperialTrieNode distributedTreeNode );
/** Purge / Deletion */
void purge ( GUID guid );
void removeTreeNode( GUID guid );
void removeTreeNodeByParentGuid( GUID parentGuid );
void removeTreeNodeYoke( GUID guid, GUID parentGuid );
void removeTreeNodeWithLinkedType( GUID guid, LinkedType linkedType );
void removeNodeMeta( GUID guid );
default void removeOwnedTreeNode ( GUID guid ) {
this.removeTreeNodeWithLinkedType( guid, LinkedType.Owned );
}
default void removeHardLinkedTreeNode ( GUID guid ) {
this.removeTreeNodeWithLinkedType( guid, LinkedType.Hard );
}
/** Lineage / Affinity */
List getChildren(GUID guid );
List fetchChildrenGuids( GUID parentGuid );
List fetchParentGuids( GUID guid );
void removeInheritance( GUID childNode, GUID parentGUID );
void addChild( GUID childGuid, GUID parentGuid );
void updateType ( UOI type, GUID guid );
List fetchRoot();
boolean isRoot( GUID guid );
/** Link / Reference */
/**
* Querying link-count, that the node be linked by its owner. [Strong/Weak]
* 获取节点引用计数。 [根据强弱引用条件]
* @return the link-count, which its has been linked.
*/
long queryLinkedCount( GUID guid, LinkedType linkedType );
long queryAllLinkedCount( GUID guid );
default long queryStrongLinkedCount( GUID guid ) {
return this.queryLinkedCount( guid, LinkedType.Owned );
}
default long queryWeakLinkedCount( GUID guid ) {
return this.queryLinkedCount( guid, LinkedType.Hard );
}
void newLinkTag( GUID originalGuid, GUID dirGuid, String tagName, GUID tagGuid, LinkedType linkedType );
default void newLinkTag( GUID originalGuid, GUID dirGuid, String tagName, GUID tagGuid ) {
this.newLinkTag( originalGuid, dirGuid, tagName, tagGuid, LinkedType.Hard );
}
void updateLinkTagName( GUID tagGuid, String tagName );
GUID getOriginalGuid( String tagName,GUID parentDirGuid );
GUID getOriginalGuidByNodeGuid( String tagName, GUID nodeGUID );
ReparseLinkNode getReparseLinkNode( String tagName, GUID parentDirGuid );
ReparseLinkNode getReparseLinkNodeByNodeGuid( String tagName, GUID nodeGUID );
List fetchOriginalGuid( String tagName );
List fetchOriginalGuidRoot( String tagName );
boolean isTagGuid( GUID guid );
GUID getOriginalGuidByTagGuid( GUID tagGuid );
void removeReparseLink( GUID guid );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/ArchQueueTableMeta.java
================================================
package com.pinecone.hydra.unit.iqueue;
public abstract class ArchQueueTableMeta implements QueueMeta {
protected String mszQueueTableName;
public ArchQueueTableMeta(String queueTableName ) {
this.mszQueueTableName = queueTableName;
}
public ArchQueueTableMeta(){}
public void setQueueTableName( String queueTableName ) {
this.mszQueueTableName = queueTableName;
}
@Override
public String getQueueTable() {
return this.mszQueueTableName;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/ConfigurableMegaDeflectPriorityQueueMeta.java
================================================
package com.pinecone.hydra.unit.iqueue;
public class ConfigurableMegaDeflectPriorityQueueMeta extends ArchQueueTableMeta implements MegaDeflectPriorityQueueMeta {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/ConfigurableMegaStratumQueueMeta.java
================================================
package com.pinecone.hydra.unit.iqueue;
public class ConfigurableMegaStratumQueueMeta extends ArchQueueTableMeta implements MegaStratumQueueMeta {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/DPQueueManipulator.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.iqueue.entity.QueueElement;
import java.util.List;
public interface DPQueueManipulator extends Pinenut {
void pushBack(QueueElement queueElement, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta);
void pushFront( QueueElement queueElement, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
void incrementLinkedPriorities( QueueElement queueElement, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
QueueElement popFront( long currentPos, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
List batchPopFront( long currentPos, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta, long limit, long offset );
QueueElement popBack( String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
List batchPopBack( String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta, long limit, long offset );
long queryQueueSize( String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
QueueElement remove( long currentPos, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
QueueElement query( long enumId, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
List fetchElementByPriority( long priority, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta, long limit, long offset );
List fetchElement( String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta, long limit, long offset );
List fetchElementGuid( String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta, long limit, long offset );
QueueElement getByIndex( long index, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
Long nextPos( long currentPos, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
Long getIndexPriority( long currentPos, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/DPStratumQueueManipulator.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.hydra.unit.iqueue.entity.QueueElement;
import com.pinecone.hydra.unit.iqueue.entity.QueueStratumElement;
public interface DPStratumQueueManipulator extends Pinenut {
void pushBack(QueueStratumElement queueElement, String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta);
QueueStratumElement popFront( String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
void removeFront( String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
long isEmpty( String sharedSegmentField, String sharedSegmentName, QueueMeta queueMeta );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/DeflectPriorityQueue.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.iqueue.entity.QueueElement;
import java.util.List;
public interface DeflectPriorityQueue extends MegaPriorityQueue, SharedSegmentIQueue {
void pushBack( QueueElement queueElement );
void pushFront( QueueElement queueElement );
QueueElement getByIndex( long index );
QueueElement popFront();
List fetchElements( long offset, long limit );
List fetchElementGuids( long offset, long limit );
QueueElement popBack();
long size();
boolean isEmpty();
boolean contains( QueueElement queueElement );
void setCurrentPos( long mnCurrentPos );
void reset();
QueueElement remove( long enumId );
List fetchElementByPriority( long priority, long offset, long limit );
String getSegmentName();
QueueMasterManipulator getMasterManipulator();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/MagnitudeDPQueue.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.system.ko.driver.KOIMappingDriver;
import com.pinecone.hydra.unit.iqueue.entity.QueueElement;
import java.util.List;
public class MagnitudeDPQueue implements DeflectPriorityQueue, Cloneable {
private QueueMasterManipulator mQueueMasterManipulator;
private DPQueueManipulator mDPQueueManipulator;
private long mnCurrentPos;
private String mszSharedSegmentField;
private String mszSharedSegmentName;
private QueueMeta mQueueMeta;
public MagnitudeDPQueue( KOIMappingDriver driver, long currentPos,
String shareSegmentField, String sharedSegmentName, QueueMeta queueMeta ) {
this.mQueueMasterManipulator = (QueueMasterManipulator) driver.getMasterManipulator();
this.mDPQueueManipulator = this.mQueueMasterManipulator.getDPQueueManipulator();
this.mnCurrentPos = currentPos;
this.mszSharedSegmentField = shareSegmentField;
this.mszSharedSegmentName = sharedSegmentName;
this.mQueueMeta = queueMeta;
}
@Override
public String getSharedSegmentField() {
return this.mszSharedSegmentField;
}
@Override
public String getSharedSegmentName() {
return this.mszSharedSegmentName;
}
@Override
public void setCurrentPos( long currentPos ) {
this.mnCurrentPos = currentPos;
}
@Override
public void reset() {
this.setCurrentPos( 0 );
}
@Override
public MagnitudeDPQueue clone() {
try {
Object o = super.clone();
MagnitudeDPQueue neo = (MagnitudeDPQueue) o;
return neo;
}
catch ( CloneNotSupportedException ignore ) {
return null;
}
}
@Override
public void pushBack( QueueElement queueElement ) {
this.mDPQueueManipulator.pushBack( queueElement, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
}
@Override
public void pushFront( QueueElement queueElement ) {
this.mDPQueueManipulator.pushFront( queueElement, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
this.mDPQueueManipulator.incrementLinkedPriorities( queueElement, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
}
@Override
public QueueElement getByIndex( long index ) {
return this.mDPQueueManipulator.getByIndex( index, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
}
@Override
public QueueElement popFront() {
QueueElement peek = this.mDPQueueManipulator.popFront( this.mnCurrentPos, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
Long indexPriority = this.mDPQueueManipulator.getIndexPriority( this.mnCurrentPos, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
peek.setIndexPriority( indexPriority );
Long l = this.mDPQueueManipulator.nextPos( this.mnCurrentPos, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
if( l == null ) {
this.mnCurrentPos = -1;
}
else {
this.mnCurrentPos = l;
}
return peek;
}
@Override
public List fetchElements( long offset, long limit ) {
return this.mDPQueueManipulator.fetchElement( this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta, limit, offset );
}
@Override
public List fetchElementGuids( long offset, long limit ) {
return this.mDPQueueManipulator.fetchElementGuid( this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta, limit, offset );
}
@Override
public QueueElement popBack() {
return this.mDPQueueManipulator.popBack( this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
}
@Override
public long size() {
return this.mDPQueueManipulator.queryQueueSize( this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
}
@Override
public boolean isEmpty() {
return this.mDPQueueManipulator.queryQueueSize( this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta ) == 0;
}
@Override
public boolean contains( QueueElement queueElement ) {
QueueElement query = this.mDPQueueManipulator.query( queueElement.getEnumId(), this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
return !(query == null);
}
@Override
public QueueElement remove( long enumId ) {
return this.mDPQueueManipulator.remove( this.mnCurrentPos, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
}
@Override
public List fetchElementByPriority( long priority, long limit, long offset ) {
return this.mDPQueueManipulator.fetchElementByPriority( priority, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta, limit, offset );
}
@Override
public String getSegmentName() {
return this.mszSharedSegmentName;
}
public long currentPosition() {
return this.mnCurrentPos;
}
@Override
public QueueMasterManipulator getMasterManipulator() {
return this.mQueueMasterManipulator;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/MegaDPStratumQueue.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.hydra.system.ko.driver.KOIMappingDriver;
import com.pinecone.hydra.unit.iqueue.entity.QueueElement;
import com.pinecone.hydra.unit.iqueue.entity.QueueStratumElement;
public class MegaDPStratumQueue implements MegaStratumQueue {
private QueueMasterManipulator mQueueMasterManipulator;
private DPStratumQueueManipulator mDPStratumQueueManipulator;
private String mszSharedSegmentField;
private String mszSharedSegmentName;
private QueueMeta mQueueMeta;
public MegaDPStratumQueue(
KOIMappingDriver driver, String shareSegmentField,
String sharedSegmentName, QueueMeta queueMeta
) {
this.mQueueMasterManipulator = (QueueMasterManipulator) driver.getMasterManipulator();
this.mDPStratumQueueManipulator = this.mQueueMasterManipulator.getDPStratumQueueManipulator();
this.mszSharedSegmentName = sharedSegmentName;
this.mszSharedSegmentField = shareSegmentField;
this.mQueueMeta = queueMeta;
}
@Override
public void pushBack(QueueStratumElement queueElement) {
this.mDPStratumQueueManipulator.pushBack( queueElement, this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
}
@Override
public QueueStratumElement popFront() {
QueueStratumElement queueStratumElement = this.mDPStratumQueueManipulator.popFront(this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta);
this.mDPStratumQueueManipulator.removeFront( this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta );
return queueStratumElement;
}
@Override
public boolean isEmpty() {
return this.mDPStratumQueueManipulator.isEmpty( this.mszSharedSegmentField, this.mszSharedSegmentName, this.mQueueMeta ) == 0;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/MegaDeflectPriorityQueueMeta.java
================================================
package com.pinecone.hydra.unit.iqueue;
public interface MegaDeflectPriorityQueueMeta extends QueueMeta {
void setQueueTableName( String queueTableName );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/MegaPriorityQueue.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.framework.system.prototype.Pinenut;
public interface MegaPriorityQueue extends Pinenut {
//List fetchElements( long offset, long pageSize );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/MegaStratumQueue.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.hydra.unit.iqueue.entity.QueueElement;
import com.pinecone.hydra.unit.iqueue.entity.QueueStratumElement;
public interface MegaStratumQueue extends Pinenut {
void pushBack( QueueStratumElement queueElement);
QueueStratumElement popFront();
boolean isEmpty();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/MegaStratumQueueMeta.java
================================================
package com.pinecone.hydra.unit.iqueue;
public interface MegaStratumQueueMeta extends QueueMeta {
void setQueueTableName( String queueTableName );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/QueueExistManipulator.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
public interface QueueExistManipulator extends Pinenut {
void insertQueueExist(GUID layerGuid );
void insertQueueNotExist(GUID layerGuid );
void setQueueExist(GUID layerGuid);
void setQueueNotExist(GUID layerGuid);
boolean isExist( GUID layer_guid );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/QueueMasterManipulator.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.hydra.system.ko.driver.KOIMasterManipulator;
public interface QueueMasterManipulator extends KOIMasterManipulator {
DPQueueManipulator getDPQueueManipulator();
DPStratumQueueManipulator getDPStratumQueueManipulator();
QueueExistManipulator getQueueExistManipulator();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/QueueMeta.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.framework.system.prototype.Pinenut;
public interface QueueMeta extends Pinenut {
String getQueueTable();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/SharedSegmentIQueue.java
================================================
package com.pinecone.hydra.unit.iqueue;
import com.pinecone.framework.system.prototype.Pinenut;
public interface SharedSegmentIQueue extends Pinenut {
String getSharedSegmentField();
String getSharedSegmentName();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/entity/GenericQueueElement.java
================================================
package com.pinecone.hydra.unit.iqueue.entity;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.json.homotype.BeanJSONEncoder;
public class GenericQueueElement implements QueueElement {
protected long mnEnumId;
protected GUID mObjectGuid;
protected long mnPriority;
protected long mnLinkedPriority;
protected long mnIndexPriority;
protected double mBias;
@Override
public long getEnumId() {
return 0;
}
public void setEnumId( long enumId ) {
this.mnEnumId = enumId;
}
@Override
public GUID getObjectGuid() {
return this.mObjectGuid;
}
public void setObjectGuid( GUID objectGuid ) {
this.mObjectGuid = objectGuid;
}
@Override
public long getPriority() {
return this.mnPriority;
}
public void setPriority( long priority ) {
this.mnPriority = priority;
}
@Override
public long getLinkedPriority() {
return this.mnLinkedPriority;
}
public void setLinkedPriority( long linkedPriority ) {
this.mnLinkedPriority = linkedPriority;
}
@Override
public long getIndexPriority() {
return this.mnIndexPriority;
}
public void setIndexPriority( long indexPriority ) {
this.mnIndexPriority = indexPriority;
}
@Override
public long getActualPriority() {
return 0;
}
@Override
public double getBias() {
return this.mBias;
}
public void setBias( double bias ) {
this.mBias = bias;
}
@Override
public String toJSONString() {
return BeanJSONEncoder.BasicEncoder.encode( this );
}
@Override
public String toString() {
return this.toJSONString();
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/entity/GenericStratumQueueElement.java
================================================
package com.pinecone.hydra.unit.iqueue.entity;
public class GenericStratumQueueElement extends GenericQueueElement implements QueueStratumElement{
protected short mStratum;
@Override
public void setStratum(short stratum) {
this.mStratum = stratum;
}
@Override
public short getStratum() {
return this.mStratum;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/entity/QueueElement.java
================================================
package com.pinecone.hydra.unit.iqueue.entity;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
public interface QueueElement extends Pinenut {
long getEnumId();
GUID getObjectGuid();
long getPriority();
long getLinkedPriority();
long getIndexPriority();
void setIndexPriority( long indexPriority );
long getActualPriority();
double getBias();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/iqueue/entity/QueueStratumElement.java
================================================
package com.pinecone.hydra.unit.iqueue.entity;
public interface QueueStratumElement extends QueueElement {
void setStratum( short stratum );
short getStratum();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/ArchAtlasInstrument.java
================================================
package com.pinecone.hydra.unit.vgraph;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.hydra.system.Hydrogen;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
import com.pinecone.hydra.unit.vgraph.algo.BasicDAGPathResolver;
import com.pinecone.hydra.unit.vgraph.algo.BasicDAGPathSelector;
import com.pinecone.hydra.unit.vgraph.algo.DAGPathResolver;
import com.pinecone.hydra.unit.vgraph.algo.DAGPathSelector;
import com.pinecone.hydra.unit.vgraph.entity.GraphNode;
import com.pinecone.hydra.unit.vgraph.layer.LayerInstrument;
import com.pinecone.hydra.unit.vgraph.source.AtlasMappingDriver;
import com.pinecone.hydra.unit.vgraph.source.AtlasMasterManipulator;
import com.pinecone.hydra.unit.vgraph.source.VectorGraphManipulator;
import com.pinecone.hydra.unit.vgraph.source.VectorGraphMasterManipulator;
import com.pinecone.hydra.unit.vgraph.source.VectorGraphPathCacheManipulator;
import com.pinecone.ulf.util.guid.GUIDs;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.Queue;
public abstract class ArchAtlasInstrument implements AtlasInstrument {
protected AtlasInstrument mParentInstrument;
protected LayerInstrument mLayerInstrument;
protected Hydrogen mHydrogen;
protected Processum mSuperiorProcess;
protected GuidAllocator mGuidAllocator;
protected DAGPathResolver mPathResolver;
protected DAGPathSelector mPathSelector;
protected AtlasMasterManipulator mAtlasMasterManipulator;
protected VectorGraphMasterManipulator mVectorGraphMasterManipulator;
protected VectorGraphPathCacheManipulator mVectorGraphPathCacheManipulator;
protected VectorGraphManipulator mVectorGraphManipulator;
protected VectorGraphConfig mVectorGraphConfig;
public ArchAtlasInstrument(
AtlasMappingDriver atlasMappingDriver,
VectorGraphConfig vectorGraphConfig,
LayerInstrument layerInstrument
) {
this.mLayerInstrument = layerInstrument;
this.mVectorGraphConfig = vectorGraphConfig;
this.mSuperiorProcess = atlasMappingDriver.getSuperiorProcess();
this.mAtlasMasterManipulator = atlasMappingDriver.getMasterManipulator();
this.mVectorGraphMasterManipulator = this.mAtlasMasterManipulator.getVectorGraphMasterManipulator();
this.mVectorGraphManipulator = this.mVectorGraphMasterManipulator.getVectorGraphManipulator();
this.mVectorGraphPathCacheManipulator = this.mVectorGraphMasterManipulator.getVectorGraphPathCacheManipulator();
if ( this.mSuperiorProcess instanceof Hydrogen) {
this.mHydrogen = (Hydrogen) this.mSuperiorProcess;
}
else {
this.mHydrogen = (Hydrogen) this.mSuperiorProcess.parentSystem();
}
this.mGuidAllocator = GUIDs.newGuidAllocator();
this.mPathResolver = new BasicDAGPathResolver();//后续要使用配置类指定
this.mPathSelector = new BasicDAGPathSelector( this.mPathResolver, this.mVectorGraphManipulator );
}
public ArchAtlasInstrument( AtlasMappingDriver driver, LayerInstrument layerInstrument ) {
this( driver, null, layerInstrument );
}
@Override
public LayerInstrument layerInstrument() {
return this.mLayerInstrument;
}
@Override
public AtlasInstrument parent() {
return this.mParentInstrument;
}
@Override
public Processum getSuperiorProcess() {
return this.mSuperiorProcess;
}
@Override
public void setParent(AtlasInstrument atlasInstrument) {
this.mParentInstrument = atlasInstrument;
}
@Override
public AtlasMasterManipulator getMasterManipulator() {
return this.mAtlasMasterManipulator;
}
@Override
public VectorGraphConfig getConfig() {
return this.mVectorGraphConfig;
}
@Override
public GuidAllocator getGuidAllocator() {
return this.mGuidAllocator;
}
@Override
public List getPath(GUID guid) {
return this.getNS( guid, "/" );
}
@Override
public GUID queryGUIDByPath(String path) {
return this.queryGUIDByNS( path, null, null );
}
@Override
public GUID queryParentID(GUID guid) {
return null;
}
@Override
public boolean contains( GUID handleNode, GUID nodeGuid) {
return this.mPathSelector.contains( handleNode, nodeGuid );
}
@Override
public GUID put( GraphNode graphNode ) {
GUID guid = this.mGuidAllocator.nextGUID();
graphNode.setId( guid );
this.mVectorGraphManipulator.insertGraphNode( graphNode );
return guid;
}
@Override
public GUID put( GUID parentGuid, GraphNode graphNode ) {
GUID guid = this.mGuidAllocator.nextGUID();
graphNode.setId( guid );
this.mVectorGraphManipulator.insertNodeByEdge( parentGuid, graphNode );
return guid;
}
@Override
public GraphNode get( GUID guid ) {
return this.mVectorGraphManipulator.queryNode( guid );
}
@Override
public GUID queryGUIDByNS( String path, String szBadSep, String szTargetSep ) {
if( szTargetSep != null ) {
path = path.replace( szBadSep, szTargetSep );
}
String[] parts = this.mPathResolver.segmentPathParts( path );
List resolvedParts = this.mPathResolver.resolvePath( parts );
path = this.mPathResolver.assemblePath( resolvedParts );
GUID guid = this.mVectorGraphPathCacheManipulator.queryGUIDByPath( path );
if ( guid != null ){
return guid;
}
guid = this.mPathSelector.searchId( resolvedParts );
if( guid != null ){
this.mVectorGraphPathCacheManipulator.insert( path, guid );
}
return guid;
}
@Override
public TreeNode get( GUID guid, int depth) {
return null;
}
@Override
public void remove( GUID guid ) {
this.mVectorGraphManipulator.removeNode( guid );
this.mVectorGraphPathCacheManipulator.remove( guid );
}
@Override
public void remove( String path ) {
GUID guid = this.queryGUIDByPath(path);
if( guid != null ) {
this.remove( guid );
}
}
@Override
public List getChildren( GUID guid ) {
return this.mVectorGraphManipulator.fetchChildNodes( guid );
}
@Override
public List fetchChildrenIds( GUID guid ) {
return this.mVectorGraphManipulator.fetchChildNodeIds( guid );
}
@Override
public void rename( GUID guid, String name ) {
}
/**使用bfs找到所有可达路径**/
protected List getNS( GUID guid, String szSeparator ){
// 先检查缓存
List path = this.mVectorGraphPathCacheManipulator.getPath( guid );
if (path != null && !path.isEmpty()) {
return path;
}
GraphNode startNode = this.get(guid);
if (startNode == null) {
return Collections.emptyList();
}
List allPaths = new ArrayList<>();
Queue queue = new LinkedList<>();
queue.offer( new GraphNodePair(startNode, startNode.getName()) );
while ( !queue.isEmpty() ) {
GraphNodePair current = queue.poll();
GraphNode currentNode = current.getGraphNode();
String currentPath = current.getCurrentPath();
List parentIds = this.mVectorGraphManipulator.fetchParentIds( currentNode.getId() );
if ( parentIds.isEmpty() || !this.allNonNull(parentIds) ) {
allPaths.add(currentPath);
continue;
}
// 遍历所有非空的父节点
for (GUID parentId : parentIds) {
if (parentId != null) {
GraphNode parentNode = this.get(parentId);
if (parentNode != null) {
String newPath = parentNode.getName() + szSeparator + currentPath;
queue.offer(new GraphNodePair(parentNode, newPath));
}
}
}
}
if (!allPaths.isEmpty()) {
for ( String s : allPaths ) {
this.mVectorGraphPathCacheManipulator.insert( s, guid );
}
}
return allPaths;
}
private boolean allNonNull( List> list ) {
return list.stream().noneMatch( Objects::isNull );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/ArchVectorDAG.java
================================================
package com.pinecone.hydra.unit.vgraph;
import com.pinecone.framework.util.id.GUID;
public abstract class ArchVectorDAG implements VectorDAG {
protected GUID mGraphGuid;
protected VectorGraphConfig mVectorGraphConfig;
// Temporary Graph
public ArchVectorDAG( GUID graphGuid, VectorGraphConfig vectorGraphConfig ) {
this.mVectorGraphConfig = vectorGraphConfig;
this.mGraphGuid = graphGuid;
}
@Override
public VectorGraphConfig getConfig() {
return this.mVectorGraphConfig;
}
@Override
public GUID getGraphGuid() {
return this.mGraphGuid;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/AtlasInstrument.java
================================================
package com.pinecone.hydra.unit.vgraph;
import com.pinecone.framework.system.executum.Processum;
import com.pinecone.framework.system.regime.Instrument;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.framework.util.id.GuidAllocator;
import com.pinecone.hydra.unit.imperium.entity.TreeNode;
import com.pinecone.hydra.unit.vgraph.entity.GraphNode;
import com.pinecone.hydra.unit.vgraph.layer.Layer;
import com.pinecone.hydra.unit.vgraph.layer.LayerInstrument;
import com.pinecone.hydra.unit.vgraph.source.AtlasMasterManipulator;
import java.util.List;
public interface AtlasInstrument extends Instrument {
AtlasInstrument parent();
LayerInstrument layerInstrument();
Processum getSuperiorProcess();
AtlasMasterManipulator getMasterManipulator();
VectorGraphConfig getConfig();
void setParent( AtlasInstrument atlasInstrument );
GuidAllocator getGuidAllocator();
List getPath( GUID guid );
GUID queryGUIDByPath( String path );
GUID queryParentID( GUID guid );
default GUID assertPath( String path, String pathType ) throws IllegalArgumentException {
GUID guid = this.queryGUIDByPath( path );
if( guid == null ) {
throw new IllegalArgumentException( "Undefined " + pathType + " '" + path + "'" );
}
return guid;
}
default GUID assertPath( String path ) throws IllegalArgumentException {
return this.assertPath( path, "path" );
}
boolean contains( GUID handleNode, GUID nodeGuid );
GUID put( GraphNode graphNode );
GUID put( GUID parentGuid, GraphNode graphNode );
GraphNode get( GUID guid );
GUID queryGUIDByNS( String path, String szBadSep, String szTargetSep );
TreeNode get(GUID guid, int depth );
void remove( GUID guid );
void remove( String path );
List getChildren( GUID guid );
List fetchChildrenIds(GUID guid );
void rename( GUID guid, String name );
VectorDAG toVectorDAG( Layer layer );
void addChild( GUID parentGuid, GUID childGuid );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/GraphNodePair.java
================================================
package com.pinecone.hydra.unit.vgraph;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.hydra.unit.vgraph.entity.GraphNode;
public class GraphNodePair implements Pinenut {
private GraphNode mGraphNode;
private String mszCurrentPath;
public GraphNodePair( GraphNode graphNode, String currentPath){
this.mGraphNode = graphNode;
this.mszCurrentPath = currentPath;
}
public GraphNodePair(){}
public GraphNode getGraphNode() {
return mGraphNode;
}
public void setGraphNode(GraphNode graphNode) {
this.mGraphNode = graphNode;
}
public String getCurrentPath() {
return mszCurrentPath;
}
public void setCurrentPath(String sCurrentPath) {
this.mszCurrentPath = sCurrentPath;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/MagnitudeVectorDAG.java
================================================
package com.pinecone.hydra.unit.vgraph;
import java.util.List;
import com.pinecone.framework.system.Nullable;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.vgraph.entity.GraphNode;
import com.pinecone.hydra.unit.vgraph.layer.Layer;
import com.pinecone.hydra.unit.vgraph.source.VectorGraphManipulator;
import com.pinecone.hydra.unit.vgraph.source.VectorGraphMasterManipulator;
import com.pinecone.hydra.unit.vgraph.source.VectorGraphPathCacheManipulator;
public class MagnitudeVectorDAG extends ArchVectorDAG implements VectorDAG {
protected Layer mGraphLayer;
protected VectorGraphMasterManipulator mMasterManipulator;
protected VectorGraphManipulator mVectorGraphManipulator;
protected VectorGraphPathCacheManipulator mVectorGraphPathCacheManipulator;
public MagnitudeVectorDAG( Layer affliatedLayer, VectorGraphMasterManipulator masterManipulator, VectorGraphConfig vectorGraphConfig ) {
super( affliatedLayer.getGuid(), vectorGraphConfig );
this.mGraphLayer = affliatedLayer;
this.mMasterManipulator = masterManipulator;
this.mVectorGraphManipulator = this.mMasterManipulator.getVectorGraphManipulator();
this.mVectorGraphPathCacheManipulator = this.mMasterManipulator.getVectorGraphPathCacheManipulator();
}
@Override
public GUID getAffiliateLayerGuid() {
return this.mGraphLayer.getGuid();
}
@Override
public Layer getAffiliateLayer() {
return this.mGraphLayer;
}
@Override
public boolean isPersistenceGraph() {
return true;
}
@Override
public List fetchSourceGuids( long offset, long limit ) {
return this.mVectorGraphManipulator.fetchHandleGuids( offset, limit );
}
@Override
public List fetchSourceGuidsByTaskPriority( long offset, long limit ) {
return this.mVectorGraphManipulator.fetchHandleGuidsByTaskPriority(offset, limit);
}
@Override
public long countSourceNodes() {
return this.mVectorGraphManipulator.countSourceNodes();
}
@Override
public List fetchDownstreamNodeGuid( GUID nodeGuid, long offset, long limit ) {
return this.mVectorGraphManipulator.fetchDownstreamNodeGuid(nodeGuid,offset,limit);
}
@Override
public List fetchUpstreamNodeGuid( GUID nodeGuid, long offset, long limit ) {
return this.mVectorGraphManipulator.fetchUpstreamNodeGuid(nodeGuid,offset,limit);
}
@Override
public long queryInDegree( GUID nodeGuid ) {
return this.mVectorGraphManipulator.queryInDegree(nodeGuid);
}
@Override
public long queryOutDegree( GUID nodeGuid ) {
return this.mVectorGraphManipulator.queryOutDegree(nodeGuid);
}
@Override
public GraphNode get( GUID guid ) {
return this.mVectorGraphManipulator.queryNode( guid );
}
@Override
public void removeNode( GUID guid ) {
this.mVectorGraphManipulator.removeNode( guid );
this.mVectorGraphPathCacheManipulator.remove( guid );
}
@Override
public List fetchChildNodes( GUID guid ) {
return this.mVectorGraphManipulator.fetchChildNodes( guid );
}
@Override
public List fetchChildNodeGuids( GUID guid ) {
return this.mVectorGraphManipulator.fetchChildNodeGuids( guid );
}
@Override
public List fetchChildNodeGuids( long offset, long limit, GUID guid ) {
return this.mVectorGraphManipulator.limitFetchChildNodeGuids( offset, limit, guid );
}
@Override
public long countChildNodeNum( GUID guid ) {
return this.mVectorGraphManipulator.countChildNodeNums( guid );
}
@Override
public long getPriorityByInDegree( GUID guid ) {
return this.mVectorGraphManipulator.getPriorityByInDegree( guid );
}
@Override
public void addChild( GUID parentGuid, GUID childGuid ) {
this.mVectorGraphManipulator.addChild( parentGuid,childGuid );
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/VectorDAG.java
================================================
package com.pinecone.hydra.unit.vgraph;
import com.pinecone.framework.system.prototype.Pinenut;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.vgraph.entity.GraphNode;
import com.pinecone.hydra.unit.vgraph.layer.Layer;
import com.pinecone.hydra.unit.vgraph.layer.LayerInstrument;
import java.util.List;
public interface VectorDAG extends Pinenut {
GUID getGraphGuid();
GUID getAffiliateLayerGuid();
Layer getAffiliateLayer();
boolean isPersistenceGraph();
List fetchSourceGuids( long offset, long limit );
List fetchSourceGuidsByTaskPriority( long offset, long limit );
long countSourceNodes();
List fetchDownstreamNodeGuid( GUID nodeGuid, long offset, long limit );
List fetchUpstreamNodeGuid( GUID nodeGuid, long offset, long limit );
long queryInDegree( GUID nodeGuid );
long queryOutDegree( GUID nodeGuid );
VectorGraphConfig getConfig();
List fetchChildNodes( GUID guid );
List fetchChildNodeGuids( GUID guid );
List fetchChildNodeGuids( long offset, long limit, GUID guid );
long countChildNodeNum( GUID guid );
GraphNode get( GUID guid );
void removeNode( GUID guid );
long getPriorityByInDegree( GUID guid );
void addChild( GUID parentGuid, GUID childGuid );
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/VectorGraphConfig.java
================================================
package com.pinecone.hydra.unit.vgraph;
import com.pinecone.framework.system.prototype.Pinenut;
public interface VectorGraphConfig extends Pinenut {
String getPathNameSeparator();
String getFullNameSeparator();
String getPathNameSepRegex();
String getFullNameSepRegex();
int getShortPathLength();
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/VectorGraphConstants.java
================================================
package com.pinecone.hydra.unit.vgraph;
public class VectorGraphConstants {
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/algo/BasicDAGPathResolver.java
================================================
package com.pinecone.hydra.unit.vgraph.algo;
import java.util.ArrayList;
import java.util.List;
public class BasicDAGPathResolver implements DAGPathResolver {
protected String mszSepRegex;
protected String mszSeparator;
public BasicDAGPathResolver(String szSeparator, String szSepRegex ){
this.mszSeparator = szSeparator;
this.mszSepRegex = szSepRegex;
}
public BasicDAGPathResolver(){
this( "/", "/" );
}
@Override
public List resolvePath( String[] parts ) {
ArrayList resolvedParts = new ArrayList<>();
for (String part : parts) {
if ( part.equals(".") || part.isEmpty() ) {
continue;
}
if ( part.equals("..") ) {
if ( !resolvedParts.isEmpty() ) {
resolvedParts.remove( resolvedParts.size() - 1 );
}
}
else {
resolvedParts.add( part );
}
}
return resolvedParts;
}
@Override
public String resolvePath( String path ) {
String[] parts = this.processPath( path ).split( this.mszSepRegex );
return this.assemblePath( this.resolvePath( parts ) );
}
@Override
public List resolvePathParts( String path ) {
return this.resolvePath( this.segmentPathParts( path ) );
}
@Override
public String[] segmentPathParts( String path ) {
return this.processPath( path ).split( this.mszSepRegex );
}
@Override
public String assemblePath( List parts ) {
if ( parts == null || parts.size() == 0 ) {
return "";
}
StringBuilder path = new StringBuilder();
for ( int i = 0; i < parts.size(); ++i ) {
if ( i > 0 ) {
path.append( this.mszSeparator );
}
path.append( parts.get( i ) );
}
return path.toString();
}
protected String processPath( String path ) {
return path;
}
}
================================================
FILE: Hydra/hydra-architecture/src/main/java/com/pinecone/hydra/unit/vgraph/algo/BasicDAGPathSelector.java
================================================
package com.pinecone.hydra.unit.vgraph.algo;
import com.pinecone.framework.system.Nullable;
import com.pinecone.framework.util.Debug;
import com.pinecone.framework.util.id.GUID;
import com.pinecone.hydra.unit.vgraph.AtlasInstrument;
import com.pinecone.hydra.unit.vgraph.entity.GraphNode;
import com.pinecone.hydra.unit.vgraph.source.VectorGraphManipulator;
import java.util.List;
import java.util.Stack;
public class BasicDAGPathSelector implements DAGPathSelector {
protected DAGPathResolver mPathResolver;
protected VectorGraphManipulator mVectorGraphManipulator;
public BasicDAGPathSelector(DAGPathResolver pathResolver, VectorGraphManipulator vectorGraphManipulator ){
this.mPathResolver = pathResolver;
this.mVectorGraphManipulator = vectorGraphManipulator;
}
@Override
public GUID searchId(String[] parts) {
return this.searchId( parts, null );
}
@Override
public GUID searchId(String[] parts, @Nullable String[] lpResolvedPath) {
List resolvedParts = this.mPathResolver.resolvePath( parts );
if( lpResolvedPath != null ) {
lpResolvedPath[ 0 ] = this.mPathResolver.assemblePath( resolvedParts );
}
return this.searchId( resolvedParts );
}
@Override
public GUID searchId(List resolvedParts) {
return (GUID) this.dfsSearch( resolvedParts );
}
@Override
public GUID searchId(GUID parentId, String[] parts) {
return this.searchId(parentId, parts, null );
}
@Override
public GUID searchId(GUID parentId, String[] parts, @Nullable String[] lpResolvedPath) {
List resolvedParts = this.mPathResolver.resolvePath( parts );
if( lpResolvedPath != null ) {
lpResolvedPath[ 0 ] = this.mPathResolver.assemblePath( resolvedParts );
}
return this.searchId( parentId, resolvedParts );
}
@Override
public GUID searchId(GUID parentId, List resolvedParts) {
return (GUID) this.dfsSearch( parentId, resolvedParts );
}
@Override
public boolean contains(GUID handleNode, GUID nodeGuid) {
if( handleNode.equals(nodeGuid) ){
return true;
}
List nodes = this.mVectorGraphManipulator.fetchChildNodes(handleNode);
for( GraphNode node : nodes ){
contains( node.getId(), nodeGuid );
}
return false;
}
protected GUID dfsSearch(List parts ) {
return this.dfsSearch( null, parts );
}
/** 使用递归实现图的DFS遍历(考古专用) **/
protected Object dfsSearch(GUID parentID, List parts, int depth) {
if (depth == parts.size() - 1) {
List nodes = this.mVectorGraphManipulator.fetchNodesByName(parts.get(depth));
for (GraphNode graphNode : nodes) {
if (parentID == null || this.mVectorGraphManipulator.fetchParentIds(graphNode.getId()).equals(parentID)) {
return graphNode;
}
}
return null;
}
List nodes = this.mVectorGraphManipulator.fetchNodesByName(parts.get(depth));
for (GraphNode graphNode : nodes) {
if (parentID == null || this.mVectorGraphManipulator.fetchParentIds(graphNode.getId()).equals(parentID)) {
Object result = this.dfsSearch(graphNode.getId(), parts, depth + 1);
if (result != null) {
return result;
}
}
}
return null;
}
/** 非递归形式DFS遍历 **/
protected GUID dfsSearch(GUID parentID, List