Author: fmantek
Date: Thu Sep 6 01:35:18 2007
New Revision: 236
Modified:
trunk/clients/cs/RELEASE_NOTES.HTML
trunk/clients/cs/src/core/atomfeedentry.cs
trunk/clients/cs/src/gspreadsheet/spreadsheetentry.cs
Log:
Added an Alternate Property on the AtomEntry class. This property
returns the AtomUri of a rel=alternate type=html LINK entry. As this is
similiar to the ill named LINK helper on the spreadsheet entry, that
helper was removed, as they do serve the same purpose, and the link
helper was read only.
Modified: trunk/clients/cs/RELEASE_NOTES.HTML
==============================================================================
--- trunk/clients/cs/RELEASE_NOTES.HTML (original)
+++ trunk/clients/cs/RELEASE_NOTES.HTML Thu Sep 6 01:35:18 2007
@@ -1,273 +1,475 @@
<title>Releasse Notes</title>
-<p>This document lists the changes in the different releases</p>
+<p>
+This document lists the changes in the different releases
+</p>
<h1>1.1.0.0</h1>
<ul>
-<li>
-To enable ASP.NET hosting in medium trust, we removed the usage of the
NetworkCredentials class.
-From now on, credentials are either passed as username/password, or using the
GDataCredentials. (issue 57)
-</li>
-<li>Changed "adminUserName" to "adminEmailAddress" in AppsService so that it's
more clear what information is
-actually required for this parameter.</li>
-
-<li>added GZip support for .NET 1.1, 2.0 and .NET Compact Framework 2.0 (see
readme).</li>
-<li>fixed a Google Base issue (The server doesn't accept scientific notations
for floats)</li>
-<li>fixed typo in the blogger sample (www..blogger), which made the sample
hard to use</li>
-<li>added the ability to use authsubtokens to the ExecRequest utility
(including exchange of a onetime
- token to a session token). Just run ExecRequest for the command line
parameters</li>
-
-<li>make the GAuthToken property of the GAuthRequestFactory public. It was
mistakenly marked internal, so that
- the token could not be retrieved by a client application for caching. </li>
-<li>fixed a parsing issue that resulted in Batch Upload hanging if an unknown
element was encountered</li>
-<li>added a helper method on AtomBase (entry and feed) to find
exensionelements by specifying a localname and
- an optional namespace (issue 81)</li>
-<li>the extension mechanism was reworked by creating an
ExtensionElementFactory interface that takes care of
- parsing elements. ElementFactories are registered on the AtomBase (entry and
feed) level.</li>
-<li>Fixed Issue 60, mulitple Reminders per Event. Note, that this introduces
slight changes when dealing with this.
- A new property, EventEntry.Reminders, was created. The old property,
EventEntry.Reminder, still exists, and only
- works on the first Reminder in the list. Setting the old property will
delete all addtional reminders.The Reminders
- property is of type ArrayList (this is an artifact of being .NET 1.1
compatible, once we move to .NET 2.0 or later, if
- that ever happens, this could/should be typed).</li>
-<li>Support for Google Calendar WebContent Gadgets is included. A WebContent
element has a SortedList property to set and retrieve
- those preferences. See caltest.cs for an example.</li>
-<li>Modified data model for Spreadsheets worksheets to make it easier to
change
-and construct associated meta-data</li>
-<li>Added the ctz parameter to the EventQuery class. This parameter allows
- to specify the timezone that is used to calculate start/end times for the
- returned events</li>
+ <li>
+ To enable ASP.NET hosting in medium trust, we removed the usage of the
+ NetworkCredentials class. From now on, credentials are either passed
as username/password,
+ or using the GDataCredentials. (issue 57)
+ </li>
+ <li>
+ Changed "adminUserName" to "adminEmailAddress" in AppsService so that
it's more
+ clear what information is actually required for this parameter.
+ </li>
+
+ <li>
+ added GZip support for .NET 1.1, 2.0 and .NET Compact Framework 2.0
(see readme).
+ </li>
+ <li>
+ fixed a Google Base issue (The server doesn't accept scientific
notations for
+ floats)
+ </li>
+ <li>
+ fixed typo in the blogger sample (www..blogger), which made the sample
hard to
+ use
+ </li>
+ <li>
+ added the ability to use authsubtokens to the ExecRequest utility
(including
+ exchange of a onetime token to a session token). Just run ExecRequest
for the
+ command line parameters
+ </li>
+
+ <li>
+ make the GAuthToken property of the GAuthRequestFactory public. It was
+ mistakenly marked internal, so that the token could not be retrieved
by a client
+ application for caching.
+ </li>
+ <li>
+ fixed a parsing issue that resulted in Batch Upload hanging if an
unknown
+ element was encountered
+ </li>
+ <li>
+ added a helper method on AtomBase (entry and feed) to find
exensionelements by
+ specifying a localname and an optional namespace (issue 81)
+ </li>
+ <li>
+ the extension mechanism was reworked by creating an
ExtensionElementFactory
+ interface that takes care of parsing elements. ElementFactories are
registered
+ on the AtomBase (entry and feed) level.
+ </li>
+ <li>
+ Fixed Issue 60, mulitple Reminders per Event. Note, that this
introduces slight
+ changes when dealing with this. A new property, EventEntry.Reminders,
was
+ created. The old property, EventEntry.Reminder, still exists, and only
works on
+ the first Reminder in the list. Setting the old property will delete
all
+ addtional reminders.The Reminders property is of type ArrayList (this
is an
+ artifact of being .NET 1.1 compatible, once we move to .NET 2.0 or
later, if
+ that ever happens, this could/should be typed).
+ </li>
+ <li>
+ Support for Google Calendar WebContent Gadgets is included. A
WebContent element
+ has a SortedList property to set and retrieve those preferences. See
caltest.cs
+ for an example.
+ </li>
+ <li>
+ Modified data model for Spreadsheets worksheets to make it easier to
change and
+ construct associated meta-data
+ </li>
+ <li>
+ Added the ctz parameter to the EventQuery class. This parameter allows
to
+ specify the timezone that is used to calculate start/end times for the
returned
+ events
+ </li>
+ <li>
+ Added an Alternate Property on the AtomEntry class. This property
+ returns the AtomUri of a rel=alternate type=html LINK entry. As this
is
+ similiar to the ill named LINK helper on the spreadsheet entry, that
+ helper was removed, as they do serve the same purpose, and the link
+ helper was read only.
+ </li>
</ul>
<h1>1.0.9.9</h1>
<ul>
-<li>added GBase support for m:adjusted_name and gm:adjusted_value inside
attributes
- (returned only when adjustments are enabled)
-<li>Google Apps changes:
- <ul>
- <li>Added new AppsService.createUser methods with hashed password support
- <li>Updated AppsException with new Google Apps error codes
- <li>Added the following properties to Login.cs:
- string hashFunctionName <li>to hash user account password,
- bool agreedToTerms <li>to see if the user has accepted the Google Apps
Terms Of Service,
- bool admin <li>to see if the user is a domain admin,
- bool changePasswordAtNextLogin <li>to force the user to change password
at next login
- <li>Updated unittests to test new properties
- </ul>
+ <li>
+ added GBase support for m:adjusted_name and gm:adjusted_value inside
attributes
+ (returned only when adjustments are enabled)
+ <li>
+ Google Apps changes:
+ <ul>
+ <li>
+ Added new AppsService.createUser methods with hashed password
support
+ <li>
+ Updated AppsException with new Google Apps error codes
+ <li>
+ Added the following properties to Login.cs: string
hashFunctionName
+ <li>
+ to hash user account password, bool agreedToTerms
+ <li>
+ to see if the user has accepted the Google Apps Terms Of
Service, bool admin
+ <li>
+ to see if the user is a domain admin, bool
changePasswordAtNextLogin
+ <li>
+ to force the user to change password at next login
+ <li>
+ Updated unittests to test new properties
+ </ul>
</ul>
<h1>1.0.9.8</h1>
<ul>
-<li>fixed a parsing bug in SpreadsheetService
-<li>fixed a bug in GDataRequestException that would prevent AppsException from
accessing the server's response.
-<li>modified AppsException to comply with new GDataRequestException
-<li>fixed a bug in CalculateBaseUri, that caused a crash if the passed in
parameters are all NULL. This caused composite feeds
- to not load if there was a comment feed embedded
-<li>fixed a bug in the CalendarEventEntry, it was not parsing
extendedProperties. They are now parsed
- and added correctly to the ExtensionElements
-<li>added ACL support. This resulted in changes in the CalendarService.Query
method <li>as a CalendarService
- can now return an EventFeed or an AccessControlFeed is returns now an
AtomFeed that you can cast to what
- you are expecting. Added Query overloads to accept EventQuery or AclQuery
and return the appropriate
- Feeds
-<li>added a cmd line tool to query/insert/update to a service based on streams
-<li>modified the Spreadsheet service to use the new scheme of service
subclassing. This should fix a bundle of issues
- with regard to entry castings.
-<li>changed persistence of gd:extendedProperty to save the value attribute,
even if there is no data to persist
-<li>Added an ASP.NET release (lib/ASP.NET) where the DLLs are build with the
AllowPartiallyTrustedCallers attribute n
- enabled. Please use with caution and refer to the readme.txt in that
subdirectory for more information.
+ <li>
+ fixed a parsing bug in SpreadsheetService
+ <li>
+ fixed a bug in GDataRequestException that would prevent AppsException
from
+ accessing the server's response.
+ <li>
+ modified AppsException to comply with new GDataRequestException
+ <li>
+ fixed a bug in CalculateBaseUri, that caused a crash if the passed in
parameters
+ are all NULL. This caused composite feeds to not load if there was a
comment
+ feed embedded
+ <li>
+ fixed a bug in the CalendarEventEntry, it was not parsing
extendedProperties.
+ They are now parsed and added correctly to the ExtensionElements
+ <li>
+ added ACL support. This resulted in changes in the
CalendarService.Query method
+ <li>
+ as a CalendarService can now return an EventFeed or an
AccessControlFeed is
+ returns now an AtomFeed that you can cast to what you are expecting.
Added Query
+ overloads to accept EventQuery or AclQuery and return the appropriate
Feeds
+ <li>
+ added a cmd line tool to query/insert/update to a service based on
streams
+ <li>
+ modified the Spreadsheet service to use the new scheme of service
subclassing.
+ This should fix a bundle of issues with regard to entry castings.
+ <li>
+ changed persistence of gd:extendedProperty to save the value
attribute, even if
+ there is no data to persist
+ <li>
+ Added an ASP.NET release (lib/ASP.NET) where the DLLs are build with
the
+ AllowPartiallyTrustedCallers attribute n enabled. Please use with
caution and
+ refer to the readme.txt in that subdirectory for more information.
</ul>
<h1>1.0.9.7</h1>
-<ul><li>fixed an incorrect trace statement in request.cs that had the result
of disabling reading the error response.</ul>
+<ul>
+ <li>
+ fixed an incorrect trace statement in request.cs that had the result
of
+ disabling reading the error response.
+</ul>
<h1>1.0.9.6</h1>
-<ul><li>added Google Apps for Your Domain support, a new helper DLL
Google.GData.Apps.dll, and a sample, as well
- as unittests. Version number is increased to distinguish from Subversion, as
this will be a binary download
- as well.</ul>
+<ul>
+ <li>
+ added Google Apps for Your Domain support, a new helper DLL
Google.GData.Apps.dll,
+ and a sample, as well as unittests. Version number is increased to
distinguish
+ from Subversion, as this will be a binary download as well.
+</ul>
<h1>1.0.9.5</h1>
-<ul><li>fix for incorrect encoding of usernames/passwords during
authentication (you could run
- into problems if you had an email like "foo&[EMAIL PROTECTED]"
-<li>exposure of the accountType as a property on the factory. If you happen to
have an identical
- user name for a Google account and a hosted account, you need to set this
property depending on
- which account you want to access. Default is GOOGLE_OR_HOSTED, other values
are GOOGLE or HOSTED
- as strings.
-<li>fixed an issue with the edit/self uris on the entry. They were not
correctly setable.
-<li>fixed an issue that one you used an authenticated service, but did not
supply credentials, we would send
- an empty authentication header.
-<li>added Captcha Handling and more detailed exceptions when the
authentication
- request fails. See authexceptions.cs for the list of potential exceptions
thrown
-<li>added some preliminary unittests for the new exceptions
-<li>added a new constructor for the TokenCollection, so that captcha parsing
is handled correctly
-<li>made the debug output depending on the TRACE define, and removed that
define for the release build
+<ul>
+ <li>
+ fix for incorrect encoding of usernames/passwords during
authentication (you
+ could run into problems if you had an email like "foo&[EMAIL
PROTECTED]"
+ <li>
+ exposure of the accountType as a property on the factory. If you
happen to have
+ an identical user name for a Google account and a hosted account, you
need to
+ set this property depending on which account you want to access.
Default is
+ GOOGLE_OR_HOSTED, other values are GOOGLE or HOSTED as strings.
+ <li>
+ fixed an issue with the edit/self uris on the entry. They were not
correctly
+ setable.
+ <li>
+ fixed an issue that one you used an authenticated service, but did not
supply
+ credentials, we would send an empty authentication header.
+ <li>
+ added Captcha Handling and more detailed exceptions when the
authentication
+ request fails. See authexceptions.cs for the list of potential
exceptions thrown
+ <li>
+ added some preliminary unittests for the new exceptions
+ <li>
+ added a new constructor for the TokenCollection, so that captcha
parsing is
+ handled correctly
+ <li>
+ made the debug output depending on the TRACE define, and removed that
define for
+ the release build
</ul>
<h1>1.0.9.4</h1>
<ul>
-<li>Google Base: fix for incorrect Price attribute behaviour
-<li>Google Base: fix for incorrectly persisting duplicate attributes
-<li>Fix for Content.Type having no default value (issue 41)
-<li>Fix for Content.Type="text/html" parsing incorrectly. The strict check for
type="text" is now relaxed to be type="text*",
- so all text subtypes will be treated the same
-<li>Fix for Content.Type = "html" and "text/html" persistence. What the code
does now is: first HTMLDecode the value held, than
- run the standard XMLWriter.WriteString over it (which does HTML encoding).
This seems to work fine.
-<li>Added the gm:stats tags to the Windows Mobile build, accidently forgot to
change that project file
-<li>the calendarfeed discarded entries unknown to it in the calendar
namespace. This is fixed now. Unknown entries to the parser
- are now correctly added to the extension elements.
-<li>added the return-empty parameter to the cellquery class
-<li>added URL encoding to the authentication parameters (username/passwords
etc that had unallowed FORM post chars caused failed login
- attempts)
+ <li>
+ Google Base: fix for incorrect Price attribute behaviour
+ <li>
+ Google Base: fix for incorrectly persisting duplicate attributes
+ <li>
+ Fix for Content.Type having no default value (issue 41)
+ <li>
+ Fix for Content.Type="text/html" parsing incorrectly. The strict check
for type=
+ "text" is now relaxed to be type="text*", so all text subtypes will be
treated
+ the same
+ <li>
+ Fix for Content.Type = "html" and "text/html" persistence. What the
code does
+ now is: first HTMLDecode the value held, than run the standard
XMLWriter.WriteString
+ over it (which does HTML encoding). This seems to work fine.
+ <li>
+ Added the gm:stats tags to the Windows Mobile build, accidently forgot
to change
+ that project file
+ <li>
+ the calendarfeed discarded entries unknown to it in the calendar
namespace. This
+ is fixed now. Unknown entries to the parser are now correctly added to
the
+ extension elements.
+ <li>
+ added the return-empty parameter to the cellquery class
+ <li>
+ added URL encoding to the authentication parameters
(username/passwords etc that
+ had unallowed FORM post chars caused failed login attempts)
</ul>
<h1>1.0.9.3</h1>
<ul>
-<li>Google Base changes:
- New features:
- <ul>
- <li>GBaseQuery supports the following optional parameters; orderby,
sortorder, refine and content
- <li>Support for gm:stats tags
- <li>GBaseUriFactory can now generate the feed uri of other customers
-
- Fixes:
- <li>Fixed the GBaseAttributeType hierarchy for date/dateTime/dateTimeRange
- <li>Fixed the type of the hardcoded ExpirationDate property in
GBaseAttributes
- </ul>
-<li>Added a Makefile for Mono builds. This one replaces the Ant file.
+ <li>
+ Google Base changes: New features:
+ <ul>
+ <li>
+ GBaseQuery supports the following optional parameters;
orderby, sortorder,
+ refine and content
+ <li>
+ Support for gm:stats tags
+ <li>
+ GBaseUriFactory can now generate the feed uri of other
customers
+ Fixes:
+ <li>
+ Fixed the GBaseAttributeType hierarchy for
date/dateTime/dateTimeRange
+ <li>
+ Fixed the type of the hardcoded ExpirationDate property in
GBaseAttributes
+ </ul>
+ <li>
+ Added a Makefile for Mono builds. This one replaces the Ant file.
</ul>
<h1>1.0.9.2</h1>
<ul>
-<li>Removed the MethodOverride default for the CalendarService. If you need
that (due to firewalls not allowing PUT/DELETE requests,
- you can reenable this with setting the MethodOverride flag on the factory:
- ((GDataGAuthRequestFactory)calsvc.RequestFactory).MethodOverride = false;
-<li>Changed the X-Method-Override behaviour for DELETE, to fix an issue with
.NET mobile (the mobile client would crash when
- the contentLength was set to 0 and no stream was requested).
+ <li>
+ Removed the MethodOverride default for the CalendarService. If you
need that (due
+ to firewalls not allowing PUT/DELETE requests, you can reenable this
with
+ setting the MethodOverride flag on the factory:
((GDataGAuthRequestFactory)calsvc.RequestFactory).MethodOverride
+ = false;
+ <li>
+ Changed the X-Method-Override behaviour for DELETE, to fix an issue
with .NET
+ mobile (the mobile client would crash when the contentLength was set
to 0 and no
+ stream was requested).
</ul>
-<h1>1.0.9.1</h1>
-<li>Added a KeepAlive property to the factory object. This is set to true by
default. .NET 2.0 clients, are due to behaviour changes
- in that runtime encouraged to set this to false.
-
-<h1>1.0.9</h1>
-<li>Fixed an issue where the login services changed the response contenttype.
The check for text/plain is now more relaxed.
-<li>Added the missing location calls for Geolocation for GoogleBase
-<li>Fixed a build issue for Windows Mobile in release. The code now compiles
for PocketPC and WindowsMobile symbols defined.
-
-<h1>1.0.8</h1>
-<li>Fixed issue 13 from the public issue list. If a content element contained
xhtml, and not just text,
- the content was not read correctly.
-<li>Fixed issue 17 from the public issue list. XHTML content was not persisted
correctly.
-<li>Added support for hosted domain feeds. This is done automatically, no
codechanges needed for the application developer.
- The authentication code was changed to ask for Hosted domains first, then
google accounts.
-<li>Added support for the app:control/app:draft element, but only in the way
to expose a boolean on the AtomEntry.
- The new member on AtomEntry is called IsDraft.
-<li>Changed the way atom:content is parsed. Text & HTML types use
xmlreader.ReadString() to get the inner content. XHTML and
- all other types use readInnerXml() to get the content.
-<li>changed Exception handling. The code now throws more detailed exceptions
based on what was happening:
- -> GDataRequestException: generic exception
- -> GDataForbiddenException: exception thrown when the server return a
Forbidden on authentication
- -> GDataRedirectException: exception thrown when the server returned a
redirect
-<li>changed redirect handling on Post. The library will follow redirects on
Post automatically by default, to accomodate Blogger (which
- currently may return 302s on posts). This can be turned off by setting the
.StrictRedirect property to true on the
- GDataAuthRequestFactory. If it is turned off, the code will throw if a
redirect is happening on an HTTP verb other than GET.
-<li>changed redirect handling for DELETE/PUT the same as for POST
-<li>removed cookie handling. The code will handle cookies now without using
the CookieContainer (one hurdle on the way to the CompactFramework Port).
-<li>Fixed persistence of "initialized" date values for udpated/published on
the atom.entry. This resolves an issue with the Blogger.
-<li>Added EventEntry.Notifications. This property (boolean) indicates if an
update on an entry should send notifications to the attendees of the
- Event.
-<li>Fixed the gbase project (the NumberFormat.cs file was missing in the
project file).
-<li>Added a proxy property for the GDataRequestFactory.
-<li>Setting content-length correctly to fix WindowsMobile issues. This fix is
a user submitted, and created by Steeve Morin
-<li>Fixes to the authsub code, provided by Ryan Boyd
-<li>The DLLs were renamed, to follow the Windows .NET standard.
- gdata.dll -> Google.GData.Client.dll
- gbase.dll -> Google.GData.GoogleBase.dll
- gcalendar.dll -> Google.GData.Calendar.dll
- gcodesearch.dll -> Google.GData.CodeSearch.dll
- gextensions.dll -> Google.GData.Extensions.dll
- and the new one -> Google.GData.Spreadsheets.dll
-
-
-<h1>1.0.7</h1>
-<li>Added support for published-min/published-max as standard query parameters
-<li>Added support for codesearch. A new DLL gcodesearch.dll and a new sample
for this is available.
-<li>Added support for the WebContent calendar extension
-<li>Added signing to the gbase.dll
-
-<h1>1.0.6</h1>
-<li>Added support for sortoder, futurevents, singleevents on the calendarquery
-<li>Added a ResponseString property on the GDataRequestException to make
debugging server side errors easier
-<li>Fixed an issue with the GoogleBaseService, if you did set the
RequestFactory property twice, you would
- create too many header entries, and hence end up with request denied
responses
-<li>Added the shipping attribute for GoogleBase
-<li>Changed the payment attribute to payment_accepted for GoogleBase
-
-<h1>1.0.5</h1>
-<li>Added batch support for GoogleFeeds, the first property to support this is
the GoogleBase product
-<li>Added a unittest for GoogleBase. This code shows update/insert/delete
against base for single entries and batch entries
- refer to clients/cs/src/unittests/gbase.cs for sample code.
-<li>Added IComparable to atomuri.cs (based on a feature request on our issue
list)
-<li>GDataAuthRequestFactory is now a subclass of GDataRequestFactory
-<li>Moved GCookies from GDataAuthRequestFactory to GDataRequestFactory and
renamed it to Cookies
-<li>removed the debug binaries from the lib directory
-<li>added a GoogleBase sample application in VB !
-<li>added the build executables to the lib directory
-<li>added GoogleBase classes (similiar to the java classes) to access Google
base specific feeds
-
-Known issues:
-<li>recurrenceException is not fully tested
-<li>authsubutil and gauthsubrequest are not fully tested
-
-
-<h1>1.0.4</h1>
-<li>Fixed a .NET 2.0 issue in calendarservice.cs, that dropped connections
during repeated calls.
-<li>Made the execution path more robust.
-<li>Added a property, numberOfRetries on the GAuthRequestFactory to indicate
how often an Execution should be retried if the server returns an error.
-<li>Fixed a bug in the daterange query creation (the +sign for the timezone
was not escaped properly)
-<li>Fixed an issue with updating, where if you used the same
AtomEntry/EventEntry several times to update, it could happen that extension
- elements were doubled, and the update failed.
-<li>Fixed a bug in the parsing of all elements. This could cause an endless
loop when the content was empty.
-<li>Fixed several content creation issues (issues 5-9 on the issue list)
-<li>added support for the gd:extendedProperty
-<li>Added a calendar example application
-<li>added a sample application to access Blogger feeds, and post to blogger
feeds.
-
-Known issues:
-<li>recurrenceException is not fully tested
-<li>authsubutil and gauthsubrequest are not fully tested
-Solved issues:
- <li>.NET 2.0 seems to loose resources in some circumstances. Hard to
reproduce.
-
-
-
-<h1>1.0.3</h1>
-<li>Fixed the namespace creation for extensions, the wireformat should no
longer create the namespace declaration when it's not required
-<li>Fixed the reminder persistence code
-<li>added a TimeZone property on the EventFeed to retrieve the timezone value
-<li>added a FindEvent method on the EventFeed. This one takes an OriginalEvent
object, and returns the
- Event that this is based on. This will go to the server if required.
-<li>Fixed recurrance issues in the extensions
-<li>Moved EventFeed and EventEntry from the Google.GData.Extensions namespace
to the Google.GData.Calendar namespace
-<li>Fixed a bug in the parsing of Atom:Content elements. This could cause an
endless loop when the content was empty.
-
-<h1>1.0.2</h1>
-<li>Fixed a problem persisting feedlink elements
-<li>added an AllDay flag to the When class to allow parsing and persting of
all day events
-<li>cleaned up the persistence code in the extension classes
-<li>fixed a problem that resulted in persisting multiple extensionn objects
instead of one
-<li>added a timestamp method to the Tracing class to help measuring
performance in simple cases
-
-<h1>1.0.1</h1>
-<li>Correctly uses 'rel.previous' instead of 'rel.prev' as required by Atom
- Publishing Protocol.
-<li>Corrected the time-shift portion of the DateTime output for time zones
with a
- negative shift from UTC.
-<li>Corrected the time-shift to permit fractional hour shifts from UTC.
-<li>Correctly output "startTime" and "endTime" as attributes of the "when"
- extension rather than child elements.
-<li>Refactored class hierarchy, now based on IExtensionElement.
+<h1>1.0.9.1</h1>
+<li>
+ Added a KeepAlive property to the factory object. This is set to true by
default.
+ .NET 2.0 clients, are due to behaviour changes in that runtime encouraged
to set
+ this to false.
+
+ <h1>1.0.9</h1>
+<li>
+ Fixed an issue where the login services changed the response contenttype.
The
+ check for text/plain is now more relaxed.
+<li>
+ Added the missing location calls for Geolocation for GoogleBase
+<li>
+ Fixed a build issue for Windows Mobile in release. The code now compiles
for
+ PocketPC and WindowsMobile symbols defined.
+ <h1>1.0.8</h1>
+<li>
+ Fixed issue 13 from the public issue list. If a content element contained
xhtml,
+ and not just text, the content was not read correctly.
+<li>
+ Fixed issue 17 from the public issue list. XHTML content was not persisted
+ correctly.
+<li>
+ Added support for hosted domain feeds. This is done automatically, no
+ codechanges needed for the application developer. The authentication code
was
+ changed to ask for Hosted domains first, then google accounts.
+<li>
+ Added support for the app:control/app:draft element, but only in the way
to
+ expose a boolean on the AtomEntry. The new member on AtomEntry is called
IsDraft.
+<li>
+ Changed the way atom:content is parsed. Text & HTML types use
xmlreader.ReadString()
+ to get the inner content. XHTML and all other types use readInnerXml() to
get
+ the content.
+<li>
+ changed Exception handling. The code now throws more detailed exceptions
based
+ on what was happening: -> GDataRequestException: generic exception ->
+ GDataForbiddenException: exception thrown when the server return a
Forbidden on
+ authentication -> GDataRedirectException: exception thrown when the server
+ returned a redirect
+<li>
+ changed redirect handling on Post. The library will follow redirects on
Post
+ automatically by default, to accomodate Blogger (which currently may
return 302s
+ on posts). This can be turned off by setting the .StrictRedirect property
to
+ true on the GDataAuthRequestFactory. If it is turned off, the code will
throw if
+ a redirect is happening on an HTTP verb other than GET.
+<li>
+ changed redirect handling for DELETE/PUT the same as for POST
+<li>
+ removed cookie handling. The code will handle cookies now without using
the
+ CookieContainer (one hurdle on the way to the CompactFramework Port).
+<li>
+ Fixed persistence of "initialized" date values for udpated/published on
the atom.entry.
+ This resolves an issue with the Blogger.
+<li>
+ Added EventEntry.Notifications. This property (boolean) indicates if an
update
+ on an entry should send notifications to the attendees of the Event.
+<li>
+ Fixed the gbase project (the NumberFormat.cs file was missing in the
project
+ file).
+<li>
+ Added a proxy property for the GDataRequestFactory.
+<li>
+ Setting content-length correctly to fix WindowsMobile issues. This fix is
a user
+ submitted, and created by Steeve Morin
+<li>
+ Fixes to the authsub code, provided by Ryan Boyd
+<li>
+ The DLLs were renamed, to follow the Windows .NET standard. gdata.dll
->
+ Google.GData.Client.dll gbase.dll ->
Google.GData.GoogleBase.dll
+ gcalendar.dll -> Google.GData.Calendar.dll gcodesearch.dll ->
Google.GData.CodeSearch.dll
+ gextensions.dll -> Google.GData.Extensions.dll and the new one ->
+ Google.GData.Spreadsheets.dll
+
+
+ <h1>1.0.7</h1>
+<li>
+ Added support for published-min/published-max as standard query parameters
+<li>
+ Added support for codesearch. A new DLL gcodesearch.dll and a new sample
for
+ this is available.
+<li>
+ Added support for the WebContent calendar extension
+<li>
+ Added signing to the gbase.dll
+ <h1>1.0.6</h1>
+<li>
+ Added support for sortoder, futurevents, singleevents on the calendarquery
+<li>
+ Added a ResponseString property on the GDataRequestException to make
debugging
+ server side errors easier
+<li>
+ Fixed an issue with the GoogleBaseService, if you did set the
RequestFactory
+ property twice, you would create too many header entries, and hence end up
with
+ request denied responses
+<li>
+ Added the shipping attribute for GoogleBase
+<li>
+ Changed the payment attribute to payment_accepted for GoogleBase
+ <h1>1.0.5</h1>
+<li>
+ Added batch support for GoogleFeeds, the first property to support this is
the
+ GoogleBase product
+<li>
+ Added a unittest for GoogleBase. This code shows update/insert/delete
against
+ base for single entries and batch entries refer to
clients/cs/src/unittests/gbase.cs
+ for sample code.
+<li>
+ Added IComparable to atomuri.cs (based on a feature request on our issue
list)
+<li>
+ GDataAuthRequestFactory is now a subclass of GDataRequestFactory
+<li>
+ Moved GCookies from GDataAuthRequestFactory to GDataRequestFactory and
renamed
+ it to Cookies
+<li>
+ removed the debug binaries from the lib directory
+<li>
+ added a GoogleBase sample application in VB !
+<li>
+ added the build executables to the lib directory
+<li>
+ added GoogleBase classes (similiar to the java classes) to access Google
base
+ specific feeds
+ Known issues:
+<li>
+ recurrenceException is not fully tested
+<li>
+ authsubutil and gauthsubrequest are not fully tested
+
+ <h1>1.0.4</h1>
+<li>
+ Fixed a .NET 2.0 issue in calendarservice.cs, that dropped connections
during
+ repeated calls.
+<li>
+ Made the execution path more robust.
+<li>
+ Added a property, numberOfRetries on the GAuthRequestFactory to indicate
how
+ often an Execution should be retried if the server returns an error.
+<li>
+ Fixed a bug in the daterange query creation (the +sign for the timezone
was not
+ escaped properly)
+<li>
+ Fixed an issue with updating, where if you used the same
AtomEntry/EventEntry
+ several times to update, it could happen that extension elements were
doubled,
+ and the update failed.
+<li>
+ Fixed a bug in the parsing of all elements. This could cause an endless
loop
+ when the content was empty.
+<li>
+ Fixed several content creation issues (issues 5-9 on the issue list)
+<li>
+ added support for the gd:extendedProperty
+<li>
+ Added a calendar example application
+<li>
+ added a sample application to access Blogger feeds, and post to blogger
feeds.
+ Known issues:
+<li>
+ recurrenceException is not fully tested
+<li>
+ authsubutil and gauthsubrequest are not fully tested Solved issues:
+<li>
+ .NET 2.0 seems to loose resources in some circumstances. Hard to reproduce.
+
-<h1>1.0.0</h1>
-<li>Initial Release
+ <h1>1.0.3</h1>
+<li>
+ Fixed the namespace creation for extensions, the wireformat should no
longer
+ create the namespace declaration when it's not required
+<li>
+ Fixed the reminder persistence code
+<li>
+ added a TimeZone property on the EventFeed to retrieve the timezone value
+<li>
+ added a FindEvent method on the EventFeed. This one takes an OriginalEvent
+ object, and returns the Event that this is based on. This will go to the
server
+ if required.
+<li>
+ Fixed recurrance issues in the extensions
+<li>
+ Moved EventFeed and EventEntry from the Google.GData.Extensions namespace
to the
+ Google.GData.Calendar namespace
+<li>
+ Fixed a bug in the parsing of Atom:Content elements. This could cause an
endless
+ loop when the content was empty.
+ <h1>1.0.2</h1>
+<li>
+ Fixed a problem persisting feedlink elements
+<li>
+ added an AllDay flag to the When class to allow parsing and persting of
all day
+ events
+<li>
+ cleaned up the persistence code in the extension classes
+<li>
+ fixed a problem that resulted in persisting multiple extensionn objects
instead
+ of one
+<li>
+ added a timestamp method to the Tracing class to help measuring
performance in
+ simple cases
+ <h1>1.0.1</h1>
+<li>
+ Correctly uses 'rel.previous' instead of 'rel.prev' as required by Atom
+ Publishing Protocol.
+<li>
+ Corrected the time-shift portion of the DateTime output for time zones
with a
+ negative shift from UTC.
+<li>
+ Corrected the time-shift to permit fractional hour shifts from UTC.
+<li>
+ Correctly output "startTime" and "endTime" as attributes of the "when"
extension
+ rather than child elements.
+<li>
+ Refactored class hierarchy, now based on IExtensionElement.
+ <h1>1.0.0</h1>
+<li>
+ Initial Release
Modified: trunk/clients/cs/src/core/atomfeedentry.cs
==============================================================================
--- trunk/clients/cs/src/core/atomfeedentry.cs (original)
+++ trunk/clients/cs/src/core/atomfeedentry.cs Thu Sep 6 01:35:18 2007
@@ -393,9 +393,37 @@
}
/////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////
+ /// <summary>accessor to find the alternate link, in HTML only
+ /// The method scans the link collection for a link that is of type
rel=alternate
+ /// and has a media type of HTML, otherwise it return NULL. The same
is true for setting this.
+ /// If you need to use a rel/alternate with a different media type,
you need
+ /// to use the links collection directly</summary>
+ /// <returns>the Uri as AtomUri to HTML representation</returns>
+ //////////////////////////////////////////////////////////////////////
+ public AtomUri Alternate
+ {
+ get
+ {
+ // scan the link collection
+ AtomLink link =
this.Links.FindService(BaseNameTable.ServiceAlternate, AtomLink.HTML_TYPE);
+ return link == null ? null : link.HRef;
+ }
+ set
+ {
+ AtomLink link =
this.Links.FindService(BaseNameTable.ServiceAlternate, AtomLink.HTML_TYPE);
+ if (link == null)
+ {
+ link = new AtomLink(AtomLink.ATOM_TYPE,
BaseNameTable.ServiceMedia);
+ this.Links.Add(link);
+ }
+ link.HRef = value;
+ }
+ }
+
/////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////
/// <summary>accessor method public DateTime UpdateDate</summary>
/// <returns> </returns>
//////////////////////////////////////////////////////////////////////
Modified: trunk/clients/cs/src/gspreadsheet/spreadsheetentry.cs
==============================================================================
--- trunk/clients/cs/src/gspreadsheet/spreadsheetentry.cs (original)
+++ trunk/clients/cs/src/gspreadsheet/spreadsheetentry.cs Thu Sep 6
01:35:18 2007
@@ -1,68 +1,56 @@
-/* Copyright (c) 2006 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-
-using System;
-using System.Xml;
-using System.IO;
-using System.Collections;
-using Google.GData.Client;
-using Google.GData.Extensions;
-
-namespace Google.GData.Spreadsheets
-{
- /// <summary>
- /// Entry API customization class for defining entries in a Spreadsheets
feed.
- /// </summary>
- public class SpreadsheetEntry : AbstractEntry
- {
- /// <summary>
- /// Category used to label entries that contain Cell extension data.
- /// </summary>
- public static AtomCategory SPREADSHEET_CATEGORY
- = new AtomCategory(GDataSpreadsheetsNameTable.Spreadsheet,
- new AtomUri(BaseNameTable.gKind));
-
- /// <summary>
- /// Constructs a new SpreadsheetEntry instance with the appropriate
category
- /// to indicate that it is a worksheet.
- /// </summary>
- public SpreadsheetEntry()
- : base()
- {
- Categories.Add(SPREADSHEET_CATEGORY);
- }
-
- /// <summary>
- /// Convenience method for getting the Link for the spreadsheet that
could be used
- /// for viewing the spreadsheet in the web browser.
- /// </summary>
- public AtomLink Link
- {
- get
- {
- return base.Links.FindService(BaseNameTable.ServiceAlternate,
null);
- }
- }
-
- /// <summary>
- /// Parses the inner state of the element. TODO.
- /// </summary>
- /// <param name="e">The extension element that should be added to this
entry</param>
- /// <param name="parser">The AtomFeedParser that called this</param>
- public override void Parse(ExtensionElementEventArgs e, AtomFeedParser
parser)
- {
- }
- }
-}
+/* Copyright (c) 2006 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+using System;
+using System.Xml;
+using System.IO;
+using System.Collections;
+using Google.GData.Client;
+using Google.GData.Extensions;
+
+namespace Google.GData.Spreadsheets
+{
+ /// <summary>
+ /// Entry API customization class for defining entries in a Spreadsheets
feed.
+ /// </summary>
+ public class SpreadsheetEntry : AbstractEntry
+ {
+ /// <summary>
+ /// Category used to label entries that contain Cell extension data.
+ /// </summary>
+ public static AtomCategory SPREADSHEET_CATEGORY
+ = new AtomCategory(GDataSpreadsheetsNameTable.Spreadsheet,
+ new AtomUri(BaseNameTable.gKind));
+
+ /// <summary>
+ /// Constructs a new SpreadsheetEntry instance with the appropriate
category
+ /// to indicate that it is a worksheet.
+ /// </summary>
+ public SpreadsheetEntry()
+ : base()
+ {
+ Categories.Add(SPREADSHEET_CATEGORY);
+ }
+
+ /// <summary>
+ /// Parses the inner state of the element. TODO.
+ /// </summary>
+ /// <param name="e">The extension element that should be added to this
entry</param>
+ /// <param name="parser">The AtomFeedParser that called this</param>
+ public override void Parse(ExtensionElementEventArgs e, AtomFeedParser
parser)
+ {
+ }
+ }
+}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Data API" 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/google-help-dataapi?hl=en
-~----------~----~----~----~------~----~------~--~---