Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: for the plan.

Jump to: navigation, search

DNS-SD based wide-area ECF discovery provider

Project Lead: Markus Alexander Kuppe (IRC: lemmy)

Mentor: Scott Lewis

This project is part of the Google Summer of Code 2010


ECF has been supporting multicast based discovery for a while now allowing for zero configuration remote services or any other service discovery and advertisement. However, multicast discovery is limited to the local subnet only. Thus it's time to bring discovery to wide area networks (WAN) by implementing functionality for DNS-SD based discovery which will enable a complete new range of use cases.

DNS-SD (re)uses regular DNS (a dedicated directory) or more precisely SRV, TXT and PTR records as described in RFC 2782, RFC 1035 to find and advertise services in the global domain name system. With DNS-SD it is possible to publish any kind of service including parameters by predefined service types (RFC 2782). For more background information on DNS-SD check out the slideware that I used during the ECF tutorial at EclipseCon2009 [1] or see

A use cases that quickly comes to mind, is to advertise Eclipse update sites/p2 repositories via this ECF discovery provider so that you never ever have to manually add the URL of e.g. the next release train to the p2 director again [2][3]. It only requires the webmasters to add a couple of records to the "" domain. But it can even go further when services are automatically advertised and added to the zones via DNS dynamic update. And scalability would not even be a matter due to DNS' efficient caching. All in all any distributed project in Eclipse land will benefit from this enhancement and is likely to become a consumer of ECF wide area discovery.

Therefore the existing ECF mDNS provider [4] should be extended or a new provider created which leverage a (EPLed) DNS resolver as well as support for DNS update (RFC 2136) to provide both service discovery and service announcement. Alternatively the existing SLP provider can be supplemented with DNS SRV functionality as described in RFC 3832.

Ping me on IRC (lemmy) or Jabber/mail (firstname @ for details, question, comments or criticism. :-)


Glass.gif Needs some investigation/research

Progress.gif Work in progress

Ok green.gif Bug fixed / Feature added


  • Feature complete DNS-SD based ECF discovery provider
    • Service discovery
    • Service advertisement
  • Tests for the ECF discovery "TCK"
  • Licensed under EPL
  • Documentation
  • Integration into ECF build/p2 repository
  • Ready to be shipped with next ECF release


Here is a complete list of the milestones and release candidates planned for this plugin.

Milestone Date Planned items
M1 Week 1-3 Research, Requirements gathering
M2 Week 4-6 Impl of (standalone) DNS resolver, DNS update (rfc2136). Alternatively reuse of dnsjava [1] incl. CQ and upstream OSGi-fication or Orbit
M3 Week 7-9 DNS-SD ECF discovery provider implementation, unit tests
M4 Week 10-12 Documentation, General requirements and design specifications, Lessons learned

Community Involvement

Getting the source

The code has been merged into the official ECF repo located at dnsjava made available via [Orbit].

Getting binaries

The project is regularly build on the ECF build machine and can be downloaded from the DNS-SD p2 repo (This also contains the dnsjava dependency).

Open issues

Check for progress

New ideas

Do you have a great idea for this project? Just open a new feature request.


How to set up a (bind) DNS-SD server has a perfect tutorial how to set up a (bind) dyndns server to be used with DNS-SD wide area discovery. This site also describes how to setup DDNS. You might also want to look at the unit tests for API examples as well as internals.

Back to the top