gitextract_hhlu8y0b/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── feature_request.md │ │ └── question_or_bug_report.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── cloud_code_scan.yml │ ├── inactive_issues_robot.yml │ ├── linux_unit_test.yml │ ├── release.yml │ ├── snapshot.yml │ └── windows_unit_test.yml ├── .gitignore ├── .travis.yml ├── CLAUDE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Formatter.xml ├── HEADER ├── LICENSE ├── README.md ├── README_EN.md ├── SECURITY.md ├── change_version.sh ├── check_format.sh ├── codecov.yml ├── pom.xml ├── sofa-ark-bom/ │ ├── CLAUDE.md │ └── pom.xml ├── sofa-ark-parent/ │ ├── assembly/ │ │ ├── CLAUDE.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── assembly/ │ │ ├── assembly.xml │ │ └── mark │ ├── core/ │ │ ├── api/ │ │ │ ├── CLAUDE.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ └── api/ │ │ │ │ ├── ArkClient.java │ │ │ │ ├── ArkConfigs.java │ │ │ │ ├── ClientResponse.java │ │ │ │ └── ResponseCode.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ └── api/ │ │ │ │ └── ArkConfigsTest.java │ │ │ └── resources/ │ │ │ └── test.props │ │ ├── common/ │ │ │ ├── CLAUDE.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── alipay/ │ │ │ │ │ └── sofa/ │ │ │ │ │ └── ark/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ └── ArkLogbackContextSelector.java │ │ │ │ │ ├── guice/ │ │ │ │ │ │ └── AbstractArkGuiceModule.java │ │ │ │ │ ├── log/ │ │ │ │ │ │ ├── ArkLogger.java │ │ │ │ │ │ └── ArkLoggerFactory.java │ │ │ │ │ ├── thread/ │ │ │ │ │ │ ├── CommonThreadPool.java │ │ │ │ │ │ ├── NamedThreadFactory.java │ │ │ │ │ │ └── ThreadPoolManager.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── AssertUtils.java │ │ │ │ │ ├── BizIdentityUtils.java │ │ │ │ │ ├── ClassLoaderUtils.java │ │ │ │ │ ├── ClassUtils.java │ │ │ │ │ ├── EnvironmentUtils.java │ │ │ │ │ ├── FileUtils.java │ │ │ │ │ ├── OrderComparator.java │ │ │ │ │ ├── ParseUtils.java │ │ │ │ │ ├── PortSelectUtils.java │ │ │ │ │ ├── ReflectionUtils.java │ │ │ │ │ ├── SimpleByteBuffer.java │ │ │ │ │ ├── StringUtils.java │ │ │ │ │ └── ThreadPoolUtils.java │ │ │ │ └── resources/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ └── log/ │ │ │ │ ├── log4j/ │ │ │ │ │ └── log-conf.xml │ │ │ │ ├── log4j2/ │ │ │ │ │ └── log-conf.xml │ │ │ │ └── logback/ │ │ │ │ └── log-conf.xml │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ └── common/ │ │ │ │ ├── adapter/ │ │ │ │ │ └── ArkLogbackContextSelectorTest.java │ │ │ │ ├── thread/ │ │ │ │ │ └── CommonThreadPoolTest.java │ │ │ │ └── util/ │ │ │ │ ├── AssertUtilsTest.java │ │ │ │ ├── BizIdentityUtilsTest.java │ │ │ │ ├── ClassLoaderUtilTest.java │ │ │ │ ├── ClassUtilsTest.java │ │ │ │ ├── FileUtilsTest.java │ │ │ │ ├── ParseUtilsTest.java │ │ │ │ ├── PortSelectUtilsTest.java │ │ │ │ ├── SimpleByteBufferTest.java │ │ │ │ └── StringUtilsTest.java │ │ │ └── resources/ │ │ │ ├── plugins/ │ │ │ │ └── sample-skywalking-agent-plugin.jar │ │ │ ├── sample-biz.jar │ │ │ └── sample-skywalking-agent.jar │ │ ├── exception/ │ │ │ ├── CLAUDE.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── exception/ │ │ │ ├── ArkLoaderException.java │ │ │ └── ArkRuntimeException.java │ │ ├── pom.xml │ │ └── spi/ │ │ ├── CLAUDE.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── spi/ │ │ │ ├── archive/ │ │ │ │ ├── AbstractArchive.java │ │ │ │ ├── Archive.java │ │ │ │ ├── BizArchive.java │ │ │ │ ├── ContainerArchive.java │ │ │ │ ├── ExecutableArchive.java │ │ │ │ └── PluginArchive.java │ │ │ ├── argument/ │ │ │ │ ├── CommandArgument.java │ │ │ │ └── LaunchCommand.java │ │ │ ├── command/ │ │ │ │ └── Command.java │ │ │ ├── constant/ │ │ │ │ └── Constants.java │ │ │ ├── event/ │ │ │ │ ├── AbstractArkEvent.java │ │ │ │ ├── AfterFinishDeployEvent.java │ │ │ │ ├── AfterFinishStartupEvent.java │ │ │ │ ├── ArkEvent.java │ │ │ │ ├── biz/ │ │ │ │ │ ├── AfterAllBizStartupEvent.java │ │ │ │ │ ├── AfterBizStartupEvent.java │ │ │ │ │ ├── AfterBizStartupFailedEvent.java │ │ │ │ │ ├── AfterBizStopEvent.java │ │ │ │ │ ├── AfterBizStopFailedEvent.java │ │ │ │ │ ├── AfterBizSwitchEvent.java │ │ │ │ │ ├── BeforeBizRecycleEvent.java │ │ │ │ │ ├── BeforeBizStartupEvent.java │ │ │ │ │ ├── BeforeBizStopEvent.java │ │ │ │ │ └── BeforeBizSwitchEvent.java │ │ │ │ └── plugin/ │ │ │ │ ├── AfterPluginStartupEvent.java │ │ │ │ ├── AfterPluginStopEvent.java │ │ │ │ ├── BeforePluginStartupEvent.java │ │ │ │ └── BeforePluginStopEvent.java │ │ │ ├── ext/ │ │ │ │ ├── ExtResponse.java │ │ │ │ └── ExtServiceProvider.java │ │ │ ├── model/ │ │ │ │ ├── Biz.java │ │ │ │ ├── BizConfig.java │ │ │ │ ├── BizInfo.java │ │ │ │ ├── BizOperation.java │ │ │ │ ├── BizState.java │ │ │ │ ├── Plugin.java │ │ │ │ ├── PluginConfig.java │ │ │ │ ├── PluginContext.java │ │ │ │ └── PluginOperation.java │ │ │ ├── pipeline/ │ │ │ │ ├── Pipeline.java │ │ │ │ ├── PipelineContext.java │ │ │ │ └── PipelineStage.java │ │ │ ├── registry/ │ │ │ │ ├── ServiceFilter.java │ │ │ │ ├── ServiceMetadata.java │ │ │ │ ├── ServiceProvider.java │ │ │ │ ├── ServiceProviderType.java │ │ │ │ └── ServiceReference.java │ │ │ ├── replay/ │ │ │ │ ├── Replay.java │ │ │ │ └── ReplayContext.java │ │ │ ├── service/ │ │ │ │ ├── ArkInject.java │ │ │ │ ├── ArkService.java │ │ │ │ ├── PluginActivator.java │ │ │ │ ├── PriorityOrdered.java │ │ │ │ ├── biz/ │ │ │ │ │ ├── AddBizToStaticDeployHook.java │ │ │ │ │ ├── BizDeployService.java │ │ │ │ │ ├── BizDeployer.java │ │ │ │ │ ├── BizFactoryService.java │ │ │ │ │ └── BizManagerService.java │ │ │ │ ├── classloader/ │ │ │ │ │ ├── ClassLoaderHook.java │ │ │ │ │ └── ClassLoaderService.java │ │ │ │ ├── event/ │ │ │ │ │ ├── EventAdminService.java │ │ │ │ │ └── EventHandler.java │ │ │ │ ├── extension/ │ │ │ │ │ ├── ArkServiceLoader.java │ │ │ │ │ ├── Extensible.java │ │ │ │ │ ├── Extension.java │ │ │ │ │ ├── ExtensionClass.java │ │ │ │ │ └── ExtensionLoaderService.java │ │ │ │ ├── injection/ │ │ │ │ │ └── InjectionService.java │ │ │ │ ├── plugin/ │ │ │ │ │ ├── PluginDeployService.java │ │ │ │ │ ├── PluginFactoryService.java │ │ │ │ │ └── PluginManagerService.java │ │ │ │ ├── registry/ │ │ │ │ │ └── RegistryService.java │ │ │ │ └── session/ │ │ │ │ ├── CommandProvider.java │ │ │ │ └── TelnetServerService.java │ │ │ └── web/ │ │ │ ├── AbstractEmbeddedServerService.java │ │ │ └── EmbeddedServerService.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── spi/ │ │ │ ├── argument/ │ │ │ │ └── LaunchCommandTest.java │ │ │ ├── constant/ │ │ │ │ └── ConstantsTest.java │ │ │ ├── ext/ │ │ │ │ └── ExtResponseTest.java │ │ │ ├── model/ │ │ │ │ └── BizOperationTest.java │ │ │ ├── replay/ │ │ │ │ └── ReplayContextTest.java │ │ │ └── service/ │ │ │ └── extension/ │ │ │ └── ExtensionClassTest.java │ │ └── resources/ │ │ └── test 2.jar │ ├── core-impl/ │ │ ├── archive/ │ │ │ ├── CLAUDE.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ ├── bootstrap/ │ │ │ │ │ ├── AbstractLauncher.java │ │ │ │ │ ├── AgentClassLoader.java │ │ │ │ │ ├── ArkLauncher.java │ │ │ │ │ ├── BaseExecutableArchiveLauncher.java │ │ │ │ │ ├── ClasspathLauncher.java │ │ │ │ │ ├── ContainerClassLoader.java │ │ │ │ │ ├── MainMethodRunner.java │ │ │ │ │ └── UseFastConnectionExceptionsEnumeration.java │ │ │ │ └── loader/ │ │ │ │ ├── DirectoryBizArchive.java │ │ │ │ ├── DirectoryContainerArchive.java │ │ │ │ ├── EmbedClassPathArchive.java │ │ │ │ ├── ExecutableArkBizJar.java │ │ │ │ ├── ExplodedBizArchive.java │ │ │ │ ├── JarBizArchive.java │ │ │ │ ├── JarContainerArchive.java │ │ │ │ ├── JarPluginArchive.java │ │ │ │ ├── archive/ │ │ │ │ │ ├── ExplodedArchive.java │ │ │ │ │ └── JarFileArchive.java │ │ │ │ ├── data/ │ │ │ │ │ ├── RandomAccessData.java │ │ │ │ │ └── RandomAccessDataFile.java │ │ │ │ ├── jar/ │ │ │ │ │ ├── AsciiBytes.java │ │ │ │ │ ├── Bytes.java │ │ │ │ │ ├── CentralDirectoryEndRecord.java │ │ │ │ │ ├── CentralDirectoryFileHeader.java │ │ │ │ │ ├── CentralDirectoryParser.java │ │ │ │ │ ├── CentralDirectoryVisitor.java │ │ │ │ │ ├── FileHeader.java │ │ │ │ │ ├── Handler.java │ │ │ │ │ ├── JarEntry.java │ │ │ │ │ ├── JarEntryFilter.java │ │ │ │ │ ├── JarFile.java │ │ │ │ │ ├── JarFileEntries.java │ │ │ │ │ ├── JarURLConnection.java │ │ │ │ │ ├── JarUtils.java │ │ │ │ │ └── ZipInflaterInputStream.java │ │ │ │ └── util/ │ │ │ │ └── ModifyPathUtils.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ ├── bootstrap/ │ │ │ │ │ ├── ArkLauncherTest.java │ │ │ │ │ ├── ClasspathLauncherTest.java │ │ │ │ │ └── MainMethodRunnerTest.java │ │ │ │ └── loader/ │ │ │ │ ├── DirectoryBizArchiveTest.java │ │ │ │ ├── DirectoryContainerArchiveTest.java │ │ │ │ ├── EmbedClassPathArchiveTest.java │ │ │ │ ├── ExecutableArkBizJarTest.java │ │ │ │ ├── ExplodedBizArchiveTest.java │ │ │ │ ├── archive/ │ │ │ │ │ ├── ExplodedArchiveTest.java │ │ │ │ │ └── JarFileArchiveTest.java │ │ │ │ ├── jar/ │ │ │ │ │ ├── HandlerTest.java │ │ │ │ │ ├── JarEntryTest.java │ │ │ │ │ ├── JarFileTest.java │ │ │ │ │ ├── JarURLConnectionTest.java │ │ │ │ │ ├── JarUtilsParseArtifactIdFromUnpackedDirTest.java │ │ │ │ │ ├── JarUtilsTest.java │ │ │ │ │ ├── JarUtilsTestHelper.java │ │ │ │ │ └── ZipInflaterInputStreamTest.java │ │ │ │ └── test/ │ │ │ │ ├── base/ │ │ │ │ │ └── BaseTest.java │ │ │ │ ├── data/ │ │ │ │ │ └── RandomAccessDataFileTest.java │ │ │ │ ├── jar/ │ │ │ │ │ ├── AsciiBytesTest.java │ │ │ │ │ ├── BytesTest.java │ │ │ │ │ ├── CentralDirectoryEndRecordTest.java │ │ │ │ │ ├── CentralDirectoryFileHeaderTest.java │ │ │ │ │ ├── CentralDirectoryParserTest.java │ │ │ │ │ ├── JarFileTest.java │ │ │ │ │ └── JarUtilsTest.java │ │ │ │ └── util/ │ │ │ │ └── ModifyPathUtilsTest.java │ │ │ └── resources/ │ │ │ ├── conf/ │ │ │ │ └── ark/ │ │ │ │ ├── bootstrap.properties │ │ │ │ └── log/ │ │ │ │ └── logback-conf.xml │ │ │ ├── empty-file │ │ │ ├── example-jarinjarinjar.jar │ │ │ ├── exploded-archive-test/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── MANIFEST.MF │ │ │ │ ├── example-jarinjarinjar.jar │ │ │ │ └── sample-biz.jar │ │ │ ├── junit-4.12.jar │ │ │ ├── pom-properties/ │ │ │ │ └── pom.properties │ │ │ ├── pom.xml │ │ │ ├── sample-biz-surefire.jar │ │ │ ├── sample-biz-withjar.jar │ │ │ ├── sample-biz.jar │ │ │ ├── sample-springboot-fat-biz.jar │ │ │ ├── static-combine-demo.jar │ │ │ └── xxxxx.jar-unpack/ │ │ │ └── pom.properties │ │ ├── container/ │ │ │ ├── CLAUDE.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── alipay/ │ │ │ │ │ └── sofa/ │ │ │ │ │ └── ark/ │ │ │ │ │ └── container/ │ │ │ │ │ ├── ArkContainer.java │ │ │ │ │ ├── guice/ │ │ │ │ │ │ └── ContainerModule.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ ├── BizModel.java │ │ │ │ │ │ ├── PluginContextImpl.java │ │ │ │ │ │ └── PluginModel.java │ │ │ │ │ ├── pipeline/ │ │ │ │ │ │ ├── DeployBizStage.java │ │ │ │ │ │ ├── DeployPluginStage.java │ │ │ │ │ │ ├── ExtensionLoaderStage.java │ │ │ │ │ │ ├── FinishStartupStage.java │ │ │ │ │ │ ├── HandleArchiveStage.java │ │ │ │ │ │ ├── RegisterServiceStage.java │ │ │ │ │ │ └── StandardPipeline.java │ │ │ │ │ ├── registry/ │ │ │ │ │ │ ├── AbstractServiceProvider.java │ │ │ │ │ │ ├── ContainerServiceProvider.java │ │ │ │ │ │ ├── DefaultServiceFilter.java │ │ │ │ │ │ ├── PluginServiceProvider.java │ │ │ │ │ │ ├── ServiceMetadataImpl.java │ │ │ │ │ │ └── ServiceReferenceImpl.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── ArkServiceContainer.java │ │ │ │ │ │ ├── ArkServiceContainerHolder.java │ │ │ │ │ │ ├── biz/ │ │ │ │ │ │ │ ├── BizCommandProvider.java │ │ │ │ │ │ │ ├── BizDeployServiceImpl.java │ │ │ │ │ │ │ ├── BizFactoryServiceImpl.java │ │ │ │ │ │ │ ├── BizManagerServiceImpl.java │ │ │ │ │ │ │ └── DefaultBizDeployer.java │ │ │ │ │ │ ├── classloader/ │ │ │ │ │ │ │ ├── AbstractClasspathClassLoader.java │ │ │ │ │ │ │ ├── BizClassLoader.java │ │ │ │ │ │ │ ├── ClassLoaderServiceImpl.java │ │ │ │ │ │ │ ├── CompoundEnumeration.java │ │ │ │ │ │ │ ├── JDKDelegateClassLoader.java │ │ │ │ │ │ │ └── PluginClassLoader.java │ │ │ │ │ │ ├── event/ │ │ │ │ │ │ │ └── EventAdminServiceImpl.java │ │ │ │ │ │ ├── extension/ │ │ │ │ │ │ │ └── ExtensionLoaderServiceImpl.java │ │ │ │ │ │ ├── injection/ │ │ │ │ │ │ │ └── InjectionServiceImpl.java │ │ │ │ │ │ ├── plugin/ │ │ │ │ │ │ │ ├── PluginCommandProvider.java │ │ │ │ │ │ │ ├── PluginDeployServiceImpl.java │ │ │ │ │ │ │ ├── PluginFactoryServiceImpl.java │ │ │ │ │ │ │ └── PluginManagerServiceImpl.java │ │ │ │ │ │ ├── registry/ │ │ │ │ │ │ │ └── RegistryServiceImpl.java │ │ │ │ │ │ └── retrieval/ │ │ │ │ │ │ ├── ClassInfoMethod.java │ │ │ │ │ │ ├── ClassInfoVO.java │ │ │ │ │ │ ├── InfoQueryCommandProvider.java │ │ │ │ │ │ └── ViewRender.java │ │ │ │ │ ├── session/ │ │ │ │ │ │ ├── NettyTelnetServer.java │ │ │ │ │ │ ├── StandardTelnetServerImpl.java │ │ │ │ │ │ └── handler/ │ │ │ │ │ │ ├── AbstractTerminalTypeMapping.java │ │ │ │ │ │ └── ArkCommandHandler.java │ │ │ │ │ └── test/ │ │ │ │ │ ├── NoneDelegateTestClassLoader.java │ │ │ │ │ ├── TestClassLoader.java │ │ │ │ │ └── TestHelper.java │ │ │ │ └── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── com.alipay.sofa.ark.common.guice.AbstractArkGuiceModule │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ └── container/ │ │ │ │ ├── ArkContainerTest.java │ │ │ │ ├── BaseTest.java │ │ │ │ ├── ClassLoaderTest.java │ │ │ │ ├── model/ │ │ │ │ │ └── BizModelTest.java │ │ │ │ ├── pipeline/ │ │ │ │ │ └── HandleArchiveStageTest.java │ │ │ │ ├── service/ │ │ │ │ │ ├── ArkServiceContainerTest.java │ │ │ │ │ ├── api/ │ │ │ │ │ │ └── ArkClientTest.java │ │ │ │ │ ├── biz/ │ │ │ │ │ │ ├── BizCommandProviderTest.java │ │ │ │ │ │ ├── BizFactoryServiceTest.java │ │ │ │ │ │ ├── BizManagerServiceTest.java │ │ │ │ │ │ └── hook/ │ │ │ │ │ │ └── TestAddBizToStaticDeployHook.java │ │ │ │ │ ├── classloader/ │ │ │ │ │ │ ├── BizClassLoaderTest.java │ │ │ │ │ │ ├── ClassLoaderConcurrencyTest.java │ │ │ │ │ │ ├── ClassLoaderHookTest.java │ │ │ │ │ │ ├── ClassLoaderServiceTest.java │ │ │ │ │ │ ├── CompoundEnumerationTest.java │ │ │ │ │ │ ├── PluginClassLoaderTest.java │ │ │ │ │ │ └── hook/ │ │ │ │ │ │ ├── AbstractClassLoaderHook.java │ │ │ │ │ │ ├── TestBizClassLoaderHook.java │ │ │ │ │ │ ├── TestDefaultBizClassLoaderHook.java │ │ │ │ │ │ └── TestPluginClassLoaderHook.java │ │ │ │ │ ├── event/ │ │ │ │ │ │ ├── EventAdminServiceTest.java │ │ │ │ │ │ ├── EventTest.java │ │ │ │ │ │ ├── GlobalEventHandlerTest.java │ │ │ │ │ │ └── MultiEventTest.java │ │ │ │ │ ├── extension/ │ │ │ │ │ │ ├── ExtensionClassTest.java │ │ │ │ │ │ ├── ExtensionServiceTest.java │ │ │ │ │ │ └── spi/ │ │ │ │ │ │ ├── ServiceA.java │ │ │ │ │ │ ├── ServiceB.java │ │ │ │ │ │ ├── ServiceC.java │ │ │ │ │ │ ├── ServiceD.java │ │ │ │ │ │ ├── SingletonService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── ServiceBImpl1.java │ │ │ │ │ │ ├── ServiceBImpl2.java │ │ │ │ │ │ ├── ServiceBImpl3.java │ │ │ │ │ │ ├── ServiceBImpl4.java │ │ │ │ │ │ ├── ServiceDImpl.java │ │ │ │ │ │ └── SingletonServiceImpl.java │ │ │ │ │ ├── injection/ │ │ │ │ │ │ └── InjectionServiceTest.java │ │ │ │ │ ├── pipeline/ │ │ │ │ │ │ └── HandleArchiveTest.java │ │ │ │ │ ├── plugin/ │ │ │ │ │ │ ├── PluginCommandProviderTest.java │ │ │ │ │ │ ├── PluginFactoryServiceTest.java │ │ │ │ │ │ └── PluginManagerServiceTest.java │ │ │ │ │ ├── registry/ │ │ │ │ │ │ └── ServiceRegistrationTest.java │ │ │ │ │ ├── retrieval/ │ │ │ │ │ │ ├── ClassInfoMethodTest.java │ │ │ │ │ │ ├── InfoQueryCommandProviderTest.java │ │ │ │ │ │ └── ViewRenderTest.java │ │ │ │ │ └── session/ │ │ │ │ │ └── CommandHandlerTest.java │ │ │ │ ├── session/ │ │ │ │ │ └── NettyTelnetServerTest.java │ │ │ │ ├── test/ │ │ │ │ │ └── TestHelperTest.java │ │ │ │ └── testdata/ │ │ │ │ ├── ITest.java │ │ │ │ ├── activator/ │ │ │ │ │ ├── PluginActivatorA.java │ │ │ │ │ ├── PluginActivatorADup.java │ │ │ │ │ ├── PluginActivatorB.java │ │ │ │ │ └── PluginActivatorC.java │ │ │ │ ├── classloader/ │ │ │ │ │ └── ClassLoaderTestClass.java │ │ │ │ └── impl/ │ │ │ │ ├── TestObjectA.java │ │ │ │ ├── TestObjectB.java │ │ │ │ └── TestObjectC.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── sofa-ark/ │ │ │ │ ├── com.alipay.sofa.ark.container.service.extension.spi.ServiceB │ │ │ │ ├── com.alipay.sofa.ark.spi.service.biz.AddBizToStaticDeployHook │ │ │ │ ├── com.alipay.sofa.ark.spi.service.classloader.ClassLoaderHook │ │ │ │ ├── sample-ark-2.0.1-ark-biz.jar │ │ │ │ ├── serviceA │ │ │ │ └── serviceD │ │ │ ├── aopalliance-1.0.jar │ │ │ ├── com.springsource.org.aopalliance-1.0.0.jar │ │ │ ├── export/ │ │ │ │ ├── folderA/ │ │ │ │ │ ├── test1.xml │ │ │ │ │ └── test2.xml │ │ │ │ └── folderB/ │ │ │ │ ├── test3.xml │ │ │ │ └── test4.xml │ │ │ ├── multi_export.xml │ │ │ ├── pluginA_export_resource1.xml │ │ │ ├── pluginA_export_resource2.xml │ │ │ ├── pluginA_not_export_resource.xml │ │ │ ├── profile-test.jar │ │ │ ├── sample-ark-1.0.0-ark-biz.jar │ │ │ ├── sample-ark-2.0.0-ark-biz.jar │ │ │ ├── sample-ark-3.0.0-ark-biz.jar │ │ │ ├── sample-ark-4.0.0-ark-biz.jar │ │ │ ├── sample-ark-5.0.0-ark-biz.jar │ │ │ ├── sample-ark-plugin-common-0.5.1.jar │ │ │ ├── sample-biz.jar │ │ │ ├── sample-plugin.jar │ │ │ ├── sofa-ark-sample-springboot-ark-0.3.0.jar │ │ │ ├── static-combine-springboot-executable.jar │ │ │ └── test.jar │ │ └── pom.xml │ ├── pom.xml │ └── support/ │ ├── ark-gradle-plugin/ │ │ ├── README.md │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── alipay/ │ │ └── sofa/ │ │ └── ark/ │ │ └── plugin/ │ │ ├── ArkArchiveSupport.java │ │ ├── ArkBizCopyAction.java │ │ ├── ArkJar.java │ │ ├── ArkPluginAction.java │ │ ├── BootArchive.java │ │ ├── DefaultTimeZoneOffset.java │ │ ├── JarTypeFileSpec.java │ │ ├── LoaderZipEntries.java │ │ ├── MainClassFinder.java │ │ ├── Nullable.java │ │ ├── ResolveMainClassName.java │ │ ├── SofaArkGradlePlugin.java │ │ ├── SofaArkGradlePluginExtension.java │ │ ├── StringUtils.java │ │ └── ZipCompression.java │ ├── ark-maven-plugin/ │ │ ├── CLAUDE.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── boot/ │ │ │ └── mojo/ │ │ │ ├── ArtifactsLibraries.java │ │ │ ├── MavenUtils.java │ │ │ ├── ModuleSlimConfig.java │ │ │ ├── ModuleSlimExecutor.java │ │ │ ├── RepackageMojo.java │ │ │ ├── model/ │ │ │ │ └── ArkConfigHolder.java │ │ │ └── utils/ │ │ │ └── ParseUtils.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── boot/ │ │ │ └── mojo/ │ │ │ ├── ArtifactsLibrariesTest.java │ │ │ ├── CommonUtils.java │ │ │ ├── MavenUtilsTest.java │ │ │ ├── ModuleSlimExecutorTest.java │ │ │ ├── ReflectionUtils.java │ │ │ ├── RepackageMojoTest.java │ │ │ └── utils/ │ │ │ └── ParseUtilsTest.java │ │ └── resources/ │ │ ├── baseDir/ │ │ │ └── conf/ │ │ │ └── ark/ │ │ │ ├── bootstrap.properties │ │ │ └── bootstrap.yml │ │ ├── dependency-tree-mock.txt │ │ ├── excludes.txt │ │ └── test-jar.jar │ ├── ark-plugin-gradle-plugin/ │ │ ├── README.md │ │ ├── build.gradle │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── boot/ │ │ │ └── mojo/ │ │ │ ├── ArkPlugin.java │ │ │ ├── ArkPluginCopyAction.java │ │ │ ├── ArkPluginExtension.java │ │ │ ├── ArkPluginJarTask.java │ │ │ └── BaseConfig.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── alipay/ │ │ └── sofa/ │ │ └── ark/ │ │ └── boot/ │ │ └── mojo/ │ │ └── ArkPluginExtensionTest.java │ ├── ark-plugin-maven-plugin/ │ │ ├── CLAUDE.md │ │ ├── META-INF/ │ │ │ └── MANIFEST.MF │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ └── plugin/ │ │ │ │ └── mojo/ │ │ │ │ ├── AbstractPropertiesConfig.java │ │ │ │ ├── ArkPluginMojo.java │ │ │ │ ├── ExportConfig.java │ │ │ │ ├── ImportConfig.java │ │ │ │ ├── LinkedAttributes.java │ │ │ │ ├── LinkedManifest.java │ │ │ │ └── LinkedProperties.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── maven/ │ │ │ └── plugin.xml │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── plugin/ │ │ │ └── mojo/ │ │ │ ├── ArkPluginMojoTest.java │ │ │ ├── LinkedAttributesTest.java │ │ │ ├── LinkedPropertiesTest.java │ │ │ └── test/ │ │ │ └── ArkPluginMojoTest.java │ │ └── resources/ │ │ ├── a-test-demo.jar │ │ └── test-demo.jar │ ├── ark-springboot-integration/ │ │ ├── ark-common-springboot/ │ │ │ ├── CLAUDE.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── springboot/ │ │ │ └── condition/ │ │ │ ├── ConditionalOnArkEnabled.java │ │ │ ├── ConditionalOnSpringBootVersion.java │ │ │ ├── OnArkEnabled.java │ │ │ └── OnSpringBootVersion.java │ │ ├── ark-compatible-springboot1/ │ │ │ ├── CLAUDE.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── alipay/ │ │ │ │ │ └── sofa/ │ │ │ │ │ └── ark/ │ │ │ │ │ └── springboot1/ │ │ │ │ │ ├── CompatibleSpringBoot1AutoConfiguration.java │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ ├── IntrospectBizEndpoint.java │ │ │ │ │ │ └── IntrospectBizEndpointMvcAdapter.java │ │ │ │ │ └── web/ │ │ │ │ │ ├── ArkAutoConfiguration.java │ │ │ │ │ ├── ArkTomcatEmbeddedServletContainer.java │ │ │ │ │ ├── ArkTomcatEmbeddedServletContainerFactory.java │ │ │ │ │ └── SwitchClassLoaderFilter.java │ │ │ │ └── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── spring.factories │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ ├── springboot1/ │ │ │ │ │ └── web/ │ │ │ │ │ ├── ArkTomcatEmbeddedServletContainerTest.java │ │ │ │ │ └── ArkTomcatServletWebServerFactoryTest.java │ │ │ │ └── test/ │ │ │ │ └── springboot1/ │ │ │ │ ├── IntrospectBizEndpointOnArkDisabledTest.java │ │ │ │ └── IntrospectBizEndpointOnArkEnabledTest.java │ │ │ └── resources/ │ │ │ └── logback.xml │ │ ├── ark-compatible-springboot2/ │ │ │ ├── CLAUDE.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── alipay/ │ │ │ │ │ └── sofa/ │ │ │ │ │ └── ark/ │ │ │ │ │ └── springboot2/ │ │ │ │ │ ├── CompatibleSpringBoot2AutoConfiguration.java │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ └── IntrospectBizEndpoint.java │ │ │ │ │ └── web/ │ │ │ │ │ └── SwitchClassLoaderFilter.java │ │ │ │ └── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── spring.factories │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ └── test/ │ │ │ │ └── springboot2/ │ │ │ │ ├── SpringBoot2IntrospectBizEndpointOnArkDisabledTest.java │ │ │ │ └── SpringBoot2IntrospectBizEndpointOnArkEnabledTest.java │ │ │ └── resources/ │ │ │ └── logback.xml │ │ └── ark-springboot-starter/ │ │ ├── CLAUDE.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ └── springboot/ │ │ │ │ ├── ArkAutoProcessorConfiguration.java │ │ │ │ ├── ArkReactiveAutoConfiguration.java │ │ │ │ ├── ArkServletAutoConfiguration.java │ │ │ │ ├── ArkServletLegacyAutoConfiguration.java │ │ │ │ ├── listener/ │ │ │ │ │ ├── ArkApplicationStartListener.java │ │ │ │ │ ├── ArkDeployStaticBizListener.java │ │ │ │ │ └── PropertiesResetListener.java │ │ │ │ ├── loader/ │ │ │ │ │ ├── CachedLaunchedURLClassLoader.java │ │ │ │ │ └── JarLauncher.java │ │ │ │ ├── processor/ │ │ │ │ │ ├── ArkEventHandlerProcessor.java │ │ │ │ │ └── ArkServiceInjectProcessor.java │ │ │ │ ├── runner/ │ │ │ │ │ ├── ArkBootEmbedRunner.java │ │ │ │ │ └── ArkBootRunner.java │ │ │ │ └── web/ │ │ │ │ ├── ArkCompositeReactorHttpHandlerAdapter.java │ │ │ │ ├── ArkNettyReactiveWebServerFactory.java │ │ │ │ ├── ArkNettyWebServer.java │ │ │ │ ├── ArkTomcatServletWebServerFactory.java │ │ │ │ └── ArkTomcatWebServer.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ ├── spring/ │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ │ └── spring.factories │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ ├── springboot/ │ │ │ │ ├── listener/ │ │ │ │ │ └── ArkDeployStaticBizListenerTest.java │ │ │ │ ├── loader/ │ │ │ │ │ └── CachedLaunchedURLClassLoaderTest.java │ │ │ │ └── web/ │ │ │ │ ├── ArkTomcatServletWebServerFactoryTest.java │ │ │ │ └── ArkTomcatWebServerTest.java │ │ │ └── test/ │ │ │ ├── ArkBootRunnerTest.java │ │ │ ├── ArkBootTestNGTest.java │ │ │ ├── MultiArkBootRunnerTest.java │ │ │ ├── SpringbootRunnerTest.java │ │ │ └── springboot/ │ │ │ ├── BaseSpringApplication.java │ │ │ ├── RegisterMockEmbedTomcatService.java │ │ │ ├── TestValueHolder.java │ │ │ ├── facade/ │ │ │ │ └── SampleService.java │ │ │ └── impl/ │ │ │ ├── SampleServiceImpl.java │ │ │ └── TestBizEventHandler.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── sofa-ark-test/ │ │ │ └── sofa-ark-test.xml │ │ ├── config/ │ │ │ └── application.properties │ │ ├── logback.xml │ │ └── sample-biz-0.3.0.jar │ ├── ark-support-starter/ │ │ ├── CLAUDE.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alipay/ │ │ │ │ └── sofa/ │ │ │ │ └── ark/ │ │ │ │ └── support/ │ │ │ │ ├── common/ │ │ │ │ │ ├── AddBizInResourcesHook.java │ │ │ │ │ ├── DelegateArkContainer.java │ │ │ │ │ ├── DelegateToMasterBizClassLoaderHook.java │ │ │ │ │ └── MasterBizEnvironmentHolder.java │ │ │ │ ├── listener/ │ │ │ │ │ ├── ArkTestNGAlterSuiteListener.java │ │ │ │ │ ├── ArkTestNGExecutionListener.java │ │ │ │ │ ├── ArkTestNGInvokedMethodListener.java │ │ │ │ │ ├── TestNGOnArk.java │ │ │ │ │ └── TestNGOnArkEmbeded.java │ │ │ │ ├── runner/ │ │ │ │ │ ├── ArkJUnit4EmbedRunner.java │ │ │ │ │ ├── ArkJUnit4Runner.java │ │ │ │ │ └── JUnitExecutionListener.java │ │ │ │ ├── startup/ │ │ │ │ │ ├── EmbedSofaArkBootstrap.java │ │ │ │ │ ├── EntryMethod.java │ │ │ │ │ └── SofaArkBootstrap.java │ │ │ │ └── thread/ │ │ │ │ ├── IsolatedThreadGroup.java │ │ │ │ └── LaunchRunner.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ ├── org.testng.ITestNGListener │ │ │ └── sofa-ark/ │ │ │ └── com.alipay.sofa.ark.spi.service.biz.AddBizToStaticDeployHook │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── support/ │ │ │ ├── AddBizInResourcesHookTest.java │ │ │ ├── DefaultClassLoaderHookTest.java │ │ │ ├── MultiSuiteTest.java │ │ │ ├── TestNGCommonTest.java │ │ │ ├── TestNGOnArkTest.java │ │ │ ├── runner/ │ │ │ │ ├── ArkJUnit4RunnerTest.java │ │ │ │ └── CommonJUnit4Test.java │ │ │ ├── startup/ │ │ │ │ └── EmbedSofaArkBootstrapTest.java │ │ │ └── thread/ │ │ │ ├── IsolatedThreadGroupTest.java │ │ │ └── LaunchRunnerTest.java │ │ └── resources/ │ │ ├── SOFA-ARK/ │ │ │ └── biz/ │ │ │ └── biz1-bootstrap-0.0.1-SNAPSHOT-ark-biz.jar │ │ ├── aopalliance-1.0.jar │ │ ├── com.springsource.org.aopalliance-1.0.0.jar │ │ ├── sample-ark-1.0.0-ark-biz.jar │ │ ├── sample-ark-plugin-common-0.5.1.jar │ │ └── sofa-ark-sample-springboot-ark-0.3.0.jar │ ├── ark-tools/ │ │ ├── CLAUDE.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── tools/ │ │ │ ├── ArtifactItem.java │ │ │ ├── JarWriter.java │ │ │ ├── Layout.java │ │ │ ├── Layouts.java │ │ │ ├── Libraries.java │ │ │ ├── Library.java │ │ │ ├── LibraryCallback.java │ │ │ ├── LibraryScope.java │ │ │ ├── LoaderClassesWriter.java │ │ │ ├── MainClassFinder.java │ │ │ ├── Repackager.java │ │ │ ├── RepackagingLayout.java │ │ │ └── git/ │ │ │ ├── GitInfo.java │ │ │ └── JGitParser.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alipay/ │ │ │ └── sofa/ │ │ │ └── ark/ │ │ │ └── tools/ │ │ │ ├── ArtifactItemTest.java │ │ │ ├── JarWriterTest.java │ │ │ ├── LayoutsTest.java │ │ │ ├── MainClassFinderTest.java │ │ │ ├── RepackagerTest.java │ │ │ └── git/ │ │ │ └── JGitParserTest.java │ │ └── resources/ │ │ ├── conf/ │ │ │ └── test-jar.jar │ │ ├── test-jar.jar │ │ └── test-pom.xml │ └── pom.xml └── sofa-ark-plugin/ ├── config-ark-plugin/ │ ├── CLAUDE.md │ ├── DEMO_SHOW.md │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── alipay/ │ │ └── sofa/ │ │ └── ark/ │ │ └── config/ │ │ ├── ConfigBaseActivator.java │ │ ├── ConfigProcessor.java │ │ ├── ConfigTypeEnum.java │ │ ├── LazyActivatorWrapper.java │ │ ├── OperationProcessor.java │ │ ├── RegistryConfig.java │ │ ├── apollo/ │ │ │ └── ApolloConfigActivator.java │ │ ├── util/ │ │ │ ├── NetUtils.java │ │ │ └── OperationTransformer.java │ │ └── zk/ │ │ ├── ZookeeperConfigActivator.java │ │ └── ZookeeperConfigurator.java │ └── test/ │ └── java/ │ └── com/ │ └── alipay/ │ └── sofa/ │ └── ark/ │ └── config/ │ ├── ApolloConfigActivatorTest.java │ ├── ConfigBaseActivatorTest.java │ ├── MockApolloConfig.java │ ├── OperationTransformerTest.java │ └── ZookeeperConfiguratorTest.java ├── netty-ark-plugin/ │ ├── CLAUDE.md │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── alipay/ │ └── sofa/ │ └── ark/ │ ├── NettyPluginActivator.java │ └── netty/ │ ├── ArkNettyIdentification.java │ └── EmbeddedServerServiceImpl.java ├── pom.xml └── web-ark-plugin/ ├── CLAUDE.md ├── pom.xml └── src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── alipay/ │ │ └── sofa/ │ │ └── ark/ │ │ └── web/ │ │ └── embed/ │ │ ├── WebPluginActivator.java │ │ └── tomcat/ │ │ ├── ArkTomcatEmbeddedWebappClassLoader.java │ │ ├── EmbeddedServerServiceImpl.java │ │ └── SwitchClassLoaderAutoConfiguration.java │ └── resources/ │ └── META-INF/ │ ├── spring/ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── spring.factories └── test/ └── java/ └── com/ └── alipay/ └── sofa/ └── ark/ └── web/ └── embed/ ├── WebPluginActivatorTest.java └── tomcat/ ├── ArkTomcatEmbeddedWebappClassLoaderTest.java └── EmbeddedServerServiceImplTest.java