private String getFeatures(JsUri jsUri) { FeatureRegistry registry = null; String repository = jsUri.getRepository(); try { registry = featureRegistryProvider.get(repository); } catch (GadgetException e) { if (LOG.isLoggable(Level.WARNING)) { LOG.log(Level.WARNING, "No registry found for repository: " + repository, e); } } if (registry != null) { List<String> features = registry.getFeatures(jsUri.getLibs()); Set<String> encoded = Sets.newTreeSet(); for (String feature : features) { encoded.add('\'' + StringEscapeUtils.escapeEcmaScript(feature) + '\''); } return StringUtils.join(encoded, ","); } return ""; } }
public boolean process(JsRequest jsRequest, JsResponseBuilder builder) throws JsException { JsUri jsUri = jsRequest.getJsUri(); FeatureRegistry registry = null; String repository = jsUri.getRepository(); try { registry = featureRegistryProvider.get(jsUri.getRepository()); } catch (GadgetException e) { if (LOG.isLoggable(Level.WARNING)) { LOG.log(Level.WARNING, "No registry found for repository: " + repository, e); } } if (registry != null && !jsUri.isNohint()) { Set<String> allfeatures = registry.getAllFeatureNames(); Set<String> libs = Sets.newTreeSet(); libs.addAll(jsUri.getLibs()); libs.removeAll(jsUri.getLoadedLibs()); libs.retainAll(allfeatures); String array = toArrayString(libs); builder.appendJs(String.format(TEMPLATE, array), CODE_ID, true); } return true; }
private JsResponseBuilder prepareRequestReturnBuilder(RenderingContext ctx) { expect(jsUri.getContext()).andReturn(ctx); expect(jsUri.getContainer()).andReturn(CONTAINER); expect(jsUri.isDebug()).andReturn(false); expect(jsUri.getRepository()).andReturn(null); expect(request.getJsUri()).andReturn(jsUri); return new JsResponseBuilder().appendJs(BASE_CODE, "source"); }
if (ctx.getRepository() != null) { uri.addQueryParameter(Param.REPOSITORY_ID.getKey(), ctx.getRepository());
registry = registryProvider.get(jsUri.getRepository()); } catch (GadgetException e) { throw new JsException(e.getHttpStatusCode(), e.getMessage());
public boolean process(JsRequest request, JsResponseBuilder builder) throws JsException { JsUri jsUri = request.getJsUri(); GadgetContext ctx = new JsGadgetContext(jsUri); FeatureRegistry registry; try { registry = registryProvider.get(jsUri.getRepository()); } catch (GadgetException e) { throw new JsException(e.getHttpStatusCode(), e.getMessage()); } // Append gadgets.config initialization if not in standard gadget mode. if (ctx.getRenderingContext() != RenderingContext.GADGET) { List<String> allReq = registry.getFeatures(jsUri.getLibs()); Collection<String> loaded = jsUri.getLoadedLibs(); // Only inject config for features not already present and configured. List<String> newReq = subtractCollection(allReq, loaded); Map<String, Object> config = configProcessor.getConfig( ctx.getContainer(), newReq, request.getHost(), null); if (!config.isEmpty()) { String configJson = JsonSerializer.serialize(config); if (allReq.contains(CONFIG_FEATURE) || loaded.contains(CONFIG_FEATURE)) { // config lib is present: pass it data injectBaseConfig(configJson, builder); } else { // config lib not available: use global variable injectGlobalConfig(configJson, builder); } } } return true; }
private JsUri mockGadgetContext(boolean nocache, boolean debug, List<String> extern, List<String> loaded, boolean isContainer, Map<String, String> params, JsCompileMode compileMode, String repository) { JsUri context = createMock(JsUri.class); expect(context.getContainer()).andStubReturn(CONTAINER); expect(context.isNoCache()).andStubReturn(nocache); expect(context.isDebug()).andStubReturn(debug); expect(context.getGadget()).andStubReturn(GADGET_URI); expect(context.getContext()).andStubReturn( isContainer ? RenderingContext.CONTAINER : RenderingContext.GADGET); expect(context.getLibs()).andStubReturn(extern); expect(context.getLoadedLibs()).andStubReturn( loaded == null ? ImmutableList.<String>of() : loaded); expect(context.getOnload()).andStubReturn(null); expect(context.isJsload()).andStubReturn(false); expect(context.isNohint()).andStubReturn(false); expect(context.getExtensionParams()).andStubReturn(params); expect(context.getOrigUri()).andStubReturn(null); expect(context.getCompileMode()).andStubReturn(compileMode); expect(context.cajoleContent()).andStubReturn(false); expect(context.getRepository()).andStubReturn(repository); replay(context); return context; }
private JsUri mockGadgetContext(boolean nocache, boolean debug, List<String> extern, List<String> loaded, boolean isContainer, Map<String, String> params, JsCompileMode compileMode, String repository) { JsUri context = createMock(JsUri.class); expect(context.getContainer()).andStubReturn(CONTAINER); expect(context.isNoCache()).andStubReturn(nocache); expect(context.isDebug()).andStubReturn(debug); expect(context.getGadget()).andStubReturn(GADGET_URI); expect(context.getContext()).andStubReturn( isContainer ? RenderingContext.CONTAINER : RenderingContext.GADGET); expect(context.getLibs()).andStubReturn(extern); expect(context.getLoadedLibs()).andStubReturn( loaded == null ? ImmutableList.<String>of() : loaded); expect(context.getOnload()).andStubReturn(null); expect(context.isJsload()).andStubReturn(false); expect(context.isNohint()).andStubReturn(false); expect(context.getExtensionParams()).andStubReturn(params); expect(context.getOrigUri()).andStubReturn(null); expect(context.getCompileMode()).andStubReturn(compileMode); expect(context.cajoleContent()).andStubReturn(false); expect(context.getRepository()).andStubReturn(repository); replay(context); return context; }
private JsUri mockJsUri(boolean debug) { JsUri result = createMock(JsUri.class); expect(result.isDebug()).andReturn(debug).anyTimes(); expect(result.getCompileMode()).andReturn(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL).anyTimes(); expect(result.getStatus()).andReturn(UriStatus.VALID_UNVERSIONED).anyTimes(); expect(result.getContainer()).andReturn("container").anyTimes(); expect(result.getContext()).andReturn(RenderingContext.CONFIGURED_GADGET).anyTimes(); expect(result.getRefresh()).andReturn(1000).anyTimes(); expect(result.isNoCache()).andReturn(false).anyTimes(); expect(result.getGadget()).andReturn("http://foo.com/g.xml").anyTimes(); expect(result.getLibs()).andReturn(ImmutableList.<String>of()).anyTimes(); expect(result.getLoadedLibs()).andReturn(ImmutableList.<String>of()).anyTimes(); expect(result.getOnload()).andReturn("foo").anyTimes(); expect(result.isJsload()).andReturn(true).anyTimes(); expect(result.isNohint()).andReturn(true).anyTimes(); expect(result.getOrigUri()).andReturn(null).anyTimes(); expect(result.getRepository()).andReturn(null).anyTimes(); expect(result.getExtensionParams()).andReturn(null).anyTimes(); replay(result); return result; }
private JsUri mockJsUri(boolean debug) { JsUri result = createMock(JsUri.class); expect(result.isDebug()).andReturn(debug).anyTimes(); expect(result.getCompileMode()).andReturn(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL).anyTimes(); expect(result.getStatus()).andReturn(UriStatus.VALID_UNVERSIONED).anyTimes(); expect(result.getContainer()).andReturn("container").anyTimes(); expect(result.getContext()).andReturn(RenderingContext.CONFIGURED_GADGET).anyTimes(); expect(result.getRefresh()).andReturn(1000).anyTimes(); expect(result.isNoCache()).andReturn(false).anyTimes(); expect(result.getGadget()).andReturn("http://foo.com/g.xml").anyTimes(); expect(result.getLibs()).andReturn(ImmutableList.<String>of()).anyTimes(); expect(result.getLoadedLibs()).andReturn(ImmutableList.<String>of()).anyTimes(); expect(result.getOnload()).andReturn("foo").anyTimes(); expect(result.isJsload()).andReturn(true).anyTimes(); expect(result.isNohint()).andReturn(true).anyTimes(); expect(result.getOrigUri()).andReturn(null).anyTimes(); expect(result.getRepository()).andReturn(null).anyTimes(); expect(result.getExtensionParams()).andReturn(null).anyTimes(); replay(result); return result; }
public JsUri(UriStatus status, JsUri origJsUri) { super(status, origJsUri.getRefresh(), origJsUri.isDebug(), origJsUri.isNoCache(), origJsUri.getContainer(), origJsUri.getGadget()); this.setCajoleContent(origJsUri.cajoleContent()); this.libs = origJsUri.getLibs(); this.loadedLibs = origJsUri.getLoadedLibs(); this.onload = origJsUri.getOnload(); this.jsload = origJsUri.isJsload(); this.nohint = origJsUri.isNohint(); this.compileMode = origJsUri.getCompileMode(); this.context = origJsUri.getContext(); this.origUri = origJsUri.getOrigUri(); this.repository = origJsUri.getRepository(); this.extensionParams = origJsUri.getExtensionParams(); }
/** * Get the JS content for a request (JsUri) */ protected String getFeaturesContent(JsUri jsUri) throws GadgetException { // Inject js content, fetched from JsPipeline JsRequest jsRequest = new JsRequestBuilder(jsUriManager, featureRegistryProvider.get(jsUri.getRepository())).build(jsUri, null); JsResponse jsResponse; try { jsResponse = jsServingPipeline.execute(jsRequest); } catch (JsException e) { throw new GadgetException(Code.JS_PROCESSING_ERROR, e, e.getStatusCode()); } return jsResponse.toJsString(); }
@Before public void setUp() { control = createControl(); registry = control.createMock(FeatureRegistry.class); compiler = control.createMock(JsCompiler.class); jsUri = control.createMock(JsUri.class); expect(jsUri.getRepository()).andStubReturn(null); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new GetJsContentProcessor(new DefaultFeatureRegistryProvider(registry), compiler); processor.setVersionedMaxAge(GetJsContentProcessor.DEFAULT_VERSIONED_MAXAGE); processor.setUnversionedMaxAge(GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE); processor.setInvalidMaxAge(GetJsContentProcessor.DEFAULT_INVALID_MAXAGE); }
@Before public void setUp() { control = createControl(); registry = control.createMock(FeatureRegistry.class); compiler = control.createMock(JsCompiler.class); jsUri = control.createMock(JsUri.class); expect(jsUri.getRepository()).andStubReturn(null); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new GetJsContentProcessor(new DefaultFeatureRegistryProvider(registry), compiler); processor.setVersionedMaxAge(GetJsContentProcessor.DEFAULT_VERSIONED_MAXAGE); processor.setUnversionedMaxAge(GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE); processor.setInvalidMaxAge(GetJsContentProcessor.DEFAULT_INVALID_MAXAGE); }
protected final FeatureRegistry getFeatureRegistry(JsUri jsUri) throws JsException { try { return featureRegistryProvider.get(jsUri.getRepository()); } catch (GadgetException e) { throw new JsException(e.getHttpStatusCode(), e.getMessage()); } }
private JsUri mockJsUri(JsCompileMode mode, boolean isJsload) { JsUri result = createMock(JsUri.class); expect(result.getCompileMode()).andStubReturn(mode); expect(result.getRepository()).andStubReturn(null); expect(result.isJsload()).andReturn(isJsload).anyTimes(); replay(result); return result; }
private JsResponseBuilder prepareRequestReturnBuilder(RenderingContext ctx) { expect(jsUri.getContext()).andReturn(ctx); expect(jsUri.getContainer()).andReturn(CONTAINER); expect(jsUri.isDebug()).andReturn(false); expect(jsUri.getRepository()).andReturn(null); expect(request.getJsUri()).andReturn(jsUri); return new JsResponseBuilder().appendJs(BASE_CODE, "source"); }
private JsUri mockJsUri(JsCompileMode mode, boolean isJsload) { JsUri result = createMock(JsUri.class); expect(result.getCompileMode()).andStubReturn(mode); expect(result.getRepository()).andStubReturn(null); expect(result.isJsload()).andReturn(isJsload).anyTimes(); replay(result); return result; }
private JsUri mockJsUri(JsCompileMode mode, boolean isJsload, List<String> libs) { JsUri result = createMock(JsUri.class); expect(result.getCompileMode()).andStubReturn(mode); expect(result.getRepository()).andStubReturn(null); expect(result.isJsload()).andReturn(isJsload).anyTimes(); expect(result.getLibs()).andReturn(libs).anyTimes(); expect(result.getLoadedLibs()).andReturn(LOADED).anyTimes(); replay(result); return result; }
private JsUri mockJsUri(JsCompileMode mode, boolean isJsload, List<String> libs) { JsUri result = createMock(JsUri.class); expect(result.getCompileMode()).andStubReturn(mode); expect(result.getRepository()).andStubReturn(null); expect(result.isJsload()).andReturn(isJsload).anyTimes(); expect(result.getLibs()).andReturn(libs).anyTimes(); expect(result.getLoadedLibs()).andReturn(LOADED).anyTimes(); replay(result); return result; }