java - java中的简单 "check for update"库

标签 java versioning eclipse-rcp

我正在使用 Eclipse RCP,但是,主要是因为我可以完全控制 UI(删除所有贡献,从头开始制作首选项等)我只是不能接受包含的 UPDATE MANAGER 的复杂性和需求(另外,我使用插件而不是功能,并且应用程序插件必须被提取 - 尽管我可以解决最后一个问题)。

无论如何,在第一种方法中,我只想检查是否有更新版本的应用可用。

合乎逻辑的方法是检查服务器上的文件(xml?)。

那里有好的库和示例吗?

谢谢。

最佳答案

Eclipse 现在支持 p2,这是一个比旧的更新管理器灵活得多的系统。它可用于安装新软件和检查现有软件的更新。

您可以在没有 UI 的情况下包含 p2 的 self 更新部分,尽管此处描述了包括“帮助”>“安装新更新”的完整过程 http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application

如果您使用一项功能,则 eclipse 中的所有更新都更易于管理,但该功能是您可以将 RCP 应用程序插件标记为扩展到目录而不是作为 jar(它会自动执行)的地方。

向任何应用程序添加 self 更新都非常重要。你是一次更新所有的 jar ,还是只更新选定的 jar ?同时更新哪些 jar 有意义?使用基于 OSGi 的 Eclipse,您如何确保您的更新使您的系统处于工作状态? p2 旨在帮助管理这些用例。参见 http://wiki.eclipse.org/P2

编辑:

可以使用 p2 API 添加简单的 self 更新,而无需包含任何 UI 代码:

public class SelfUpdateOperation {
    public static void update() {
        BundleContext context = FrameworkUtil.getBundle(
                SelfUpdateOperation.class).getBundleContext();
        ServiceReference<?> reference = context
                .getServiceReference(IProvisioningAgent.SERVICE_NAME);
        if (reference == null)
            return;
        Object obj = context.getService(reference);
        IProvisioningAgent agent = (IProvisioningAgent) obj;
        ProvisioningSession session = new ProvisioningSession(agent);
        UpdateOperation update = new UpdateOperation(session);
        IStatus result = update.resolveModal(new NullProgressMonitor());
        if (result.isOK()) {
            update.getProvisioningJob(new NullProgressMonitor()).schedule();
        } else {
            // can't update for some reason
        }
        context.ungetService(reference);
    }
}

这需要一些工作(也许产品必须包含更新站点),但这是基本的 API。

关于java - java中的简单 "check for update"库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5937328/

相关文章:

java - 从 Protractor 运行 Java 程序

java - 如何使用 java 提取 Postgres 时间戳字段?

java - 如何在 java 流中对 groupBy 应用过滤

ios - 识别用户是否是第一次升级或安装新版本的应用程序

Angular:在构建期间向 Assets 中的文件添加哈希

eclipse - 如何将 MessageDialog.open() 与 QUESTION_WITH_CANCEL 一起使用?

java - XSS漏洞修复方法

.net - 使用程序集版本控制属性的最佳方法是什么?

java - Project Explorer 未在 eclipse rcp 应用程序中显示项目

java - 为 Eclipse RCP 项目生成默认 config.ini