public GadgetSpec getGadgetSpec(URI gadgetUri, bool ignoreCache) { Uri uri = Uri.fromJavaUri(gadgetUri); if (ignoreCache) { return FetchObjectAndCache(uri, ignoreCache); } GadgetSpec cached = HttpRuntime.Cache[gadgetUri.ToString()] as GadgetSpec; GadgetSpec spec; if (cached == null) { try { spec = FetchObjectAndCache(uri, ignoreCache); } catch (GadgetException e) { // We create this dummy spec to avoid the cost of re-parsing when a remote site is out. spec = new GadgetSpec(uri, ERROR_SPEC); spec.setAttribute(ERROR_KEY, e); HttpRuntime.Cache.Insert(uri.ToString(), spec, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(ERROR_DELAY)); } } else { spec = cached; } GadgetException exception = (GadgetException)spec.getAttribute(ERROR_KEY); if (exception != null) { throw exception; } return spec; }
public ContentRewriterFeature get(GadgetSpec spec) { ContentRewriterFeature rewriterFeature = (ContentRewriterFeature)spec.getAttribute("content-rewriter"); if (rewriterFeature != null) return rewriterFeature; rewriterFeature = new ContentRewriterFeature(spec, includeUrls, excludeUrls, expires, includeTags); spec.setAttribute("content-rewriter", rewriterFeature); return rewriterFeature; }