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 ""; } }
protected final FeatureRegistry getFeatureRegistry(JsUri jsUri) throws JsException { try { return featureRegistryProvider.get(jsUri.getRepository()); } catch (GadgetException e) { throw new JsException(e.getHttpStatusCode(), e.getMessage()); } }
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; }
FeatureRegistry featureRegistry = featureRegistryProvider.get(repository);
@Before public void setUp() throws GadgetException { control = EasyMock.createControl(); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new AddJslLoadedVariableProcessor(fregProvider); EasyMock.reset(fregProvider, freg); EasyMock.expect(fregProvider.get(EasyMock.anyObject(String.class))).andReturn(freg).anyTimes(); Set<String> required = Sets.newHashSet(REQ_LIBS); EasyMock.expect(freg.getAllFeatureNames()).andReturn(required).anyTimes(); EasyMock.replay(fregProvider, freg); }
/** * Gets the set of allowed RPC service ids. * * @param gadget * the gadget to get the service ids for. * @return the set of allowed RPC service ids. */ private Set<String> getRpcServiceIds(Gadget gadget) { GadgetContext context = gadget.getContext(); Set<String> rpcEndpoints = Sets.newHashSet(gadgetAdminStore.getAdditionalRpcServiceIds(gadget)); List<Feature> modulePrefFeatures = gadget.getSpec().getModulePrefs().getAllFeatures(); List<String> featureNames = Lists.newArrayList(); for(Feature feature : modulePrefFeatures) { if(gadgetAdminStore.isAllowedFeature(feature, gadget)) { featureNames.add(feature.getName()); } } try { FeatureRegistry featureRegistry = featureRegistryProvider.get(context.getRepository()); LookupResult result = featureRegistry.getFeatureResources(context, featureRegistry.getFeatures(featureNames), null); List<FeatureBundle> bundles = result.getBundles(); for (FeatureBundle bundle : bundles) { rpcEndpoints.addAll(bundle.getApis(ApiDirective.Type.RPC, false)); } } catch (GadgetException e) { LOG.log(Level.WARNING, "Error getting features from feature registry", e); } return rpcEndpoints; }
@Before public void setUp() throws GadgetException { control = EasyMock.createControl(); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new AddJslLoadedVariableProcessor(fregProvider); EasyMock.reset(fregProvider, freg); EasyMock.expect(fregProvider.get(EasyMock.anyObject(String.class))).andReturn(freg).anyTimes(); Set<String> required = Sets.newHashSet(REQ_LIBS); EasyMock.expect(freg.getAllFeatureNames()).andReturn(required).anyTimes(); EasyMock.replay(fregProvider, freg); }
/** * 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(); }
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; }
@Before public void setUp() throws GadgetException { control = EasyMock.createControl(); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new AddJslInfoVariableProcessor(fregProvider); EasyMock.reset(fregProvider, freg); EasyMock.expect(fregProvider.get(EasyMock.anyObject(String.class))).andReturn(freg).anyTimes(); Capture<List<String>> features = new Capture<List<String>>(); EasyMock.expect(freg.getFeatures(EasyMock.capture(features))).andAnswer(new IAnswer<List<String>>() { public List<String> answer() throws Throwable { return LIBS; } }); EasyMock.replay(fregProvider, freg); }
@Before public void setUp() throws GadgetException { control = EasyMock.createControl(); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new AddJslInfoVariableProcessor(fregProvider); EasyMock.reset(fregProvider, freg); EasyMock.expect(fregProvider.get(EasyMock.anyObject(String.class))).andReturn(freg).anyTimes(); Capture<List<String>> features = new Capture<List<String>>(); EasyMock.expect(freg.getFeatures(EasyMock.capture(features))).andAnswer(new IAnswer<List<String>>() { public List<String> answer() throws Throwable { return LIBS; } }); EasyMock.replay(fregProvider, freg); }
FeatureRegistry featureRegistry = featureRegistryProvider.get(context.getRepository()); if (!hasGadgetAdminData(container, gadgetUrl)) { return false;
registry = registryProvider.get(jsUri.getRepository()); } catch (GadgetException e) { throw new JsException(e.getHttpStatusCode(), e.getMessage());
featureRegistry = featureRegistryProvider.get(context.getRepository()); } catch (GadgetException e) { throw new ProcessingException(e.getMessage(), e, e.getHttpStatusCode());