
** Version A1 TODO **

    - (DONE) Implement ReptileSearchService as a JXTA bridge service and deploy
      it from JXTAInitializer

    - (DONE) ServletInitlaizer shouls ud JXTAInitializer

    - (DONE) include the JXTA-Bridge and associated libraries and document them.

** Version A2 TODO **

    - (DONE) Make sure JXTA inits correctly

    - 'ant dist' should build tomcat so that it can correctly use JXTA.

    - (DONE) On JXTA init...

        - (DONE)Create a ModuleSpecAdvertisement which includes the

            PeerId
            description
            name
            title

            in the Parm.  Call this a ReptilePeerAdvertisement?

    - Implement a JXTA/Reptile peer searching mechanism:

        - (DONE) org.openprivacy.reptile.search.impl.PeerSearchProvider

            - A search provider for searching peers that are local
              advertisements using the PEER table.

        - org.openprivacy.reptile.jxta.tasks.PeerGCTask

             - Responsible for removing all peers that are stale.

        - (DONE) org.openprivacy.reptile.jxta.tasks.PeerAdvertisementIndexTask

            - (DONE) Periodically does getRemoteAdvertisements in its peergroup so that
              it can populate the DB.

            - (DONE) Create a DiscoveryListenerEvent so that I can populate a local
              search provider when I startup Reptile.  Also we should do a
              getLocalAdvertisements when we init()... this will be some type of
              backend index.

        - org.openprivacy.reptile.jxta.tasks.PeerAdvertisementGCTask

            - run and clean up the Advertisement table of stale advertisements.

    - Test out bootstraping JXTA from Reptile and using the
      JXTAPeerSearchProvider to find new Reptile peers.

    - Reptile should find peers in its DB.

    - Make sure that we ALWAYS bootup with the same PipeID
    
** Version A3 TODO **

- create a JXTARemoteServiceProvider that uses a SOAP call to execute its
  requests on a remote peer and cache them locally (fetch 3 pages at a time)

- Ability to subscribe to a new peer.

    - update the REMOTE_SEARCH_PROVIDER table.

    - All JXTA subscripotion should go in the CHANNEL table as normal
      subscriptions.

        - need to update the correct task SubscriptionProxyUpdateTask so that it
          doesn't try to use HTTP to update JXTA URLs.

        - We should use the RSSChannelSearchProvider and a SOAP call to that
          service to get new data.

- Make sure we can syndicate subscriptions on a node-by-node basis here.

- We should probably release Alpha 1 here.
          
** Version A4 TODO **

- Export ReptileSearchService as a HTTP/SOAP service.

    - AxisServlet should be our RPC Router

    - Build some JUnit test calls agains the local RPC Router to make sure it
      works.

    - deploy my service code on the HTTP rpc router

- Generate WSDL for our new service with Java2WSDL

** GLOBAL TODO **

- QUESTIONS:

    - JXTA Bridge should spin for X seconds to try an find a peer group?

    - Do I need to advertise my peer on a new peer group... specifically

        peergroup.getDiscoveryService().remotePublish( platform.getPeerAdvertisement() )

    - yeah... I don't know how this works... try to write a quick command line
      client that I can use... to test out... bootup JXTA then discover.

    - Do we need to handle the MembershipService

    - I don't think our DoS problem is solved by secure pipes.  I think we
      should also assert that the secure pipe was bound to the same endpoint as
      our ID (though crypto).
