leo james

Results 58 issues of leo james

### 介绍 SOFAArk 通过多ClassLoader的方式提供类隔离的能力,并在此基础上具备热部署的能力。当然类如果纯粹隔离还不够,还需要考虑ClassLoader之间的类共享。 SOFAArk 通过类委托机制,提供了一套丰富的委托加载能力。定义了PluginClassLoader 和 BizClassLoader,不同类型具备不同的类查找逻辑,同时提供ClassLoaderHook能力,允许自定义模块间的类委托加载。 当然除了类查找以外,还有对应的资源查找。SOFAArk 框架本身的类委托加载是非常灵活的,但是在实际落地时,需要有一套类委托加载的最佳实践。 主要分为两个场景: 1. 多Plugin的类隔离 考虑如何相同类不同版本不会相互冲突 2. 热部署 原应用如何拆分,多 ClassLoader 如何布局,在内部我们jvm的多ClassLoader布局从 ![image](https://user-images.githubusercontent.com/3754074/169092580-4092e088-ba97-420e-b7d1-688dfed60bf5.png) 演变成了 ![image](https://user-images.githubusercontent.com/3754074/169092647-ba4047b5-cce5-4151-a696-e05ae62c2e81.png),优先从模块里查找列,查找不到从基座里查找。 ### 难度: 🌟🌟🌟🌟🌟 ### 参考解析 [委托机制](https://www.sofastack.tech/projects/sofa-boot/sofa-ark-classloader/) ![image](https://gw.alipayobjects.com/zos/skylark/7dfdc66f-a70d-4ef0-9de3-92b72bf2caf7/2018/png/77f10035-a6c3-4bab-bff3-a2c9a986561f.png) ###...

### 介绍 SOFAArk 支持多个 Biz 模块合并安装,如果多个模块都是web server,如果启动的话,就会启动多个tomcat,如何能做到类似普通tomcat 那样,一个tomcat可以部署多个web模块。 也就是支持多个 Web 应用合并部署,提供了多 Host/单 Host 两种模式 ### 难度: 🌟🌟🌟 ### 重点源码 ``` com.alipay.sofa.ark.web.embed.tomcat.ArkTomcatEmbeddedWebappClassLoader com.alipay.sofa.ark.springboot.web.ArkTomcatServletWebServerFactory ``` ### 衍生思考 在这个基础上如何支持 webFlux呢?

### Motivation: Explain the context, and why you're making that change. To make others understand what is the problem you're trying to solve. ### Modification: Describe the idea and modifications...

cla:yes
size/XS

cla:yes
size/M
First-time contributor

### Motivation: Explain the context, and why you're making that change. To make others understand what is the problem you're trying to solve. ### Modification: Describe the idea and modifications...

cla:yes
size/M

https://sofaserverless.gitee.io/home/ ![image](https://github.com/elunez/eladmin/assets/3754074/78343cd7-0429-4a13-98ba-ce9385ac5bd7) 每个模块可以独立开发,独立启动,互相不影响,每个模块比较清理启动也相对更快。 ## 使用方式 1. 点击 BaseAppRun 直接启动基座 3. 执行 arkctl deploy arkmodules/eladmin-biz-mng 部署 mng 模块 5. 执行 arkctl deploy arkmodules/eladmin-biz-quartz 部署 quartz 模块 7. 执行 arkctl deploy arkmodules/eladmin-biz-system...

springfox 3.0.0 doesn't work with springboot 2.7.x, any fixed or workaround this? ![image](https://github.com/elunez/eladmin/assets/3754074/3891b8c1-e60a-4034-b550-c5ae3cbdcff5) same like https://github.com/springfox/springfox/issues/3462#issuecomment-1010721223 https://stackoverflow.com/questions/72465369/upgraded-spring-boot-to-2-7-0-failed-to-start-bean-documentationpluginsbootstr

### 问题描述 在部分构建环境中,mvn 构建的时候带上了 -DoutputFile 信息,那么这样 sofa-ark-maven-plugin 在通过 mvn tree 扫描模块依赖列表时,也会带上 -DoutputFile 参数。导致内部默认使用 deps.log 文件被覆盖。 ### 问题解决 这里参数值需要优先从mvn 的命令信息里获取,获取不到再使用默认值 ![image](https://github.com/sofastack/sofa-ark/assets/3754074/3d858511-08ac-4efc-9865-cfea6b0a5c7e)

good first issue