test_class.declarator: protocolDelegate = Mockito.mock(Protocol.class)
test_class.modifier: private
test_class.original_string: private Protocol protocolDelegate = Mockito.mock(Protocol.class);
test_class.type: Protocol
test_class.var_name: protocolDelegate
test_class.declarator: registryDelegate = Mockito.mock(Registry.class)
test_class.modifier: private
test_class.original_string: private Registry registryDelegate = Mockito.mock(Registry.class);
test_class.type: Registry
test_class.var_name: registryDelegate
test_class.declarator: exporter = Mockito.mock(Exporter.class)
test_class.modifier: private
test_class.original_string: private Exporter exporter = Mockito.mock(Exporter.class);
test_class.type: Exporter
test_class.var_name: exporter
test_class.declarator: service = new ServiceConfig<DemoServiceImpl>()
test_class.modifier: private
test_class.original_string: private ServiceConfig<DemoServiceImpl> service = new ServiceConfig<DemoServiceImpl>();
test_class.type: ServiceConfig<DemoServiceImpl>
test_class.var_name: service
test_class.declarator: service2 = new ServiceConfig<DemoServiceImpl>()
test_class.modifier: private
test_class.original_string: private ServiceConfig<DemoServiceImpl> service2 = new ServiceConfig<DemoServiceImpl>();
test_class.type: ServiceConfig<DemoServiceImpl>
test_class.var_name: service2
test_class.declarator: delayService = new ServiceConfig<DemoServiceImpl>()
test_class.modifier: private
test_class.original_string: private ServiceConfig<DemoServiceImpl> delayService = new ServiceConfig<DemoServiceImpl>();
test_class.type: ServiceConfig<DemoServiceImpl>
test_class.var_name: delayService
test_class.file: dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java
test_class.identifier: ServiceConfigTest
test_case.body: @Test
      public void testApplicationInUrl() {
          service.export();
          Assertions.assertNotNull(service.toUrl().getParameter(APPLICATION_KEY));
          Assertions.assertEquals("app", service.toUrl().getParameter(APPLICATION_KEY));
      }
test_case.class_method_signature: ServiceConfigTest.testApplicationInUrl()
test_case.full_signature: @Test public void testApplicationInUrl()
test_case.identifier: testApplicationInUrl
test_case.invocations: export assertNotNull getParameter toUrl assertEquals getParameter toUrl
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testApplicationInUrl()
focal_class.declarator: logger = LoggerFactory.getLogger(ServiceConfig.class)
focal_class.modifier: public static final
focal_class.original_string: public static final Logger logger = LoggerFactory.getLogger(ServiceConfig.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: RANDOM_PORT_MAP = new HashMap<String, Integer>()
focal_class.modifier: private static final
focal_class.original_string: private static final Map<String, Integer> RANDOM_PORT_MAP = new HashMap<String, Integer>();
focal_class.type: Map<String, Integer>
focal_class.var_name: RANDOM_PORT_MAP
focal_class.declarator: DELAY_EXPORT_EXECUTOR = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory("DubboServiceDelayExporter", true))
focal_class.modifier: private static final
focal_class.original_string: private static final ScheduledExecutorService DELAY_EXPORT_EXECUTOR = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory("DubboServiceDelayExporter", true));
focal_class.type: ScheduledExecutorService
focal_class.var_name: DELAY_EXPORT_EXECUTOR
focal_class.declarator: PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension()
focal_class.modifier: private static final
focal_class.original_string: private static final Protocol PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
focal_class.type: Protocol
focal_class.var_name: PROTOCOL
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: exported
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile boolean exported;
focal_class.type: boolean
focal_class.var_name: exported
focal_class.declarator: unexported
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile boolean unexported;
focal_class.type: boolean
focal_class.var_name: unexported
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: exporters = new ArrayList<Exporter<?>>()
focal_class.modifier: private final
focal_class.original_string: private final List<Exporter<?>> exporters = new ArrayList<Exporter<?>>();
focal_class.type: List<Exporter<?>>
focal_class.var_name: exporters
focal_class.file: dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
focal_class.identifier: ServiceConfig
focal_class.class_method_signature: ServiceConfig.ServiceConfig()
focal_class.full_signature: public  ServiceConfig()
focal_class.identifier: ServiceConfig
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ServiceConfig()
focal_class.class_method_signature: ServiceConfig.ServiceConfig(Service service)
focal_class.full_signature: public  ServiceConfig(Service service)
focal_class.identifier: ServiceConfig
focal_class.modifiers: public
focal_class.parameters: (Service service)
focal_class.signature:  ServiceConfig(Service service)
focal_class.class_method_signature: ServiceConfig.isExported()
focal_class.full_signature: @Parameter(excluded = true) public boolean isExported()
focal_class.identifier: isExported
focal_class.modifiers: @Parameter(excluded = true) public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isExported()
focal_class.class_method_signature: ServiceConfig.isUnexported()
focal_class.full_signature: @Parameter(excluded = true) public boolean isUnexported()
focal_class.identifier: isUnexported
focal_class.modifiers: @Parameter(excluded = true) public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isUnexported()
focal_class.class_method_signature: ServiceConfig.unexport()
focal_class.full_signature: public void unexport()
focal_class.identifier: unexport
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void unexport()
focal_class.class_method_signature: ServiceConfig.export()
focal_class.full_signature: public synchronized void export()
focal_class.identifier: export
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void export()
focal_class.class_method_signature: ServiceConfig.exported()
focal_class.full_signature: public void exported()
focal_class.identifier: exported
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void exported()
focal_class.class_method_signature: ServiceConfig.checkAndUpdateSubConfigs()
focal_class.full_signature: private void checkAndUpdateSubConfigs()
focal_class.identifier: checkAndUpdateSubConfigs
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void checkAndUpdateSubConfigs()
focal_class.class_method_signature: ServiceConfig.doExport()
focal_class.full_signature: protected synchronized void doExport()
focal_class.identifier: doExport
focal_class.modifiers: protected synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void doExport()
focal_class.class_method_signature: ServiceConfig.doExportUrls()
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) private void doExportUrls()
focal_class.identifier: doExportUrls
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void doExportUrls()
focal_class.class_method_signature: ServiceConfig.doExportUrlsFor1Protocol(ProtocolConfig protocolConfig, List<URL> registryURLs)
focal_class.full_signature: private void doExportUrlsFor1Protocol(ProtocolConfig protocolConfig, List<URL> registryURLs)
focal_class.identifier: doExportUrlsFor1Protocol
focal_class.modifiers: private
focal_class.parameters: (ProtocolConfig protocolConfig, List<URL> registryURLs)
focal_class.return: void
focal_class.signature: void doExportUrlsFor1Protocol(ProtocolConfig protocolConfig, List<URL> registryURLs)
focal_class.class_method_signature: ServiceConfig.exportLocal(URL url)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) /** * always export injvm */ private void exportLocal(URL url)
focal_class.identifier: exportLocal
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) /** * always export injvm */ private
focal_class.parameters: (URL url)
focal_class.return: void
focal_class.signature: void exportLocal(URL url)
focal_class.class_method_signature: ServiceConfig.isOnlyInJvm()
focal_class.full_signature: private boolean isOnlyInJvm()
focal_class.identifier: isOnlyInJvm
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isOnlyInJvm()
focal_class.class_method_signature: ServiceConfig.findConfigedHosts(ProtocolConfig protocolConfig,
                                       List<URL> registryURLs,
                                       Map<String, String> map)
focal_class.full_signature: private String findConfigedHosts(ProtocolConfig protocolConfig,
                                       List<URL> registryURLs,
                                       Map<String, String> map)
focal_class.identifier: findConfigedHosts
focal_class.modifiers: private
focal_class.parameters: (ProtocolConfig protocolConfig,
                                       List<URL> registryURLs,
                                       Map<String, String> map)
focal_class.return: String
focal_class.signature: String findConfigedHosts(ProtocolConfig protocolConfig,
                                       List<URL> registryURLs,
                                       Map<String, String> map)
focal_class.class_method_signature: ServiceConfig.findConfigedPorts(ProtocolConfig protocolConfig,
                                        String name,
                                        Map<String, String> map)
focal_class.full_signature: private Integer findConfigedPorts(ProtocolConfig protocolConfig,
                                        String name,
                                        Map<String, String> map)
focal_class.identifier: findConfigedPorts
focal_class.modifiers: private
focal_class.parameters: (ProtocolConfig protocolConfig,
                                        String name,
                                        Map<String, String> map)
focal_class.return: Integer
focal_class.signature: Integer findConfigedPorts(ProtocolConfig protocolConfig,
                                        String name,
                                        Map<String, String> map)
focal_class.class_method_signature: ServiceConfig.parsePort(String configPort)
focal_class.full_signature: private Integer parsePort(String configPort)
focal_class.identifier: parsePort
focal_class.modifiers: private
focal_class.parameters: (String configPort)
focal_class.return: Integer
focal_class.signature: Integer parsePort(String configPort)
focal_class.class_method_signature: ServiceConfig.getValueFromConfig(ProtocolConfig protocolConfig, String key)
focal_class.full_signature: private String getValueFromConfig(ProtocolConfig protocolConfig, String key)
focal_class.identifier: getValueFromConfig
focal_class.modifiers: private
focal_class.parameters: (ProtocolConfig protocolConfig, String key)
focal_class.return: String
focal_class.signature: String getValueFromConfig(ProtocolConfig protocolConfig, String key)
focal_class.class_method_signature: ServiceConfig.getRandomPort(String protocol)
focal_class.full_signature: private Integer getRandomPort(String protocol)
focal_class.identifier: getRandomPort
focal_class.modifiers: private
focal_class.parameters: (String protocol)
focal_class.return: Integer
focal_class.signature: Integer getRandomPort(String protocol)
focal_class.class_method_signature: ServiceConfig.putRandomPort(String protocol, Integer port)
focal_class.full_signature: private void putRandomPort(String protocol, Integer port)
focal_class.identifier: putRandomPort
focal_class.modifiers: private
focal_class.parameters: (String protocol, Integer port)
focal_class.return: void
focal_class.signature: void putRandomPort(String protocol, Integer port)
focal_class.class_method_signature: ServiceConfig.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: ServiceConfig.dispatch(Event event)
focal_class.full_signature: private void dispatch(Event event)
focal_class.identifier: dispatch
focal_class.modifiers: private
focal_class.parameters: (Event event)
focal_class.return: void
focal_class.signature: void dispatch(Event event)
focal_class.class_method_signature: ServiceConfig.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: ServiceConfig.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.superclass: extends ServiceConfigBase<T>
focal_method.body: public synchronized void export() {
          if (bootstrap == null) {
              bootstrap = DubboBootstrap.getInstance();
              bootstrap.initialize();
          }
  
          checkAndUpdateSubConfigs();
  
          //init serviceMetadata
          serviceMetadata.setVersion(getVersion());
          serviceMetadata.setGroup(getGroup());
          serviceMetadata.setDefaultGroup(getGroup());
          serviceMetadata.setServiceType(getInterfaceClass());
          serviceMetadata.setServiceInterfaceName(getInterface());
          serviceMetadata.setTarget(getRef());
  
          if (!shouldExport()) {
              return;
          }
  
          if (shouldDelay()) {
              DELAY_EXPORT_EXECUTOR.schedule(this::doExport, getDelay(), TimeUnit.MILLISECONDS);
          } else {
              doExport();
          }
  
          exported();
      }
focal_method.class_method_signature: ServiceConfig.export()
focal_method.full_signature: public synchronized void export()
focal_method.identifier: export
focal_method.invocations: getInstance initialize checkAndUpdateSubConfigs setVersion getVersion setGroup getGroup setDefaultGroup getGroup setServiceType getInterfaceClass setServiceInterfaceName getInterface setTarget getRef shouldExport shouldDelay schedule getDelay doExport exported
focal_method.modifiers: public synchronized
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void export()