test_class.declarator: factory
test_class.modifier: private
test_class.original_string: private AbstractDynamicConfigurationFactory factory;
test_class.type: AbstractDynamicConfigurationFactory
test_class.var_name: factory
test_class.file: dubbo-common/src/test/java/org/apache/dubbo/common/config/configcenter/AbstractDynamicConfigurationFactoryTest.java
test_class.identifier: AbstractDynamicConfigurationFactoryTest
test_case.body: @Test
      public void testGetDynamicConfiguration() {
          URL url = URL.valueOf("nop://127.0.0.1");
          assertEquals(factory.getDynamicConfiguration(url), factory.getDynamicConfiguration(url));
      }
test_case.class_method_signature: AbstractDynamicConfigurationFactoryTest.testGetDynamicConfiguration()
test_case.full_signature: @Test public void testGetDynamicConfiguration()
test_case.identifier: testGetDynamicConfiguration
test_case.invocations: valueOf assertEquals getDynamicConfiguration getDynamicConfiguration
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetDynamicConfiguration()
focal_class.declarator: dynamicConfigurations = new ConcurrentHashMap<>()
focal_class.modifier: private volatile
focal_class.original_string: private volatile Map<String, DynamicConfiguration> dynamicConfigurations = new ConcurrentHashMap<>();
focal_class.type: Map<String, DynamicConfiguration>
focal_class.var_name: dynamicConfigurations
focal_class.file: dubbo-common/src/main/java/org/apache/dubbo/common/config/configcenter/AbstractDynamicConfigurationFactory.java
focal_class.identifier: AbstractDynamicConfigurationFactory
focal_class.interfaces: implements DynamicConfigurationFactory
focal_class.class_method_signature: AbstractDynamicConfigurationFactory.getDynamicConfiguration(URL url)
focal_class.full_signature: @Override public final DynamicConfiguration getDynamicConfiguration(URL url)
focal_class.identifier: getDynamicConfiguration
focal_class.modifiers: @Override public final
focal_class.parameters: (URL url)
focal_class.return: DynamicConfiguration
focal_class.signature: DynamicConfiguration getDynamicConfiguration(URL url)
focal_class.class_method_signature: AbstractDynamicConfigurationFactory.createDynamicConfiguration(URL url)
focal_class.full_signature: protected abstract DynamicConfiguration createDynamicConfiguration(URL url)
focal_class.identifier: createDynamicConfiguration
focal_class.modifiers: protected abstract
focal_class.parameters: (URL url)
focal_class.return: DynamicConfiguration
focal_class.signature: DynamicConfiguration createDynamicConfiguration(URL url)
focal_method.body: @Override
      public final DynamicConfiguration getDynamicConfiguration(URL url) {
          String key = url == null ? DEFAULT_KEY : url.toServiceString();
          return dynamicConfigurations.computeIfAbsent(key, k -> createDynamicConfiguration(url));
      }
focal_method.class_method_signature: AbstractDynamicConfigurationFactory.getDynamicConfiguration(URL url)
focal_method.full_signature: @Override public final DynamicConfiguration getDynamicConfiguration(URL url)
focal_method.identifier: getDynamicConfiguration
focal_method.invocations: toServiceString computeIfAbsent createDynamicConfiguration
focal_method.modifiers: @Override public final
focal_method.parameters: (URL url)
focal_method.return: DynamicConfiguration
focal_method.signature: DynamicConfiguration getDynamicConfiguration(URL url)