2
  • TFS Java SDKを使用して TFS サーバーで CheckinEvents をサブスクライブする方法に関する情報を探しています。

TFS .Net SDK を使用してこれを行う方法を示すこのリンクに出くわしました。

TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(txtTfsURL.Text), new UICredentialsProvider());
tpc.EnsureAuthenticated();
IEventService eventService = tpc.GetService(typeof(IEventService)) as IEventService;
DeliveryPreference delPref = new DeliveryPreference();
delPref.Address = “http://” + System.Environment.MachineName + “:8001/CheckInNotify”;
delPref.Schedule = DeliverySchedule.Immediate;
delPref.Type = DeliveryType.Soap;
subscriptionId = eventService.SubscribeEvent(System.Environment.UserDomainName + “\\” + System.Environment.UserName, “CheckInEvent”, “”, delPref);
lblSubscription.Content = string.Format("A checkin subscription is created with subscription id : {0}",subscriptionId.ToString());

対応する Java API とは? 以下と同じですか?

TFSTeamProjectCollection.getVersionControlClient().getEventEngine().addCheckinListener(CheckinListener listener);

また、同じクライアントを使用してチェックインした場合にのみ、このリスナーに通知されると思われます。あれは正しいですか?

  • また、通知 SOAP 応答から TFS コレクションとプロジェクトを特定するにはどうすればよいですか?

コレクションのGUIDであるGUIDがありますが、それは他のデータの一部であるため、いつでもプロジェクト名で利用できるかどうかはわかりません。何か案は?

  • 同じコレクションを 2 回購読しないようにするにはどうすればよいですか? プロジェクトだけをサブスクライブできますか?
4

1 に答える 1

0
  1. いいえ、あなたが提供する 2 つの例は同等ではありません。最初の例では、SOAP 通知を設定し、Team Foundation Server は、ユーザーがチェックインするたびに、構成されたエンドポイントに SOAP メッセージを送信します

  2. お気づきのように、Java API は、チェックインするたびにイベントをトリガーするように Java API を構成します。Java API を使用して、SOAP イベント (またはサーバー自体で発生するグローバル イベント) を構成することはできません。

  3. プロジェクト コレクションを識別するには、一意の URI を使用することをお勧めします。ここでは、クエリ引数が適切です。プロジェクトを識別するには、サーバー パスを見るだけで済みます。

  4. プロジェクト コレクションの GUID がいつ配信されるかはよくわかりませんが、上記の 3 で明確になります。

于 2013-02-22T05:58:07.457 に答える