`
flashcloud
  • 浏览: 189161 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java插件式编程的开源框架:JPF

阅读更多
一款Java插件式编程的插件管理引擎框架:JPF

目前,正在做一个业务员绩效提成的模块,需要用到插件式编程,在GOOGLE找到它,研究中。。。
好像知道的人不多,不知道解决此类问题,朋友们都是采用什么方式,或三方框架进行。我的要求不高,精简,小巧的插件引擎就行,自己懒得发明轮子,有知情的朋友给点意见。
分享到:
评论
3 楼 flashcloud 2009-09-22  
     经过仔细考虑,现在放弃了采用JPF这样的比较厚重的解决方案,采用了最轻巧的命令模式。

     所有的的插件均实现一个命令接口:

/**
 *  方案规则执行器 插件接口
 */
public interface RuleExecutor {
	
	/**
	 *  执行提成计算
	 * @return boolean
	 */
	public boolean execute();
	
}


将插件的包名及类名存放到数据库,采用如下的动态方式加载即可达到目的:

RuleExecutor executor = (RuleExecutor)Class.forName(pluginName).newInstance();


非常简单有效。当然,相信采用JPF来实现会更加灵活和强大,但从进度来讲,本方案是具性价比的,也符合迭代式开发的思想。

该插件接口的完整版本如下,给点意见:
/**
 *  方案规则执行器 插件接口
 */
public interface RuleExecutor {
	
	/**
	 * 提成计算所必须的计算参数,包括提成方案
	 * @param inputParameter the inputParameter to set
	 */
	public void setInputParameter(InputParameter inputParameter);
	public InputParameter getInputParameter();	
	
	/**
	 *  Dao工厂,为插件提供数据
	 * @return
	 */
	public DaoFactory getDaoFactory();
	public void setDaoFactory(DaoFactory daoFactory);
	
	/**
	 *  执行提成计算
	 * @return boolean
	 */
	public boolean execute();
}


2 楼 flashcloud 2009-09-22  
      实际上这是一个使用Drools进行复杂的业务员提成计算的子模块。简单来说,是要对客户销售的几千个品种进行不同的提成方案计算。不同的规则,插入到Drools的Working Memory的数据是不一样的。例如,对于到月末按销售数量提成的方案,需要插入的是销售汇总数据;而有的提成是按单走,业务员按产品的扣率,及在指定的时间内的回款率来提成,这时,需要传入销售单、销售单明细、回款明细等更复杂的数据;当然还有其他更多的及将来随时可以灵活应对客户的更加复杂多变的提成方案。

      针对上述情况,我现在的考虑是将数据插入到Working Memory这一块以插件的形式提供,配合Drools的Rule Templates,同时,将iBatis的SqlMapClient以Global的方式放到drt的规则模板中,再将模板数据以xls电子表的形式提供给最终用户。这样,对本模块就非常的灵活了。

      当然,我现在只是有一个大概方向和轮廓,至于插件这一块,本也用不着这么复杂的插件引擎来实现,实在不行,自己写一个也可以。当然,面对OPEN SOURCE,能在最短的时间加以熟悉并利用到项目中是最好的了。

      也希望有Drools使用经验的朋友给点意见。
1 楼 魔力猫咪 2009-09-21  
详细说明一下可以吗?为什么想到用插件?这个插件主要用来处理什么?

相关推荐

    JPF测试原理以及相关资料

    Java PathFinder(JPF)是Java虚拟机(JVM)的一种模型检查工具,它主要用于静态分析和验证Java程序的行为。JPF通过穷举程序的所有可能执行路径来寻找潜在的错误和漏洞,是一种强大的软件质量保证手段。以下是关于...

    JPF(java pathfinder)配置过程

    Java Pathfinder(JPF)是一款由美国国家航空和宇宙航行局(NASA)开发的开源软件验证工具,主要用于静态分析和动态执行Java程序,以检测潜在的错误和漏洞。它基于Java虚拟机(JVM)模型,可以模拟程序执行,检查...

    JPF (Java Plugin Framework)-开源

    **JPF(Java Plugin Framework)** 是一个专为Java开发者设计的开源插件框架,它提供了构建可扩展、模块化应用程序的能力。这个框架的核心理念是通过插件化的方式来实现应用程序的功能扩展,允许开发者在不修改核心...

    Java PathFinder-jpf-core

    Java PathFinder (JPF) 是一个开源项目,专注于Java应用程序的动态分析和验证。它采用了一种称为“符号执行”的技术来探索程序的所有可能执行路径,以检测潜在的错误和漏洞。这个工具的核心部分是“jpf-core”,它是...

    jpf-core:JPF是Java字节码的可扩展软件分析框架。 jpf-core是所有JPF项目的基础; 您总是需要安装它。 它包含基本的VM和模型检查基础结构,可用于检查并发缺陷(如死锁)和未处理的异常(如NullPointerExceptions和AssertionErrors)

    Java字节码程序的可扩展软件模型检查框架 关于JPF的一般信息 所有最新的开发,变更和文档都可以在我们的页面上找到。 建造和安装 如果您在安装和运行JPF时遇到问题,请参阅“指南。 我们已经在Wiki上记录了许多...

    jpf_2.1_full.zip

    JPF在这里可能指的是Java PathFinder,它是一个开源的Java程序验证框架,用于静态分析和验证Java代码的正确性。 JPF(Java PathFinder)是Sun Microsystems Labs开发的一个项目,它基于模型检查(Model Checking)...

    JPF的Eclipse环境安装运行过程

    JPF(Java Pathfinder)是一款基于 Java 的路径查找工具,用于软件测试和验证。为了在 Eclipse 环境中使用 JPF,需要安装和配置 JPF 的核心组件和 Eclipse 插件。下面将详细介绍 JPF 的安装和配置过程。 安装 JPF ...

    Java Pathfinder(JPF)完全安装配置过程(2013年6月)

    Java Pathfinder (JPF) 是一个强大的工具,专用于调试和验证Java程序的执行路径。它是一种基于Java虚拟机(JVM)的系统,能够系统性地探索程序的所有可能执行流,以便发现潜在的问题,如死锁和未处理的异常。JPF的...

    light-jpf:轻量级Java插件框架

    轻量级Java插件框架1.特点简单的API 使用自定义Java类加载器进行沙箱测试使用Maven构建插件2.用法2.1创建插件创建实现ljpf.Plugin接口的Plugin类。 public class CustomPlugin implements Plugin { @Override public...

    安装jpf-core.zip

    **安装jpf-core.zip**是针对Java平台验证框架(Java Platform, Verification Framework,简称JPF)的安装过程,由于官方下载可能需要用户认证,这里提供了一个便捷的方式,通过下载这个压缩包来规避登录问题。JPF是...

    基于JPF的Java程序验证.pdf

    基于JPF的Java程序验证 本文介绍了基于JPF(Java PathFinder)的Java程序验证方法。JPF是一种精确的Java字节码状态模型检测工具,可以用于检测Java程序中的并发漏洞。 工作原理 JPF的工作原理是基于模型检测的。它...

    jpf:文档与 JPF 相关

    Java Platform, Framework (JPF) 是一个开源项目,主要用于实现Java程序的正式验证。它基于模型检查技术,能够系统地检查代码以确保其遵循预定的规范,从而帮助开发者发现并预防潜在的错误和漏洞。JPF的核心功能是...

    JPF 安装文档

    ### JPF (Java Pathfinder) 安装指南 #### 一、概述 JPF(Java Pathfinder)是一款用于静态分析和模型检查的工具,主要用于检测Java程序中的潜在错误和问题。本篇文档将详细介绍如何在Windows与UNIX系统上安装JPF...

    jpf-qilura:奇鲁拉

    jpf-core = ${jpf-home}/jpf-core jpf-symbc = ${jpf-home}/jpf-symbc jpf-qilura = ${jpf-home}/jpf-qilura extensions+=,${jpf-core} extensions+=,${jpf-symbc} extensions+=,${jpf-qilura} 从github...

    jpf-symbc:符号路径查找器

    此JPF扩展为Java字节码提供符号执行。 它执行字节码的非标准解释。 它允许对具有基本类型(int,long,double,boolean等)参数的方法执行符号执行。 它还支持符号字符串,数组和用户定义的数据结构。 SPF现在具有...

    java笔试题算法-jdart:Java的动态符号分析工具

    java笔试题算法Dart JDart 是一个用于对 Java 程序执行并发执行的工具。 它是作为 NASA Java Pathfinder (JPF) 的扩展编写的。 concolic 执行的目的是通过生成输入值来探索程序中的其他行为,这将导致通过程序(或...

    java密码输入框的实现

    在Java编程语言中,创建一个安全且用户友好的密码输入框是实现用户界面的重要部分,尤其是在涉及用户认证或敏感信息处理的应用程序中。本文将详细探讨如何在Java中实现密码输入框,包括其背后的原理、代码实现以及...

    JavaPathFinder-开源

    JavaPathFinder是一个强大的开源工具,专门用于验证Java字节码程序的正确性。这个系统的设计目的是帮助开发者在代码运行之前发现潜在的错误和缺陷,从而提高软件的质量和可靠性。NASA的Ames Research Center是Java...

    Visual Java Pathfinder-开源

    Java Pathfinder (JPF) 是一个开源的验证工具,主要用于对Java程序进行动态分析和静态分析。它通过模拟程序执行来检查代码的正确性,寻找潜在的运行时错误和异常,帮助开发者在程序实际运行之前发现并修复问题。JPF...

    jpf-qif:Java字节码的符号量化信息流分析

    该项目的目的是使用 JPF 来量化 Java 程序中机密信息的泄漏。 纸 。 JPF 2012。 Quoc-Sang Phan、Pasquale Malacaria、Oksana Tkachuk 和 Corina S. Pasareanu。 安装 以下说明适用于不了解 Java Pathfinder 的人。...

Global site tag (gtag.js) - Google Analytics