@Test public void testCapabilityContext() throws Exception { EhcacheStatisticsProvider ehcacheStatisticsProvider = new EhcacheStatisticsProvider(cmConfig_0, statisticsService, timeSource) { @Override protected ExposedCacheBinding wrap(CacheBinding cacheBinding) { return mock(StandardEhcacheStatistics.class); } }; ehcacheStatisticsProvider.register(new CacheBinding("cache-0", mock(Ehcache.class))); CapabilityContext capabilityContext = ehcacheStatisticsProvider.getCapabilityContext(); assertThat(capabilityContext.getAttributes().size(), is(2)); Iterator<CapabilityContext.Attribute> iterator = capabilityContext.getAttributes().iterator(); CapabilityContext.Attribute next = iterator.next(); assertThat(next.getName(), equalTo("cacheManagerName")); assertThat(next.isRequired(), is(true)); next = iterator.next(); assertThat(next.getName(), equalTo("cacheName")); assertThat(next.isRequired(), is(true)); }
@Override public int hashCode() { int result = name.hashCode(); result = 31 * result + descriptors.hashCode(); result = 31 * result + capabilityContext.hashCode(); return result; }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ActionsCapability that = (ActionsCapability) o; if (!name.equals(that.name)) return false; if (!descriptors.equals(that.descriptors)) return false; return capabilityContext.equals(that.capabilityContext); }
public Collection<Context> getAllCapabilityContexts(String capabilityName) { Context thisContext = getContext(); Capability capability = capabilities.get(capabilityName); if (capability == null) { throw new IllegalArgumentException(capabilityName); } // get all attributes to make this capability works Collection<String> requiredAttributesNames = capability.getCapabilityContext().getRequiredAttributeNames(); boolean addMainCtx = requiredAttributesNames.contains(contextContainer.getName()); Collection<Context> contexts = new ArrayList<>(contextContainer.getSubContexts().size()); for (ContextContainer subCtx : contextContainer.getSubContexts()) { if (requiredAttributesNames.contains(subCtx.getName())) { Context ctx = thisContext.with(subCtx.getName(), subCtx.getValue()); if (addMainCtx) { ctx = ctx.with(contextContainer.getName(), contextContainer.getValue()); } contexts.add(ctx); } } return contexts; }
@Override public int hashCode() { int result = name.hashCode(); result = 31 * result + properties.hashCode(); result = 31 * result + descriptors.hashCode(); result = 31 * result + capabilityContext.hashCode(); return result; }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; StatisticsCapability that = (StatisticsCapability) o; if (!name.equals(that.name)) return false; if (!properties.equals(that.properties)) return false; if (!descriptors.equals(that.descriptors)) return false; return capabilityContext.equals(that.capabilityContext); }
@Test public void testCapabilityContext() throws Exception { EhcacheActionProvider ehcacheActionProvider = new EhcacheActionProvider(cmConfig); ehcacheActionProvider.register(new CacheBinding("myCacheName1", mock(Ehcache.class))); ehcacheActionProvider.register(new CacheBinding("myCacheName2", mock(Ehcache.class))); CapabilityContext capabilityContext = ehcacheActionProvider.getCapabilityContext(); assertThat(capabilityContext.getAttributes().size(), is(2)); Iterator<CapabilityContext.Attribute> iterator = capabilityContext.getAttributes().iterator(); CapabilityContext.Attribute next = iterator.next(); assertThat(next.getName(), equalTo("cacheManagerName")); assertThat(next.isRequired(), is(true)); next = iterator.next(); assertThat(next.getName(), equalTo("cacheName")); assertThat(next.isRequired(), is(true)); }
@Test public void testCanGetCapabilities() { CacheConfiguration<Long, String> cacheConfiguration = CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class, heap(10)) .add(new StoreStatisticsConfiguration(true)) .build(); ManagementRegistryService managementRegistry = new DefaultManagementRegistryService(new DefaultManagementRegistryConfiguration().setCacheManagerAlias("myCM")); try(CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder() .withCache("aCache", cacheConfiguration) .using(managementRegistry) .build(true)) { assertThat(managementRegistry.getCapabilities()).hasSize(4); List<Capability> capabilities = new ArrayList<>(managementRegistry.getCapabilities()); assertThat(capabilities.get(0).getName()).isEqualTo("ActionsCapability"); assertThat(capabilities.get(1).getName()).isEqualTo("SettingsCapability"); assertThat(capabilities.get(2).getName()).isEqualTo("StatisticCollectorCapability"); assertThat(capabilities.get(3).getName()).isEqualTo("StatisticsCapability"); assertThat(capabilities.get(0).getDescriptors()).hasSize(4); assertThat(capabilities.get(3).getDescriptors()).hasSize(ONHEAP_DESCRIPTORS.size() + CACHE_DESCRIPTORS.size()); assertThat(capabilities.get(0).getCapabilityContext().getAttributes()).hasSize(2); assertThat(capabilities.get(3).getCapabilityContext().getAttributes()).hasSize(2); } }
Assert.assertThat(capabilityDescriptions.isEmpty(), Matchers.is(false)); CapabilityContext capabilityContext = capability.getCapabilityContext(); Collection<CapabilityContext.Attribute> attributes = capabilityContext.getAttributes(); // <4> Assert.assertThat(attributes.size(), Matchers.is(2)); Iterator<CapabilityContext.Attribute> iterator = attributes.iterator();
private static Map<String, Object> toMap(Capability capability) { Map<String, Object> map = new LinkedHashMap<>(); map.put("name", capability.getName()); map.put("context", capability.getCapabilityContext().getAttributes().stream().map(Manageable::toMap).collect(Collectors.toList())); List<Map<String, Object>> descriptorList = new ArrayList<>(capability.getDescriptors().size()); map.put("descriptors", descriptorList); for (Descriptor o : capability.getDescriptors()) { if (o instanceof CallDescriptor) { descriptorList.add(toMap((CallDescriptor) o)); } else if (o instanceof StatisticDescriptor) { descriptorList.add(toMap((StatisticDescriptor) o)); } else if (o instanceof StatisticDescriptorCategory) { descriptorList.add(toMap((StatisticDescriptorCategory) o)); } else { throw new UnsupportedOperationException(o.getClass().getName()); } } if (capability instanceof StatisticsCapability) { map.put("properties", toMap(((StatisticsCapability) capability).getProperties())); } return map; }