/** {@inheritDoc} */ public void contribute(Map<String, Object> config, Gadget gadget) { // Add gadgets.util support. This is calculated dynamically based on request inputs. ModulePrefs prefs = gadget.getSpec().getModulePrefs(); Collection<Feature> features = prefs.getFeatures().values(); Map<String, Map<String, Object>> featureMap = Maps.newHashMapWithExpectedSize(features.size()); Set<String> allFeatureNames = registry.getAllFeatureNames(); for (Feature feature : features) { // Skip unregistered features if (!allFeatureNames.contains(feature.getName())) { continue; } // Flatten out the multimap a bit for backwards compatibility: map keys // with just 1 value into the string, treat others as arrays Map<String, Object> paramFeaturesInConfig = Maps.newHashMap(); for (String paramName : feature.getParams().keySet()) { Collection<String> paramValues = feature.getParams().get(paramName); if (paramValues.size() == 1) { paramFeaturesInConfig.put(paramName, paramValues.iterator().next()); } else { paramFeaturesInConfig.put(paramName, paramValues); } } featureMap.put(feature.getName(), paramFeaturesInConfig); } config.put("core.util", featureMap); }
/** {@inheritDoc} */ public void contribute(Map<String, Object> config, Gadget gadget) { // Add gadgets.util support. This is calculated dynamically based on request inputs. ModulePrefs prefs = gadget.getSpec().getModulePrefs(); Collection<Feature> features = prefs.getFeatures().values(); Map<String, Map<String, Object>> featureMap = Maps.newHashMapWithExpectedSize(features.size()); Set<String> allFeatureNames = registry.getAllFeatureNames(); for (Feature feature : features) { // Skip unregistered features if (!allFeatureNames.contains(feature.getName())) { continue; } // Flatten out the multimap a bit for backwards compatibility: map keys // with just 1 value into the string, treat others as arrays Map<String, Object> paramFeaturesInConfig = Maps.newHashMap(); for (String paramName : feature.getParams().keySet()) { Collection<String> paramValues = feature.getParams().get(paramName); if (paramValues.size() == 1) { paramFeaturesInConfig.put(paramName, paramValues.iterator().next()); } else { paramFeaturesInConfig.put(paramName, paramValues); } } featureMap.put(feature.getName(), paramFeaturesInConfig); } config.put("core.util", featureMap); }
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; }
Set<String> allFeatureNames = registry.getAllFeatureNames();
@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); }
@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); }
private void expectFeatureCalls(Gadget gadget, List<FeatureResource> gadgetResources, Set<String> externLibs, List<FeatureResource> externResources) { reset(featureRegistry); GadgetContext gadgetContext = gadget.getContext(); List<String> gadgetFeatures = Lists.newArrayList(gadget.getDirectFeatureDeps()); List<String> allFeatures = Lists.newArrayList(gadgetFeatures); List<String> allFeaturesAndLibs = Lists.newArrayList(gadgetFeatures); allFeaturesAndLibs.addAll(externLibs); List<String> emptyList = Lists.newArrayList(); expect(featureRegistry.getFeatureResources(same(gadgetContext), eq(externLibs), eq(emptyList))) .andReturn(externResources); expect(featureRegistry.getFeatureResources(same(gadgetContext), eq(gadgetFeatures), eq(emptyList))) .andReturn(gadgetResources); expect(featureRegistry.getFeatures(eq(allFeatures))) .andReturn(allFeatures); expect(featureRegistry.getFeatures(eq(allFeaturesAndLibs))) .andReturn(allFeaturesAndLibs); // Add CoreUtilConfigContributor behavior expect(featureRegistry.getAllFeatureNames()). andReturn(ImmutableSet.of("foo", "foo2", "core.util")).anyTimes(); replay(featureRegistry); }
expect(featureRegistry.getAllFeatureNames()). andReturn(ImmutableSet.of("foo", "foo2", "core.util")).anyTimes(); replay(featureRegistry);
expect(featureRegistry.getAllFeatureNames()). andReturn(ImmutableSet.of("foo", "foo2", "core.util")).anyTimes(); replay(featureRegistry);