test_class.declarator: protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension()
test_class.modifier: private
test_class.original_string: private Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
test_class.type: Protocol
test_class.var_name: protocol
test_class.declarator: proxy = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension()
test_class.modifier: private
test_class.original_string: private ProxyFactory proxy = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
test_class.type: ProxyFactory
test_class.var_name: proxy
test_class.declarator: exporters = new ArrayList<Exporter<?>>()
test_class.modifier: private
test_class.original_string: private List<Exporter<?>> exporters = new ArrayList<Exporter<?>>();
test_class.type: List<Exporter<?>>
test_class.var_name: exporters
test_class.file: dubbo-rpc/dubbo-rpc-injvm/src/test/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocolTest.java
test_class.identifier: InjvmProtocolTest
test_case.body: @Test
      public void testLocalProtocol() throws Exception {
          DemoService service = new DemoServiceImpl();
          Invoker<?> invoker = proxy.getInvoker(service, DemoService.class, URL.valueOf("injvm://127.0.0.1/TestService").addParameter(INTERFACE_KEY, DemoService.class.getName()));
          assertTrue(invoker.isAvailable());
          Exporter<?> exporter = protocol.export(invoker);
          exporters.add(exporter);
          service = proxy.getProxy(protocol.refer(DemoService.class, URL.valueOf("injvm://127.0.0.1/TestService").addParameter(INTERFACE_KEY, DemoService.class.getName())));
          assertEquals(service.getSize(new String[]{"", "", ""}), 3);
          service.invoke("injvm://127.0.0.1/TestService", "invoke");
  
          InjvmInvoker injvmInvoker = new InjvmInvoker(DemoService.class, URL.valueOf("injvm://127.0.0.1/TestService"), null, new HashMap<String, Exporter<?>>());
          assertFalse(injvmInvoker.isAvailable());
  
      }
test_case.class_method_signature: InjvmProtocolTest.testLocalProtocol()
test_case.full_signature: @Test public void testLocalProtocol()
test_case.identifier: testLocalProtocol
test_case.invocations: getInvoker addParameter valueOf getName assertTrue isAvailable export add getProxy refer addParameter valueOf getName assertEquals getSize invoke valueOf assertFalse isAvailable
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testLocalProtocol()
focal_class.declarator: NAME = LOCAL_PROTOCOL
focal_class.modifier: public static final
focal_class.original_string: public static final String NAME = LOCAL_PROTOCOL;
focal_class.type: String
focal_class.var_name: NAME
focal_class.declarator: DEFAULT_PORT = 0
focal_class.modifier: public static final
focal_class.original_string: public static final int DEFAULT_PORT = 0;
focal_class.type: int
focal_class.var_name: DEFAULT_PORT
focal_class.declarator: INSTANCE
focal_class.modifier: private static
focal_class.original_string: private static InjvmProtocol INSTANCE;
focal_class.type: InjvmProtocol
focal_class.var_name: INSTANCE
focal_class.file: dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java
focal_class.identifier: InjvmProtocol
focal_class.interfaces: implements Protocol
focal_class.class_method_signature: InjvmProtocol.InjvmProtocol()
focal_class.full_signature: public  InjvmProtocol()
focal_class.identifier: InjvmProtocol
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  InjvmProtocol()
focal_class.class_method_signature: InjvmProtocol.getInjvmProtocol()
focal_class.full_signature: public static InjvmProtocol getInjvmProtocol()
focal_class.identifier: getInjvmProtocol
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: InjvmProtocol
focal_class.signature: InjvmProtocol getInjvmProtocol()
focal_class.class_method_signature: InjvmProtocol.getExporter(Map<String, Exporter<?>> map, URL key)
focal_class.full_signature: static Exporter<?> getExporter(Map<String, Exporter<?>> map, URL key)
focal_class.identifier: getExporter
focal_class.modifiers: static
focal_class.parameters: (Map<String, Exporter<?>> map, URL key)
focal_class.return: Exporter<?>
focal_class.signature: Exporter<?> getExporter(Map<String, Exporter<?>> map, URL key)
focal_class.class_method_signature: InjvmProtocol.getDefaultPort()
focal_class.full_signature: @Override public int getDefaultPort()
focal_class.identifier: getDefaultPort
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getDefaultPort()
focal_class.class_method_signature: InjvmProtocol.export(Invoker<T> invoker)
focal_class.full_signature: @Override public Exporter<T> export(Invoker<T> invoker)
focal_class.identifier: export
focal_class.modifiers: @Override public
focal_class.parameters: (Invoker<T> invoker)
focal_class.return: Exporter<T>
focal_class.signature: Exporter<T> export(Invoker<T> invoker)
focal_class.class_method_signature: InjvmProtocol.protocolBindingRefer(Class<T> serviceType, URL url)
focal_class.full_signature: @Override public Invoker<T> protocolBindingRefer(Class<T> serviceType, URL url)
focal_class.identifier: protocolBindingRefer
focal_class.modifiers: @Override public
focal_class.parameters: (Class<T> serviceType, URL url)
focal_class.return: Invoker<T>
focal_class.signature: Invoker<T> protocolBindingRefer(Class<T> serviceType, URL url)
focal_class.class_method_signature: InjvmProtocol.isInjvmRefer(URL url)
focal_class.full_signature: public boolean isInjvmRefer(URL url)
focal_class.identifier: isInjvmRefer
focal_class.modifiers: public
focal_class.parameters: (URL url)
focal_class.return: boolean
focal_class.signature: boolean isInjvmRefer(URL url)
focal_class.superclass: extends AbstractProtocol
focal_method.body: @Override
      public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {
          return new InjvmExporter<T>(invoker, invoker.getUrl().getServiceKey(), exporterMap);
      }
focal_method.class_method_signature: InjvmProtocol.export(Invoker<T> invoker)
focal_method.full_signature: @Override public Exporter<T> export(Invoker<T> invoker)
focal_method.identifier: export
focal_method.invocations: getServiceKey getUrl
focal_method.modifiers: @Override public
focal_method.parameters: (Invoker<T> invoker)
focal_method.return: Exporter<T>
focal_method.signature: Exporter<T> export(Invoker<T> invoker)