骆驼(camel)命名法_Apache Camel 3 –骆驼核心vs骆驼核心引擎(较小的核心)
駱駝(camel)命名法
Camel團隊目前正在忙于Apache Camel 3的開發(fā)。已經(jīng)完成了許多工作,到目前為止,我們已經(jīng)發(fā)布了3個里程碑版本。 下一個里程碑版本4具有一些出色的新創(chuàng)新功能,這些功能我將在接下來的幾個月中發(fā)布。
該博客的主題是我們在將駱駝核拆分成較小的模塊方面所做的工作,您現(xiàn)在可以輕松地僅選擇所需的模塊。
如果我們看一下駱駝核心JAR的依賴關(guān)系樹,您會發(fā)現(xiàn)它已被分成許多模塊,如下所示:
[INFO] +- org.apache.camel:camel-core:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-api:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-base:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-jaxp:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-management-api:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-support:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-util:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-util-json:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-bean:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-browse:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-caffeine-lrucache:jar:3.0.0-SNAPSHOT:compile [INFO] | | \- com.github.ben-manes.caffeine:caffeine:jar:2.7.0:compile [INFO] | | +- org.checkerframework:checker-qual:jar:2.6.0:compile [INFO] | | \- com.google.errorprone:error_prone_annotations:jar:2.3.3:compile [INFO] | +- org.apache.camel:camel-controlbus:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-dataformat:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-dataset:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-direct:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-directvm:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-file:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-language:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-log:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-mock:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-properties:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-ref:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-rest:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-saga:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-scheduler:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-seda:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-stub:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-timer:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-validator:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-vm:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-xpath:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-xslt:jar:3.0.0-SNAPSHOT:compile [INFO] | \- org.slf4j:slf4j-api:jar:1.7.25:compile在Camel 2.x中,所有這些模塊都包含在同一個駱駝核心JAR中??。
為了使從Camel 2.x到3.0的遷移以及易于使用,我們將保持駱駝核心與Camel 2.x中的JAR依賴項相同。 因此,以上輸出僅來自在您的Maven pom.xml文件或gradle構(gòu)建文件中聲明對camel-core的依賴。
但是,駱駝3里程碑4即將推出的功能是輕松選擇所需的東西。 例如,下面顯示了一個依賴關(guān)系樹,其中我們只使用了盡可能少的樹(使用新的camel-core-engine JAR作為依賴項):
+- org.apache.camel:camel-core-engine:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-api:jar:3.0.0-SNAPSHOT:compile [INFO] | | \- org.apache.camel:camel-util:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-management-api:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-support:jar:3.0.0-SNAPSHOT:compile [INFO] | \- org.apache.camel:camel-core:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-base:jar:3.0.0-SNAPSHOT:compile [INFO] | \- org.apache.camel:camel-properties:jar:3.0.0-SNAPSHOT:compile為了說明這一點,我們提供了2組示例
- 駱駝示例主要
- 駱駝示例主要微型
前者使用camel-core作為依賴項,其中包括所有核心組件等。后者是微小的依賴項集,僅包含所需的內(nèi)容。 該示例僅使用bean和quartz2組件,因此您需要將它們添加為依賴項:
依賴關(guān)系樹如下(請注意,JAXB被排除在測試范圍之外)
[INFO] --- maven-dependency-plugin:3.1.1:tree (default-cli) @ camel-example-main-tiny --- [INFO] org.apache.camel.example:camel-example-main-tiny:jar:3.0.0-SNAPSHOT [INFO] +- org.apache.camel:camel-core-engine:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-api:jar:3.0.0-SNAPSHOT:compile [INFO] | | \- org.apache.camel:camel-util:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-management-api:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-support:jar:3.0.0-SNAPSHOT:compile [INFO] | \- org.apache.camel:camel-core:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.apache.camel:camel-base:jar:3.0.0-SNAPSHOT:compile [INFO] | \- org.apache.camel:camel-properties:jar:3.0.0-SNAPSHOT:compile [INFO] +- org.apache.camel:camel-main:jar:3.0.0-SNAPSHOT:compile [INFO] +- org.apache.camel:camel-bean:jar:3.0.0-SNAPSHOT:compile [INFO] +- org.apache.camel:camel-quartz2:jar:3.0.0-SNAPSHOT:compile [INFO] | +- org.quartz-scheduler:quartz:jar:2.3.1:compile [INFO] | | +- com.mchange:mchange-commons-java:jar:0.2.15:compile [INFO] | | \- com.zaxxer:HikariCP-java7:jar:2.4.13:compile [INFO] | \- com.mchange:c3p0:jar:0.9.5.4:compile [INFO] +- com.sun.xml.bind:jaxb-core:jar:2.3.0:test [INFO] +- com.sun.xml.bind:jaxb-impl:jar:2.3.0:test [INFO] +- org.apache.logging.log4j:log4j-api:jar:2.11.2:runtime [INFO] +- ch.qos.logback:logback-core:jar:1.2.3:compile [INFO] \- ch.qos.logback:logback-classic:jar:1.2.3:compile [INFO] \- org.slf4j:slf4j-api:jar:1.7.25:compile如果我們比較兩個示例(包括logger等)中JAR的大小,則有:
- camel-example-main(駱駝核心): 48個JAR文件,總計9.3 MB
- camel-example-main-tiny(駱駝核心引擎): 21個JAR文件,總計7.4 MB
如果我們運行兩個示例,那么您還可以看到使用camel-core-engine時加載到JVM中的類的數(shù)量要少一些:
- camel-example-main(camel-core): 加載了3666個類
- camel-example-main-tiny(駱駝核心引擎): 加載了3430個類
好的,這里的減少不是那么明顯,但是可以預(yù)期,因為Camel將延遲使用正在使用的組件,并且該示例僅使用bean和石英組件。 但是,類路徑掃描會更快一些,因為磁盤大小大約減少了25%,JAR文件減少了50%。
Apache Camel 3還有很多其他很棒的東西,我將在今年夏天開始發(fā)布該博客之前發(fā)布博客(預(yù)計于2019年9月/ 10月發(fā)布)。
翻譯自: https://www.javacodegeeks.com/2019/06/camel-core-camel-core-engine-smaller-core.html
駱駝(camel)命名法
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的骆驼(camel)命名法_Apache Camel 3 –骆驼核心vs骆驼核心引擎(较小的核心)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为手机变电脑怎么办(华为手机怎么变电脑
- 下一篇: daz快捷键怎么设置(daz快捷键大全)