谁可以做网站优化排名推广网站制作用到什么技术
news/
2025/9/22 17:54:20/
文章来源:
谁可以做网站优化排名推广,网站制作用到什么技术,wordpress缩略图特效,怎么做网页的二维码在本文中#xff0c;我将展示如何在Apache Aries Blueprint xml文件中添加一些内联脚本。 我不一定会称其为最佳实践#xff0c;但我一直认为这种功能可能有用。 可能当我被迫使用xml来模拟命令式编程结构#xff08;例如使用Apache Ant时#xff09;时#xff0c;我开始… 在本文中我将展示如何在Apache Aries Blueprint xml文件中添加一些内联脚本。 我不一定会称其为最佳实践但我一直认为这种功能可能有用。 可能当我被迫使用xml来模拟命令式编程结构例如使用Apache Ant时时我开始想要这个。 而且我发现这个想法在诸如Gradle或Vagrant之类的项目中得到了验证在该项目中一种完整的编程语言实际上是在变相中隐藏着假装是特定于领域的语言或令人惊讶的灵活配置语法。 在展示如何在JBoss Fuse中使用MVEL时我曾经谈论过类似的事情。 这次我将限制自己展示如何使用可以插入到您原本为静态的xml文件中的小代码段这种技巧在您需要执行简单的操作例如替换字符串算术符号或其他任何操作的情况下可能会有用。想要避免为此编写Java类。 让我说我这里没有发明任何新东西。 我只是在展示如何使用Apache Aries项目直接提供的功能但是我并没有经常使用该功能。 目的是允许您编写如下代码段 ...bean idaccountFactory classorg.apache.aries.simple.AccountFactory argument value$[karaf.home.replaceAll(\\\\, /)]
/argument/bean
... 您可以看到我们正在对环境变量的值调用java.lang.String.replaceAll()方法。 我们可以感谢Apache Aries Bluerpint JEXL Evaluator它是Apache Aries Blueprint的扩展它实现了“扩展” Aries Blueprint基本功能的自定义令牌处理器。 在此特定情况下它将令牌插值委托给项目Apache JEXL来完成 。 JEXLJava表达式语言它只是一个向Java平台公开脚本功能的库。 它的功能不是唯一的因为您可以通过对Javascript或Groovy的本机支持实现相同的功能。 但是由于已经编写了与Blueprint的集成因此我们将使用它因此我们可以在我们的Apache Karaf或JBoss Fuse实例上直接使用它。 以下说明已在JBoss Fuse 6.2.1上得到验证 # install JEXL bundle
install -s mvn:org.apache.commons/commons-jexl/2.1.1
# install JEXL Blueprint integration:
install -s mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.jexl.evaluator/1.0.0 这就是我们需要的所有准备工作现在我们只需要在Bluerpint文件中使用正确的XSD版本1.2.0 xmlns:exthttp://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.2.0 完成后我们可以通过以下方式利用功能 blueprint xmlnshttp://www.osgi.org/xmlns/blueprint/v1.0.0 xmlns:exthttp://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.2.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:jaashttp://karaf.apache.org/xmlns/jaas/v1.0.0 xsi:schemalocationhttp://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsdext:property-placeholder system-propertiesoverride evaluatorjexl placeholder-prefix$[ placeholder-suffix]bean idmyString classjava.lang.Stringargument value1/argument/beanservice interfacejava.lang.CharSequence refmyStringservice-propertiesentry keyosgi.jndi.service.name value$[karaf.home.toUpperCase()]___$[12]/entry/service-properties/service
/ext:property-placeholder/blueprint 将那个blueprint.xml直接复制到deploy/文件夹中然后您可以从Karaf shell中检查那些内联脚本的动态调用实际上已经发生了 JBossFuse:karafroot ls (id blueprint.xml) | grep osgi.jndi.service.name
osgi.jndi.service.name /OPT/RH/JBOSS-FUSE-6.2.1.REDHAT-107___3 当您寻找一种快速的方法来创建动态配置时这在某些情况下可能很有用。 如果您可能对实现自定义评估程序感兴趣则需要提供以下接口 https://github.com/apache/aries/blob/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ext/evaluator/PropertyEvaluator.java 这是您需要公开的服务的示例以便能够在您的property-placeholder节点中进行引用 service interfaceorg.apache.aries.blueprint.ext.evaluator.PropertyEvaluatorservice-propertiesentry keyorg.apache.aries.blueprint.ext.evaluator.name valuejexl/entry/service-propertiesbean classorg.apache.aries.blueprint.jexl.evaluator.JexlPropertyEvaluator
/bean/service翻译自: https://www.javacodegeeks.com/2016/05/jboss-fuse-dynamic-blueprint-files-jexl.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909883.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!