This is great! I am really pleased with the level of openness that Google
has exhibited regarding wave.

I've enjoyed reading the wave code and my Java knowledge has been expanded
as a result.

While looking at DocumentBasedBasicSet I noticed something that seems odd.
Starting at line 201 of handleElementAdded():
    } else if (document.getLocation(oldEntry) <
document.getLocation(newElement)) {
      // newEntry is not needed, so mark it obsolete
      obsoleteElements.add(newElement);
    } else {
      // oldEntry is no needed, so mark it obsoleted and use the new one
instead
      obsoleteElements.add(oldEntry);
      valueElements.put(value, newElement);
    }

This seems counter-intuitive. The comments clearly indicate that it is the
last entry that takes precedence and the previous entries become obsolete.
If the location of newElement is greater than oldEntry then newElement is
the last entry and oldElement has now become obsolete. Give then I would
think that the following would be the correct code:

    } else if (document.getLocation(oldEntry) >
document.getLocation(newElement)) {
      // newEntry is not needed, so mark it obsolete
      obsoleteElements.add(newElement);
    } else {
      // oldEntry is no needed, so mark it obsoleted and use the new one
instead
      obsoleteElements.add(oldEntry);
      valueElements.put(value, newElement);
    }

There are no unit tests available for this class. Are there unit tests
available that have not yet been pushed into the code-base?

-Tad

On Wed, May 26, 2010 at 4:57 AM, Alex North <[email protected]> wrote:

> Hiya all,
>
> We recently created a clone of the main wave-protocol code repository for
> wave model development:
> http://code.google.com/p/wave-protocol/source/browse?repo=model-dev. The
> model-dev clone reflects the current state of wave model development and
> will be pushed much more frequently than the main repository. However, it
> may not always be stable and we will not attempt to integrate changes pushed
> here into the example server or any other code. We will periodically
> integrate changes into the main branch.
>
> The model-dev clone already contains a huge chunk of the production wave
> model code, released for Google I/O. This is the lion's share of the model
> on which Google Wave is based, implementing concurrent wavelet objects,
> wavelet-based data types and (any day now) the conversation model. We've
> released this code in line with our desire to share the code in its raw
> state, still in active development, in the belief that this is more useful
> to the community than holding back for a more stable version. There are a
> number of legacy mechanisms which we are working to replace; we'll share
> some draft designs for these replacements with you over the coming weeks so
> you can see our ideas for the future.
>
> The wave model designs and implementation will continue to evolve and the
> current implementation does not represent a specification. We encourage you
> to use this code, but please be prepared for it to change.
>
> There's a brief walkthrough of the wave model code available on the wiki:
> http://code.google.com/p/wave-protocol/wiki/WaveModelCodeWalk.
>
> Happy coding!
>
> Alex North for the Google Wave team
>
> --
> You received this message because you are subscribed to the Google Groups
> "Wave Protocol" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<wave-protocol%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/wave-protocol?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "Wave 
Protocol" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/wave-protocol?hl=en.

Reply via email to