0

Lotus Notes 8.5.2 に自動更新機能を提供しようとしています。プラグインは Eclipse 3.4.2 で開発されています。これまでのところ、Lotus Notes API にフックしてこれを行うための標準的な方法を見つけることができませんでした。私の頭に浮かぶのは、次の2つのアプローチです。

  • Eclipse p2 SDK を使用して、実行時に自動アップグレードを実行します (プラグインの早期起動時に、アップデーターは新しいバージョンをチェックし、プラグインを更新します)。このエントリでは、アプローチについて説明しています -> http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fp2_api_overview.htm。残念ながら、SDK は Eclipse 3.4.2 の一部ではなく、3.4.2 でこのアプローチを使用することができませんでした。

  • Lotus Notes を閉じ、古いバージョンのプラグインを Lotus のプラグイン ディレクトリから削除し、新しいバージョンをプラグイン ディレクトリにコピーし、Lotus Notes を再起動してプロセスを終了する外部プロセスを使用します。

2 番目の方法は合理的ですが、自動アップグレード プロセス中に Lotus Notes を閉じる必要があります。私の質問は、上記の最初のものに似たアプローチや、Lotus Notes のその他の標準的な手順はありますか? 前もって感謝します。

4

2 に答える 2

0

提案をありがとうサイモン-私はこの投稿からの提案を使用してより直接的な方法を見つけました-> http://www.eclipsezone.com/eclipse/forums/t97689.html 更新のための構成操作(IConfigureFeatureOperation)の追加LotusNotesのplatform.xmlファイルに対する機能のバージョン。アプローチを説明するサンプルスニペットを次に示します。

        String updateSiteUrl = configuration.getUpdateSiteUrl();

        IProgressMonitor monitor = new NullProgressMonitor();
        ISite updateSite = SiteManager.getSite(new URL(updateSiteUrl),
                monitor);
        IFeatureReference[] siteFeatures = updateSite
                .getFeatureReferences();
        ILocalSite localSite = SiteManager.getLocalSite();

        List<IInstallFeatureOperation> installOps = new ArrayList<IInstallFeatureOperation>();
        List<IConfigFeatureOperation> configOps = new ArrayList<IConfigFeatureOperation>();

        IConfiguredSite[] configuredSites = localSite
                .getCurrentConfiguration().getConfiguredSites();

        for (IConfiguredSite configuredSite : configuredSites) {

            IFeatureReference[] localSiteFeatures = configuredSite
                    .getConfiguredFeatures();

            for (IFeatureReference siteFeature : siteFeatures) {
                for (IFeatureReference localSiteFeature : localSiteFeatures) {

                    VersionedIdentifier featureVi = siteFeature
                            .getVersionedIdentifier();
                    VersionedIdentifier localFeatureVi = localSiteFeature
                            .getVersionedIdentifier();

                    if (featureVi.getIdentifier().equals(
                            localFeatureVi.getIdentifier())) {

                        if (featureVi.getVersion().isGreaterThan(
                                localFeatureVi.getVersion())) {

                            installOps
                                    .add(OperationsManager
                                            .getOperationFactory()
                                            .createInstallOperation(
                                                    configuredSite,
                                                    siteFeature
                                                            .getFeature(monitor),
                                                    null, null, null));

                            configOps
                                    .add(OperationsManager
                                            .getOperationFactory()
                                            .createConfigOperation(
                                                    configuredSite,
                                                    siteFeature
                                                            .getFeature(monitor),
                                                    null, null));
                        }
                    }
                }
            }
        }

        if (installOps.size() > 0) {

                // install new feature
                for (Iterator<?> iter = installOps.iterator(); iter
                        .hasNext();) {
                    IInstallFeatureOperation op = (IInstallFeatureOperation) iter
                            .next();
                    op.execute(monitor, null);
                }

                // configure new feature
                for (Iterator<?> iter = configOps.iterator(); iter
                        .hasNext();) {
                    IConfigFeatureOperation op = (IConfigFeatureOperation) iter
                            .next();
                    op.execute(monitor, null);
                }

                localSite.save();}
于 2012-06-13T08:30:12.027 に答える
0

ウィジェット カタログをお読みください。それはあなたが望むことをします。

http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/topic/com.ibm.help.domino.admin85.doc/H_MANAGING_CLIENTS_USING_WIDGETS_AND_THE_WIDGETS_CATALOG_OVER.html

ただし、プラグインの更新後にクライアントを再起動する必要があります。

于 2012-06-12T07:01:19.890 に答える