https://github.com/react-epfl/shindig-react
Raw File
Tip revision: d87b33dfb472e5c6f7ad34dfaf3586ea827b46d8 authored by Ryan Baxter on 23 October 2012, 01:54:11 UTC
[maven-release-plugin] copy for tag shindig-project-2.5.0-beta5
Tip revision: d87b33d
UPGRADING
FROM 2.0.x TO 2.5.x
===================

== API changes ==

The JavaScript GagdetSite.getActiveGadgetHolder has been changed to GagdetSite.getActiveSiteHolder

== container.js config changes ==

* The "gadgets.securityTokenKeyFile" property has been replaced with "gadgets.securityTokenKey".
The new property allows for embedding the key directly or referencing a classpath or filesystem
resource.  Please see the comments at the top of container.js and around the new property for more
details.

== Java Dependency Changes ==

* caja r4884 -> r5054
* closure-compiler (new) r1918
* commons-codec 1.5 -> 1.6
* commons-lang to commons-lang3 3.1
* ehcache  2.3.2 -> 2.5.2
* guava r09->11.0.1
* guice 2.0->3.0
* htmlunit 2.8->2.9 
* nekohtml 1.9.14->1.9.15
* slf4j 1.5.11->1.6.1
* xstream 1.3.1->1.4.2

FROM 1.0.x TO 2.0.x
===================

Almost all interfaces have been updated from 1.0.x -> 2.0.x.  The 
following information is not complete.


== container.js config changes ==

* gadgets.parentOrigins: Default ["*"] (NEW)

An array of valid origin domains for the container.

* Endpoint Changes for rpc

The default RPC endpoints used for json-rpc were moved from /gadgets/api/rpc and /social/rpc to just /rpc

* css for tabs/minimessage is now included in container.js

* System properties shindig.host/jetty.host and shindig.port/jetty.port are injected as SERVER_HOST/SERVER_PORT

== Java Dependency Changes ==

Too many to mention.  Check the top-level pom.xml for all the new versions.
Here are some highlights:

* slf4j dependencies are needed if you use the EhCache module See http://www.slf4j.org/manual.html
* guava replaces google-collections
* caja r3034 -> r4209
* guice 1.0->2.0
* guice-multibindings (NEW)
* nekohtml 1.9.9 -> 1.9.13
* oauth-* 20080621 -> 20100527 (and others)
* rome 0.9 -> 1.0
* rome-modules 0.3.2 (NEW)
* servlet-api 2.4->2.5
* ehcache 1.5 -> 1.6.2
* xstream 1.2 -> 1.3.1
* xpp3 1.1.3.3 -> 1.1.4c
* commons-codec 1.3 -> 1.4

== Java Interface Changes ==

* AbstractContainerConfig

Changed signature on getMap() and getList() to use Java
generics.

* SecurityToken

New methods: getExpiresAt() and isExpired() are now required.  A new AbstractSecurityToken
base class is available.

* SecurityTokenDecoder 

The interface and implementation are replaced
with the new SecurityTokenCodec interface and implementations.

You will need to adjust any custom SecurityToken decoders to 
encode tokens as well as decode them.

* SocialSpiException class is removed, use ProtocolException instead

* GuiceBeanConverter.DuplicateFieldException class is removed 

* RestfulCollection

The constructor RestfulCollection(List<T> entry, int startIndex, int totalResults) is removed.  
Use the constructor with an items-per-page parameter instead.

* RequestRewriter, ImageRewriter -> ResponseRewriter

ResponseRewriter is replacing RequestRewriter and ImageRewriter. Its interface method is:
void rewrite(HttpRequest req, HttpResponseBuilder builder);

HttpResponseBuilder extends MutableContent. RequestRewriters may be migrated by
mutating builder rather than the previously-passed MutableContent. There is no
provision for reading "original" HttpResponse headers.

ImageRewriters may be migrated to ResponseRewriters as well by mutating the builder,
where previously a new HttpResponse was returned.

* UrlManager -> IframeUriManager, JsUriManager, OAuthUriManager

The UrlManager interface has been removed. In its place are IframeUriManager, JsUriManager, and OAuthUriManager,
producing Uris (equivalent to previous Strings). This change is done to better encapsulate Uri logic, putting
creation and processing logic in the same place.

@see (now-removed) shim class
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/GlueUrlGenerator.java?revision=906688&view=markup

...for a schematic on how the previous methods map to new versions. This class was a bridge between the new
and old interfaces.

Default implementations of each UriManager class are provided in org.apache.shindig.gadgets.uri, each
named DefaultX, where X = interface. These classes are suitable for subclassing to extend, should you prefer.
Note that the ContainerConfig values the default implementations use are different (mostly by name/key)
than those DefaultUrlGenerator used. Specific values are documented in the class comment and statics
for each impl.

* MediaItem

Location field changed from String to Address.

== Java Guice Changes ==

2.0.x uses Guice 2.0 which allows for @Provides annotations and much more.

* TemplateModule

If you had previously customized the Set of TagHandlers you'll need to start
using Guice Multibindings instead.  This is much easier than subclassing the
Guice module.  Here's what you would add to your local module to add a new 
Tag handler.

  Multibinder.newSetBinder(binder(), TagHandler.class).addBinding().to(MyCustomTagHandler.class);

* SocialApiGuiceModule, DefaultGuiceModule

Configuring a new Rest/RPC handler now uses Multibindings.  Adding a new binding
is easy, just use the following syntax:

    Multibinder.newSetBinder(binder(), Object.class, Names.named("org.apache.shindig.handlers"))
        .addBinding().toInstance(MyHandler.class);

The long value annotated with the name "org.apache.shindig.serviceExpirationDurationMinutes" has
been moved to shindig/common/conf/shindig.properties.  Guice 2.0 can inject Long values from Strings
automatically.

The Executor.class injection is removed.  Use ExecutorService.class injection instead.


* Rename SecurityTokenDecoder to SecurityTokenCodec

This class is renamed to provide a single place to capture both encoding and decoding work
for gadget security tokens. This also affects classes previously implementing SecurityTokenDecoder
and previously extending DefaultSecurityTokenDecoder.

== PHP Changes ==

TBD

back to top