Odd, I didn't before, but do now. I'll create a new patch and see if that
fixes things; I've been getting this error for a few patches now. Thanks for
the heads-up.

On Tue, Oct 27, 2009 at 6:46 PM, Chirag Shah <[email protected]> wrote:

> I'm not able to view the changes to
> BrowserSpecificFeatureResource.java. The review tool is displaying
> "error: old chunk mismatch."
> Do you see the same thing? http://codereview.appspot.com/143046/diff/1/36
>
> On Tue, Oct 27, 2009 at 5:59 PM,  <[email protected]> wrote:
> > Reviewers: shindig.remailer_gmail.com, jasvir, Jon Weygandt,
> >
> > Description:
> > The feature.xml and JS system has served us well, yet various new
> > requirements/requests have arisen that have stressed the current
> > implementation. Among them:
> > * Ability to cleanly represent "code" features and "JS" features in a
> > dependency tree w/ one another. This allows, for instance, a clean way
> > for "opensocial" to depend on "security-token" (not yet introduced),
> > which in turn depends on "locked-domain" to ensure token security.
> > * Ability to let a gadget opt out of all "core" JavaScript, instead only
> > including sub-components that are used, to shrink render size.
> > * Ability to serve JS in a context-sensitive fashion ie.
> > browser-specific code.
> > * Ability to serve JS in a feature-sensitive fashion ie. only inject
> > certain code when feature="caja" is enabled/active.
> > * Ability in development mode to easily serve JS that changes when edits
> > are made on it.
> >
> > For these and general code-cleanup purposes, I've rewritten the
> > Feature/JS inclusion implementation as presented in this CL.
> >
> > This implementation is functionally 100% backward-compatible with its
> > predecessor. It is only NOT backward-compatible with existing extensions
> > (outside of Shindig's code base) that override
> > JsFeatureLoader/GadgetFeatureRegistry.
> >
> > With this change, the unit of extension in the features system becomes
> > the <script ...> line in a feature.xml. The processor for this line is a
> > FeatureResourceLoader, for which a default implementation is provided.
> > Each <script> line yields a FeatureResource object, which is in turn
> > used to resolve content and debugContent by rendering/JS code.
> >
> > Other components are overridable/subclassable as well, but to date I've
> > yet to hear a JS/features extension use case that does not fit in the
> > ResourceLoader model (or, in the current model with dynamically
> > register()'ed features). Hopefully that's right.
> >
> > An overview of the implementation follows.
> >
> > FeatureRegistry
> > - Replaces GadgetFeatureRegistry and JsFeatureLoader
> > - Performs both register() and getFeaturesXXX() functions
> > - Does NOT implicitly include "core*" APIs anymore! These are included
> > in the dependency tree. @see GadgetSpec for more below.
> > - register(...)
> >  + Registers one or more features in the system, incorporating them
> > into the list of known features and building a validated dependency tree
> > with them. If a circular dependency exists, an error is thrown.
> >  + Method may be called at ANY time -- the registry is not
> > programmatically locked. This allows (though this use is not tested!)
> > for dynamic feature injection at some later point.
> > - getFeatureResources(...)
> >  + Queries the feature tree for resources matching the specified
> > context (GADGET || CONTAINER), which satisfy all the needed dependencies
> > given in the query. Optionally, fills in unknown/unsupported features
> > from the needed list.
> > - getFeatures(List<String>)
> >  + Returns feature strings in dependency order that satisfy the given
> > needed features.
> >
> > FeatureResourceLoader
> > - @Injected into FeatureRegistry, main extension point for feature
> > system.
> > - Loads a given FeatureResource from a feature.xml <script src="..."/>
> > line (inline features are handled by FeatureRegistry).
> > - Key API: load(URI, Map<String,String> attribs)
> >  + URI is pre-resolved to be absolute by FeatureParser (relative to
> > parent, if a relative URI in feature.xml)
> >  + "attribs" allows for arbitrary context-sensitive extensions. Example
> > to come soon: limiting by feature="..." to include Caja tamings.js
> > per-feature only when Caja is available.
> >
> > FeatureParser
> > - Mostly an implementation detail of FeatureRegistry for now
> > (package-private).
> > - Parses a String into an intermediary object for further processing.
> > - Resolves URIs of Resources relative to parent.
> >
> > GadgetSpec
> > - If no feature is explicitly <Optional> or <Require>'d starting with
> > "core", automatically inserts the "core" feature for backward
> > compatibility.
> > - No way (in this CL) to include "absolutely no core" yet.
> >
> > Gadget
> > - Modified how addFeature and removeFeature work. They now manage a
> > "directlyRequestedDeps" list, which in turn is used by
> > rendering/processing code for feature resolution.
> >
> > RenderingGadgetRewriter
> > - Update injectFeatureLibraries(...) to use new API.
> > - Hopefully more straightforward: obtain resources requested by the
> > gadget, and resources specified externally. Subtract latter from the
> > former and inline those. Extern the rest. No "core" assumptions, as
> > "core" will be included by the GadgetSpec if needed.
> >
> > Core features
> > - Break "core" into core.config, core.json, core.prefs et al.
> > - "core" now an aggregating feature that has no JS of its own but
> > includes all sub-libs.
> >
> > All other features
> > - Specific assignment of dependencies on core libs.
> >
> > Other
> > - feature.xml updates, pom.xml updates for separated core libs
> > - test updates across the board for all affected classes
> >
> >
> > Please review this at http://codereview.appspot.com/143046
> >
> > Affected files:
> >  features/pom.xml
> >  features/src/main/javascript/features/analytics/feature.xml
> >  features/src/main/javascript/features/auth-refresh/feature.xml
> >  features/src/main/javascript/features/core.auth/feature.xml
> >  features/src/main/javascript/features/core.config/feature.xml
> >  features/src/main/javascript/features/core.io/feature.xml
> >  features/src/main/javascript/features/core.json/feature.xml
> >  features/src/main/javascript/features/core.legacy/feature.xml
> >  features/src/main/javascript/features/core.log/feature.xml
> >  features/src/main/javascript/features/core.prefs/feature.xml
> >  features/src/main/javascript/features/core.util/feature.xml
> >  features/src/main/javascript/features/core/auth-init.js
> >  features/src/main/javascript/features/core/auth.js
> >  features/src/main/javascript/features/core/config.js
> >  features/src/main/javascript/features/core/core.js
> >  features/src/main/javascript/features/core/feature.xml
> >  features/src/main/javascript/features/core/json.js
> >  features/src/main/javascript/features/core/legacy.js
> >  features/src/main/javascript/features/core/log.js
> >  features/src/main/javascript/features/core/prefs.js
> >  features/src/main/javascript/features/core/util.js
> >  features/src/main/javascript/features/features.txt
> >  features/src/main/javascript/features/flash/feature.xml
> >  features/src/main/javascript/features/i18n/feature.xml
> >  features/src/main/javascript/features/opensocial-0.6/feature.xml
> >  features/src/main/javascript/features/opensocial-current/feature.xml
> >  features/src/main/javascript/features/opensocial-data/feature.xml
> >  features/src/main/javascript/features/opensocial-jsonrpc/feature.xml
> >  features/src/main/javascript/features/opensocial-reference/feature.xml
> >  features/src/main/javascript/features/osapi/feature.xml
> >  features/src/main/javascript/features/rpc/feature.xml
> >  features/src/main/javascript/features/setprefs/feature.xml
> >  features/src/main/javascript/features/skins/feature.xml
> >  features/src/main/javascript/features/views/feature.xml
> >  java/common/src/main/java/org/apache/shindig/common/Pair.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/BrowserSpecificRpcJsFeatureLoader.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultUrlGenerator.java
> >  java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java
> >  java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeature.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java
> >
>  java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java
> >  java/gadgets/src/main/java/org/apache/shindig/gadgets/JsLibrary.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/features/BrowserSpecificFeatureResource.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureParser.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureResource.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureResourceLoader.java
> >
>  java/gadgets/src/main/java/org/apache/shindig/gadgets/process/Processor.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriter.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
> >
>  java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
> >  java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java
> >
>  java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
> >  java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java
> >
>  
> java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/tags/FlashTagHandler.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/BrowserSpecificRpcJsFeatureLoaderTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultUrlGeneratorTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetFeatureRegistryTest.java
> >  java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/HashLockedDomainServiceTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/JsFeatureLoaderTest.java
> >  java/gadgets/src/test/java/org/apache/shindig/gadgets/JsLibraryTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/features/FeatureParserTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/features/FeatureRegistryTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/features/FeatureResourceLoaderTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataGadgetRewriterTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/TemplateRewriterTest.java
> >
>  
> java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/tags/FlashTagHandlerTest.java
> >
> >
> >
>

Reply via email to