test_class.declarator: innerTest
test_class.modifier: @Reference(methods = {@Method(name = "sayHello", timeout = 1300, retries = 4, loadbalance = "random", async = true,
              actives = 3, executes = 5, deprecated = true, sticky = true, oninvoke = "i", onthrow = "t", onreturn = "r", cache = "c", validation = "v",
              arguments = {@Argument(index = 24, callback = true, type = "sss")})})
      private
test_class.original_string: @Reference(methods = {@Method(name = "sayHello", timeout = 1300, retries = 4, loadbalance = "random", async = true,
              actives = 3, executes = 5, deprecated = true, sticky = true, oninvoke = "i", onthrow = "t", onreturn = "r", cache = "c", validation = "v",
              arguments = {@Argument(index = 24, callback = true, type = "sss")})})
      private InnerTest innerTest;
test_class.type: InnerTest
test_class.var_name: innerTest
test_class.file: dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
test_class.identifier: ReferenceConfigTest
test_case.body: @Test
      public void testReferenceRetry() {
          ApplicationConfig application = new ApplicationConfig();
          application.setName("test-reference-retry");
          RegistryConfig registry = new RegistryConfig();
          registry.setAddress("multicast://224.5.6.7:1234");
          ProtocolConfig protocol = new ProtocolConfig();
          protocol.setName("mockprotocol");
  
          ReferenceConfig<DemoService> rc = new ReferenceConfig<DemoService>();
          rc.setApplication(application);
          rc.setRegistry(registry);
          rc.setInterface(DemoService.class.getName());
  
          boolean success = false;
          DemoService demoService = null;
          try {
              demoService = rc.get();
              success = true;
          } catch (Exception e) {
              e.printStackTrace();
          }
          Assertions.assertFalse(success);
          Assertions.assertNull(demoService);
  
          ServiceConfig<DemoService> sc = new ServiceConfig<DemoService>();
          sc.setInterface(DemoService.class);
          sc.setRef(new DemoServiceImpl());
          sc.setApplication(application);
          sc.setRegistry(registry);
          sc.setProtocol(protocol);
  
          try {
              System.setProperty("java.net.preferIPv4Stack", "true");
              sc.export();
              demoService = rc.get();
              success = true;
          } catch (Exception e) {
              e.printStackTrace();
          } finally {
              System.clearProperty("java.net.preferIPv4Stack");
          }
          Assertions.assertTrue(success);
          Assertions.assertNotNull(demoService);
  
      }
test_case.class_method_signature: ReferenceConfigTest.testReferenceRetry()
test_case.full_signature: @Test public void testReferenceRetry()
test_case.identifier: testReferenceRetry
test_case.invocations: setName setAddress setName setApplication setRegistry setInterface getName get printStackTrace assertFalse assertNull setInterface setRef setApplication setRegistry setProtocol setProperty export get printStackTrace clearProperty assertTrue assertNotNull
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testReferenceRetry()
focal_class.declarator: logger = LoggerFactory.getLogger(ReferenceConfig.class)
focal_class.modifier: public static final
focal_class.original_string: public static final Logger logger = LoggerFactory.getLogger(ReferenceConfig.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: REF_PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension()
focal_class.modifier: private static final
focal_class.original_string: private static final Protocol REF_PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
focal_class.type: Protocol
focal_class.var_name: REF_PROTOCOL
focal_class.declarator: CLUSTER = ExtensionLoader.getExtensionLoader(Cluster.class).getAdaptiveExtension()
focal_class.modifier: private static final
focal_class.original_string: private static final Cluster CLUSTER = ExtensionLoader.getExtensionLoader(Cluster.class).getAdaptiveExtension();
focal_class.type: Cluster
focal_class.var_name: CLUSTER
focal_class.declarator: PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension()
focal_class.modifier: private static final
focal_class.original_string: private static final ProxyFactory PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
focal_class.type: ProxyFactory
focal_class.var_name: PROXY_FACTORY
focal_class.declarator: ref
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile T ref;
focal_class.type: T
focal_class.var_name: ref
focal_class.declarator: invoker
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile Invoker<?> invoker;
focal_class.type: Invoker<?>
focal_class.var_name: invoker
focal_class.declarator: initialized
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile boolean initialized;
focal_class.type: boolean
focal_class.var_name: initialized
focal_class.declarator: destroyed
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile boolean destroyed;
focal_class.type: boolean
focal_class.var_name: destroyed
focal_class.declarator: repository
focal_class.modifier: private final
focal_class.original_string: private final ServiceRepository repository;
focal_class.type: ServiceRepository
focal_class.var_name: repository
focal_class.declarator: bootstrap
focal_class.modifier: private
focal_class.original_string: private DubboBootstrap bootstrap;
focal_class.type: DubboBootstrap
focal_class.var_name: bootstrap
focal_class.declarator: services
focal_class.modifier: private
focal_class.original_string: private String services;
focal_class.type: String
focal_class.var_name: services
focal_class.file: dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
focal_class.identifier: ReferenceConfig
focal_class.class_method_signature: ReferenceConfig.ReferenceConfig()
focal_class.full_signature: public  ReferenceConfig()
focal_class.identifier: ReferenceConfig
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ReferenceConfig()
focal_class.class_method_signature: ReferenceConfig.ReferenceConfig(Reference reference)
focal_class.full_signature: public  ReferenceConfig(Reference reference)
focal_class.identifier: ReferenceConfig
focal_class.modifiers: public
focal_class.parameters: (Reference reference)
focal_class.signature:  ReferenceConfig(Reference reference)
focal_class.class_method_signature: ReferenceConfig.getServices()
focal_class.full_signature: @Parameter(key = SUBSCRIBED_SERVICE_NAMES_KEY) public String getServices()
focal_class.identifier: getServices
focal_class.modifiers: @Parameter(key = SUBSCRIBED_SERVICE_NAMES_KEY) public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getServices()
focal_class.class_method_signature: ReferenceConfig.getSubscribedServices()
focal_class.full_signature: @Parameter(excluded = true) public Set<String> getSubscribedServices()
focal_class.identifier: getSubscribedServices
focal_class.modifiers: @Parameter(excluded = true) public
focal_class.parameters: ()
focal_class.return: Set<String>
focal_class.signature: Set<String> getSubscribedServices()
focal_class.class_method_signature: ReferenceConfig.setServices(String services)
focal_class.full_signature: public void setServices(String services)
focal_class.identifier: setServices
focal_class.modifiers: public
focal_class.parameters: (String services)
focal_class.return: void
focal_class.signature: void setServices(String services)
focal_class.class_method_signature: ReferenceConfig.get()
focal_class.full_signature: public synchronized T get()
focal_class.identifier: get
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: T
focal_class.signature: T get()
focal_class.class_method_signature: ReferenceConfig.destroy()
focal_class.full_signature: public synchronized void destroy()
focal_class.identifier: destroy
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void destroy()
focal_class.class_method_signature: ReferenceConfig.init()
focal_class.full_signature: public synchronized void init()
focal_class.identifier: init
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void init()
focal_class.class_method_signature: ReferenceConfig.createProxy(Map<String, String> map)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes", "deprecation"}) private T createProxy(Map<String, String> map)
focal_class.identifier: createProxy
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes", "deprecation"}) private
focal_class.parameters: (Map<String, String> map)
focal_class.return: T
focal_class.signature: T createProxy(Map<String, String> map)
focal_class.class_method_signature: ReferenceConfig.checkInvokerAvailable()
focal_class.full_signature: private void checkInvokerAvailable()
focal_class.identifier: checkInvokerAvailable
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void checkInvokerAvailable()
focal_class.class_method_signature: ReferenceConfig.checkAndUpdateSubConfigs()
focal_class.full_signature: public void checkAndUpdateSubConfigs()
focal_class.identifier: checkAndUpdateSubConfigs
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void checkAndUpdateSubConfigs()
focal_class.class_method_signature: ReferenceConfig.shouldJvmRefer(Map<String, String> map)
focal_class.full_signature: protected boolean shouldJvmRefer(Map<String, String> map)
focal_class.identifier: shouldJvmRefer
focal_class.modifiers: protected
focal_class.parameters: (Map<String, String> map)
focal_class.return: boolean
focal_class.signature: boolean shouldJvmRefer(Map<String, String> map)
focal_class.class_method_signature: ReferenceConfig.dispatch(Event event)
focal_class.full_signature: protected void dispatch(Event event)
focal_class.identifier: dispatch
focal_class.modifiers: protected
focal_class.parameters: (Event event)
focal_class.return: void
focal_class.signature: void dispatch(Event event)
focal_class.class_method_signature: ReferenceConfig.getBootstrap()
focal_class.full_signature: public DubboBootstrap getBootstrap()
focal_class.identifier: getBootstrap
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: DubboBootstrap
focal_class.signature: DubboBootstrap getBootstrap()
focal_class.class_method_signature: ReferenceConfig.setBootstrap(DubboBootstrap bootstrap)
focal_class.full_signature: public void setBootstrap(DubboBootstrap bootstrap)
focal_class.identifier: setBootstrap
focal_class.modifiers: public
focal_class.parameters: (DubboBootstrap bootstrap)
focal_class.return: void
focal_class.signature: void setBootstrap(DubboBootstrap bootstrap)
focal_class.class_method_signature: ReferenceConfig.postProcessConfig()
focal_class.full_signature: private void postProcessConfig()
focal_class.identifier: postProcessConfig
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void postProcessConfig()
focal_class.class_method_signature: ReferenceConfig.getInvoker()
focal_class.full_signature:  Invoker<?> getInvoker()
focal_class.identifier: getInvoker
focal_class.parameters: ()
focal_class.return: Invoker<?>
focal_class.signature: Invoker<?> getInvoker()
focal_class.superclass: extends ReferenceConfigBase<T>
focal_method.body: public synchronized T get() {
          if (destroyed) {
              throw new IllegalStateException("The invoker of ReferenceConfig(" + url + ") has already destroyed!");
          }
          if (ref == null) {
              init();
          }
          return ref;
      }
focal_method.class_method_signature: ReferenceConfig.get()
focal_method.full_signature: public synchronized T get()
focal_method.identifier: get
focal_method.invocations: init
focal_method.modifiers: public synchronized
focal_method.parameters: ()
focal_method.return: T
focal_method.signature: T get()