为混淆的jar应用程序提供插件API

时间:2013-12-30 22:33:29

标签: java api jar dependencies obfuscation

我如何为作为混淆的jar文件分发的封闭源应用程序提供包含插件API的单独jar文件?

应用程序将在内部使用API​​来实现某些功能。

从某种意义上说,我已经设法实现了这一点,一些插件需要的实用程序类放在包含插件API的jar中,然后内部主应用程序类也使用它。

当我遇到两者都需要的课程时会出现问题,但某些访问应仅限于主要应用程序。

作为一个例子,我有一个像这样的EventManager类:

public final class EventManager {
    // Put an event on the queue, needed by plugins.
    public void pushEvent(Event event) { ... }        

    // Register listeners for particular events, needed by plugins.
    public void registerListener(EventListener listener) { ... }

    // This method should not be visible to the plugin designers!
    // The application should have rigid control over when this is called.
    public void processEvents() { ... }
}

也许这个问题可以通过我没有考虑过的不同设计来解决,或者这个想法是有缺陷的,这是我第一次尝试创建可扩展的应用程序。

如果要将应用程序作为单个包分发,我可以使用包的可见性并在那里放置这些详细信息,但由于我希望关闭应用程序本身,我认为插件API和应用程序无法使用住在同一个罐子里。

我花了几个小时试图研究这个,大多数资源单独处理这个问题涉及的各种主题,但不是如何组合它们,或者它们并不完全相关。以下是一些不断出现的链接:

问题摘要:如何为模糊处理的应用程序提供扩展/插件API作为单独的jar文件?

这是我关于SO的第一个问题,所以希望我没有破坏过多的规则。

0 个答案:

没有答案