1

我有一些插件类型类,我无法保证它们的线程安全和异常处理(假设将来由某个第三人编码)。主应用程序只通过“插件”接口知道这些,并不关心它们在内部做什么。除了由于这些插件类中的一些异常抛出或线程锁定,应用程序无法承受崩溃或冻结。插件类不依赖于主应用程序,只执行主应用程序的一些命令。只有另外两个交互是:

  1. 当异步任务完成时,调用接口的方法(由主应用程序作为方法 arg 提供)。
  2. 提供用于配置的 GUI。(主应用程序只是询问并从容器中添加/删除它,仅此JPanel而已。)

有什么好的方法可以实现这一目标?我正在考虑一个包装器,其中包含对实际插件方法的同步、try-catch 调用。可以在这里使用 AOP 拦截器吗?在 Java 中对类进行沙箱化的任何其他方式?

4

1 回答 1

0

事实证明你可以保护你的大部分进程,但是当你同意在你的 UI 线程上显示一个插件的 UI 时,它肯定会导致你的应用程序崩溃。

于 2012-10-30T12:53:34.943 回答