2012-09-25 116 views
1

我有一些插件类型类,其线程安全和异常处理我不能保证(假设将来由第三方编码)。主应用程序只通过“插件”接口知道这些,而不关心他们在内部做什么。除了由于这些插件类中抛出的某个异常或线程锁定导致应用程序不能崩溃或冻结。插件类不依赖于主应用程序,只需从主应用程序执行一些命令即可。只有两个其他的相互作用是:异常和线程安全沙箱

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

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

+0

嗯也许“如果插件断裂,这是插件作者的错” buckit的想法是一个很好的理念在这里 – jozefg

+0

你的问题太模糊。插件是否访问核心应用程序类?它可以在它自己的线程中运行,还是它是一些UI应用程序,其中的插件代码也在UI线程中运行? –

+0

@JBNizet更新了问题。 –

回答

0

事实证明,你可以保护你的大部分过程中,但是当你同意出现在您的UI线程插件的用户界面,它绝对可以引起程序崩溃。