test_class.declarator: service = "com.alibaba.dubbo.test.injvmServie"
test_class.modifier: private
test_class.original_string: private String service = "com.alibaba.dubbo.test.injvmServie";
test_class.type: String
test_class.var_name: service
test_class.declarator: registryUrl = URL.valueOf("multicast://239.255.255.255/")
test_class.modifier: private
test_class.original_string: private URL registryUrl = URL.valueOf("multicast://239.255.255.255/");
test_class.type: URL
test_class.var_name: registryUrl
test_class.declarator: serviceUrl = URL.valueOf("dubbo://" + NetUtils.getLocalHost() + "/" + service
              + "?methods=test1,test2")
test_class.modifier: private
test_class.original_string: private URL serviceUrl = URL.valueOf("dubbo://" + NetUtils.getLocalHost() + "/" + service
              + "?methods=test1,test2");
test_class.type: URL
test_class.var_name: serviceUrl
test_class.declarator: adminUrl = URL.valueOf("dubbo://" + NetUtils.getLocalHost() + "/*")
test_class.modifier: private
test_class.original_string: private URL adminUrl = URL.valueOf("dubbo://" + NetUtils.getLocalHost() + "/*");
test_class.type: URL
test_class.var_name: adminUrl
test_class.declarator: consumerUrl = URL.valueOf("subscribe://" + NetUtils.getLocalHost() + "/" + service + "?arg1=1&arg2=2")
test_class.modifier: private
test_class.original_string: private URL consumerUrl = URL.valueOf("subscribe://" + NetUtils.getLocalHost() + "/" + service + "?arg1=1&arg2=2");
test_class.type: URL
test_class.var_name: consumerUrl
test_class.declarator: registry = new MulticastRegistry(registryUrl)
test_class.modifier: private
test_class.original_string: private MulticastRegistry registry = new MulticastRegistry(registryUrl);
test_class.type: MulticastRegistry
test_class.var_name: registry
test_class.file: dubbo-registry/dubbo-registry-multicast/src/test/java/com/alibaba/dubbo/registry/multicast/MulticastRegistryTest.java
test_class.identifier: MulticastRegistryTest
test_case.body: @Test
      public void testRegister() {
          Set<URL> registered = null;
          // clear first
          registered = registry.getRegistered();
  
          for (int i = 0; i < 2; i++) {
              registry.register(serviceUrl);
              registered = registry.getRegistered();
              assertTrue(registered.contains(serviceUrl));
          }
          // confirm only 1 regist success;
          registered = registry.getRegistered();
          assertEquals(1, registered.size());
      }
test_case.class_method_signature: MulticastRegistryTest.testRegister()
test_case.full_signature: @Test public void testRegister()
test_case.identifier: testRegister
test_case.invocations: getRegistered register getRegistered assertTrue contains getRegistered assertEquals size
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testRegister()
focal_class.declarator: logger = LoggerFactory.getLogger(MulticastRegistry.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(MulticastRegistry.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: DEFAULT_MULTICAST_PORT = 1234
focal_class.modifier: private static final
focal_class.original_string: private static final int DEFAULT_MULTICAST_PORT = 1234;
focal_class.type: int
focal_class.var_name: DEFAULT_MULTICAST_PORT
focal_class.declarator: mutilcastAddress
focal_class.modifier: private final
focal_class.original_string: private final InetAddress mutilcastAddress;
focal_class.type: InetAddress
focal_class.var_name: mutilcastAddress
focal_class.declarator: mutilcastSocket
focal_class.modifier: private final
focal_class.original_string: private final MulticastSocket mutilcastSocket;
focal_class.type: MulticastSocket
focal_class.var_name: mutilcastSocket
focal_class.declarator: mutilcastPort
focal_class.modifier: private final
focal_class.original_string: private final int mutilcastPort;
focal_class.type: int
focal_class.var_name: mutilcastPort
focal_class.declarator: received = new ConcurrentHashMap<URL, Set<URL>>()
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<URL, Set<URL>> received = new ConcurrentHashMap<URL, Set<URL>>();
focal_class.type: ConcurrentMap<URL, Set<URL>>
focal_class.var_name: received
focal_class.declarator: cleanExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("DubboMulticastRegistryCleanTimer", true))
focal_class.modifier: private final
focal_class.original_string: private final ScheduledExecutorService cleanExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("DubboMulticastRegistryCleanTimer", true));
focal_class.type: ScheduledExecutorService
focal_class.var_name: cleanExecutor
focal_class.declarator: cleanFuture
focal_class.modifier: private final
focal_class.original_string: private final ScheduledFuture<?> cleanFuture;
focal_class.type: ScheduledFuture<?>
focal_class.var_name: cleanFuture
focal_class.declarator: cleanPeriod
focal_class.modifier: private final
focal_class.original_string: private final int cleanPeriod;
focal_class.type: int
focal_class.var_name: cleanPeriod
focal_class.declarator: admin = false
focal_class.modifier: private volatile
focal_class.original_string: private volatile boolean admin = false;
focal_class.type: boolean
focal_class.var_name: admin
focal_class.file: dubbo-registry/dubbo-registry-multicast/src/main/java/com/alibaba/dubbo/registry/multicast/MulticastRegistry.java
focal_class.identifier: MulticastRegistry
focal_class.class_method_signature: MulticastRegistry.MulticastRegistry(URL url)
focal_class.full_signature: public  MulticastRegistry(URL url)
focal_class.identifier: MulticastRegistry
focal_class.modifiers: public
focal_class.parameters: (URL url)
focal_class.signature:  MulticastRegistry(URL url)
focal_class.class_method_signature: MulticastRegistry.isMulticastAddress(String ip)
focal_class.full_signature: private static boolean isMulticastAddress(String ip)
focal_class.identifier: isMulticastAddress
focal_class.modifiers: private static
focal_class.parameters: (String ip)
focal_class.return: boolean
focal_class.signature: boolean isMulticastAddress(String ip)
focal_class.class_method_signature: MulticastRegistry.clean()
focal_class.full_signature: private void clean()
focal_class.identifier: clean
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void clean()
focal_class.class_method_signature: MulticastRegistry.isExpired(URL url)
focal_class.full_signature: private boolean isExpired(URL url)
focal_class.identifier: isExpired
focal_class.modifiers: private
focal_class.parameters: (URL url)
focal_class.return: boolean
focal_class.signature: boolean isExpired(URL url)
focal_class.class_method_signature: MulticastRegistry.receive(String msg, InetSocketAddress remoteAddress)
focal_class.full_signature: private void receive(String msg, InetSocketAddress remoteAddress)
focal_class.identifier: receive
focal_class.modifiers: private
focal_class.parameters: (String msg, InetSocketAddress remoteAddress)
focal_class.return: void
focal_class.signature: void receive(String msg, InetSocketAddress remoteAddress)
focal_class.class_method_signature: MulticastRegistry.broadcast(String msg)
focal_class.full_signature: private void broadcast(String msg)
focal_class.identifier: broadcast
focal_class.modifiers: private
focal_class.parameters: (String msg)
focal_class.return: void
focal_class.signature: void broadcast(String msg)
focal_class.class_method_signature: MulticastRegistry.unicast(String msg, String host)
focal_class.full_signature: private void unicast(String msg, String host)
focal_class.identifier: unicast
focal_class.modifiers: private
focal_class.parameters: (String msg, String host)
focal_class.return: void
focal_class.signature: void unicast(String msg, String host)
focal_class.class_method_signature: MulticastRegistry.doRegister(URL url)
focal_class.full_signature: @Override protected void doRegister(URL url)
focal_class.identifier: doRegister
focal_class.modifiers: @Override protected
focal_class.parameters: (URL url)
focal_class.return: void
focal_class.signature: void doRegister(URL url)
focal_class.class_method_signature: MulticastRegistry.doUnregister(URL url)
focal_class.full_signature: @Override protected void doUnregister(URL url)
focal_class.identifier: doUnregister
focal_class.modifiers: @Override protected
focal_class.parameters: (URL url)
focal_class.return: void
focal_class.signature: void doUnregister(URL url)
focal_class.class_method_signature: MulticastRegistry.doSubscribe(URL url, NotifyListener listener)
focal_class.full_signature: @Override protected void doSubscribe(URL url, NotifyListener listener)
focal_class.identifier: doSubscribe
focal_class.modifiers: @Override protected
focal_class.parameters: (URL url, NotifyListener listener)
focal_class.return: void
focal_class.signature: void doSubscribe(URL url, NotifyListener listener)
focal_class.class_method_signature: MulticastRegistry.doUnsubscribe(URL url, NotifyListener listener)
focal_class.full_signature: @Override protected void doUnsubscribe(URL url, NotifyListener listener)
focal_class.identifier: doUnsubscribe
focal_class.modifiers: @Override protected
focal_class.parameters: (URL url, NotifyListener listener)
focal_class.return: void
focal_class.signature: void doUnsubscribe(URL url, NotifyListener listener)
focal_class.class_method_signature: MulticastRegistry.isAvailable()
focal_class.full_signature: @Override public boolean isAvailable()
focal_class.identifier: isAvailable
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isAvailable()
focal_class.class_method_signature: MulticastRegistry.destroy()
focal_class.full_signature: @Override public void destroy()
focal_class.identifier: destroy
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void destroy()
focal_class.class_method_signature: MulticastRegistry.registered(URL url)
focal_class.full_signature: protected void registered(URL url)
focal_class.identifier: registered
focal_class.modifiers: protected
focal_class.parameters: (URL url)
focal_class.return: void
focal_class.signature: void registered(URL url)
focal_class.class_method_signature: MulticastRegistry.unregistered(URL url)
focal_class.full_signature: protected void unregistered(URL url)
focal_class.identifier: unregistered
focal_class.modifiers: protected
focal_class.parameters: (URL url)
focal_class.return: void
focal_class.signature: void unregistered(URL url)
focal_class.class_method_signature: MulticastRegistry.subscribed(URL url, NotifyListener listener)
focal_class.full_signature: protected void subscribed(URL url, NotifyListener listener)
focal_class.identifier: subscribed
focal_class.modifiers: protected
focal_class.parameters: (URL url, NotifyListener listener)
focal_class.return: void
focal_class.signature: void subscribed(URL url, NotifyListener listener)
focal_class.class_method_signature: MulticastRegistry.toList(Set<URL> urls)
focal_class.full_signature: private List<URL> toList(Set<URL> urls)
focal_class.identifier: toList
focal_class.modifiers: private
focal_class.parameters: (Set<URL> urls)
focal_class.return: List<URL>
focal_class.signature: List<URL> toList(Set<URL> urls)
focal_class.class_method_signature: MulticastRegistry.register(URL url)
focal_class.full_signature: @Override public void register(URL url)
focal_class.identifier: register
focal_class.modifiers: @Override public
focal_class.parameters: (URL url)
focal_class.return: void
focal_class.signature: void register(URL url)
focal_class.class_method_signature: MulticastRegistry.unregister(URL url)
focal_class.full_signature: @Override public void unregister(URL url)
focal_class.identifier: unregister
focal_class.modifiers: @Override public
focal_class.parameters: (URL url)
focal_class.return: void
focal_class.signature: void unregister(URL url)
focal_class.class_method_signature: MulticastRegistry.subscribe(URL url, NotifyListener listener)
focal_class.full_signature: @Override public void subscribe(URL url, NotifyListener listener)
focal_class.identifier: subscribe
focal_class.modifiers: @Override public
focal_class.parameters: (URL url, NotifyListener listener)
focal_class.return: void
focal_class.signature: void subscribe(URL url, NotifyListener listener)
focal_class.class_method_signature: MulticastRegistry.unsubscribe(URL url, NotifyListener listener)
focal_class.full_signature: @Override public void unsubscribe(URL url, NotifyListener listener)
focal_class.identifier: unsubscribe
focal_class.modifiers: @Override public
focal_class.parameters: (URL url, NotifyListener listener)
focal_class.return: void
focal_class.signature: void unsubscribe(URL url, NotifyListener listener)
focal_class.class_method_signature: MulticastRegistry.lookup(URL url)
focal_class.full_signature: @Override public List<URL> lookup(URL url)
focal_class.identifier: lookup
focal_class.modifiers: @Override public
focal_class.parameters: (URL url)
focal_class.return: List<URL>
focal_class.signature: List<URL> lookup(URL url)
focal_class.class_method_signature: MulticastRegistry.getMutilcastSocket()
focal_class.full_signature: public MulticastSocket getMutilcastSocket()
focal_class.identifier: getMutilcastSocket
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: MulticastSocket
focal_class.signature: MulticastSocket getMutilcastSocket()
focal_class.class_method_signature: MulticastRegistry.getReceived()
focal_class.full_signature: public Map<URL, Set<URL>> getReceived()
focal_class.identifier: getReceived
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Map<URL, Set<URL>>
focal_class.signature: Map<URL, Set<URL>> getReceived()
focal_class.superclass: extends FailbackRegistry
focal_method.body: @Override
      public void register(URL url) {
          super.register(url);
          registered(url);
      }
focal_method.class_method_signature: MulticastRegistry.register(URL url)
focal_method.full_signature: @Override public void register(URL url)
focal_method.identifier: register
focal_method.invocations: register registered
focal_method.modifiers: @Override public
focal_method.parameters: (URL url)
focal_method.return: void
focal_method.signature: void register(URL url)