com.netflix.discovery.shared.Application类的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(10.8k)|赞(0)|评价(0)|浏览(193)

本文整理了Java中com.netflix.discovery.shared.Application类的一些代码示例,展示了Application类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Application类的具体详情如下:
包路径:com.netflix.discovery.shared.Application
类名称:Application

Application介绍

[英]The application class holds the list of instances for a particular application.
[中]application类保存特定应用程序的实例列表。

代码示例

代码示例来源:origin: Netflix/eureka

public static Application mergeApplication(Application first, Application second) {
  if (!first.getName().equals(second.getName())) {
    throw new IllegalArgumentException("Cannot merge applications with different names");
  }
  Application merged = copyApplication(first);
  for (InstanceInfo instance : second.getInstances()) {
    switch (instance.getActionType()) {
      case ADDED:
      case MODIFIED:
        merged.addInstance(instance);
        break;
      case DELETED:
        merged.removeInstance(instance);
    }
  }
  return merged;
}

代码示例来源:origin: Netflix/eureka

public static Application copyApplication(Application application) {
  Application copy = new Application(application.getName());
  for (InstanceInfo instance : application.getInstances()) {
    copy.addInstance(instance);
  }
  return copy;
}

代码示例来源:origin: Netflix/eureka

public static boolean equal(Application first, Application second) {
  if (first == second) {
    return true;
  }
  if (first == null || first == null && second != null) {
    return false;
  }
  if (first.getName() != null ? !first.getName().equals(second.getName()) : second.getName() != null) {
    return false;
  }
  List<InstanceInfo> firstInstanceInfos = first.getInstances();
  List<InstanceInfo> secondInstanceInfos = second.getInstances();
  if (firstInstanceInfos == null && secondInstanceInfos == null) {
    return true;
  }
  if (firstInstanceInfos == null || secondInstanceInfos == null || firstInstanceInfos.size() != secondInstanceInfos.size()) {
    return false;
  }
  for (InstanceInfo firstInstanceInfo : firstInstanceInfos) {
    InstanceInfo secondInstanceInfo = second.getByInstanceId(firstInstanceInfo.getId());
    if (!equal(firstInstanceInfo, secondInstanceInfo)) {
      return false;
    }
  }
  return true;
}

代码示例来源:origin: Netflix/eureka

public static void copyApplication(Application source, Application result) {
  if (source != null) {
    for (InstanceInfo instance : source.getInstances()) {
      result.addInstance(instance);
    }
  }
}

代码示例来源:origin: Netflix/eureka

@Override
  public void serialize(Application value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
    jgen.writeStartObject();
    jgen.writeStringField(ELEM_NAME, value.getName());
    jgen.writeObjectField(ELEM_INSTANCE, value.getInstances());
    jgen.writeEndObject();
  }
}

代码示例来源:origin: Netflix/eureka

public static Map<String, InstanceInfo> selectInstancesMappedById(Application application) {
  Map<String, InstanceInfo> result = new HashMap<>();
  for (InstanceInfo instance : application.getInstances()) {
    result.put(instance.getId(), instance);
  }
  return result;
}

代码示例来源:origin: Netflix/eureka

public static Map<String, Application> toApplicationMap(List<InstanceInfo> instances) {
  Map<String, Application> applicationMap = new HashMap<String, Application>();
  for (InstanceInfo instance : instances) {
    String appName = instance.getAppName();
    Application application = applicationMap.get(appName);
    if (application == null) {
      applicationMap.put(appName, application = new Application(appName));
    }
    application.addInstance(instance);
  }
  return applicationMap;
}

代码示例来源:origin: Netflix/eureka

public static void copyApplications(Applications source, Applications result) {
  if (source != null) {
    for (Application app : source.getRegisteredApplications()) {
      result.addApplication(new Application(app.getName(), app.getInstances()));
    }
  }
}

代码示例来源:origin: Netflix/eureka

int deltaCount = 0;
for (Application app : delta.getRegisteredApplications()) {
  for (InstanceInfo instance : app.getInstances()) {
    Applications applications = getApplications();
    String instanceRegion = instanceRegionChecker.getInstanceRegion(instance);
      applications.getRegisteredApplications(instance.getAppName()).addInstance(instance);
    } else if (ActionType.MODIFIED.equals(instance.getActionType())) {
      Application existingApp = applications.getRegisteredApplications(instance.getAppName());
      applications.getRegisteredApplications(instance.getAppName()).addInstance(instance);
      if (existingApp != null) {
        logger.debug("Deleted instance {} to the existing apps ", instance.getId());
        existingApp.removeInstance(instance);
        if (existingApp.getInstancesAsIsFromEureka().isEmpty()) {
          applications.removeApplication(existingApp);

代码示例来源:origin: Netflix/eureka

int deltaCount = 0;
for (Application app : delta.getRegisteredApplications()) {
  for (InstanceInfo instance : app.getInstances()) {
    ++deltaCount;
    if (ActionType.ADDED.equals(instance.getActionType())) {
          instance.getId());
      getApplications().getRegisteredApplications(
          instance.getAppName()).addInstance(instance);
    } else if (ActionType.MODIFIED.equals(instance.getActionType())) {
      Application existingApp = getApplications()
          instance.getAppName()).addInstance(instance);
          instance.getId());
      getApplications().getRegisteredApplications(
          instance.getAppName()).removeInstance(instance);

代码示例来源:origin: Netflix/eureka

/**
 * Test that instancesMap in Application and shuffleVirtualHostNameMap in
 * Applications are correctly updated when the last instance is removed from
 * an application and shuffleInstances has been run.
 */
@Test
public void shuffleVirtualHostNameMapLastInstanceTest() {
  DataCenterInfo myDCI = new DataCenterInfo() {
    public DataCenterInfo.Name getName() {
      return DataCenterInfo.Name.MyOwn;
    }
  };
  InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder().setAppName("test")
      .setVIPAddress("test.testname:1").setDataCenterInfo(myDCI).setHostName("test.hostname").build();
  Application application = new Application("TestApp");
  application.addInstance(instanceInfo);
  Applications applications = new Applications();
  applications.addApplication(application);
  applications.shuffleInstances(true);
  List<InstanceInfo> testApp = applications.getInstancesByVirtualHostName("test.testname:1");
  assertEquals(Iterables.getOnlyElement(testApp), application.getByInstanceId("test.hostname"));
  application.removeInstance(instanceInfo);
  assertEquals(0, applications.size());
  applications.shuffleInstances(true);
  testApp = applications.getInstancesByVirtualHostName("test.testname:1");
  assertTrue(testApp.isEmpty());
  assertNull(application.getByInstanceId("test.hostname"));
}

代码示例来源:origin: Netflix/eureka

public int compare(Application l, Application r) {
    return l.getName().compareTo(r.getName());
  }
};

代码示例来源:origin: Netflix/eureka

@Test
public void testRegisteredApplicationsConstructor() {
  DataCenterInfo myDCI = new DataCenterInfo() {
    public DataCenterInfo.Name getName() {
      return DataCenterInfo.Name.MyOwn;
    }
  };
  InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder()
      .setAppName("test")
      .setVIPAddress("test.testname:1")
      .setSecureVIPAddress("securetest.testname:7102")
      .setDataCenterInfo(myDCI)
      .setHostName("test.hostname")
      .build();
  Application application = new Application("TestApp");
  application.addInstance(instanceInfo);
  Applications applications = new Applications("UP_1_", -1L, Arrays.asList(application));
  
  List<Application> appsList = applications.getRegisteredApplications();
  Assert.assertEquals(1, appsList.size());
  Assert.assertTrue(appsList.contains(application));
  Assert.assertEquals(application, applications.getRegisteredApplications(application.getName()));
}

代码示例来源:origin: Netflix/eureka

@Test
public void testMiniAppGet() throws Exception {
  Response response = applicationResource.getApplication(
      Version.V2.name(),
      MediaType.APPLICATION_JSON,
      EurekaAccept.compact.name()
  );
  String json = String.valueOf(response.getEntity());
  DecoderWrapper decoder = CodecWrappers.getDecoder(CodecWrappers.LegacyJacksonJson.class);
  Application decodedApp = decoder.decode(json, Application.class);
  // assert false as one is mini, so should NOT equal
  assertThat(EurekaEntityComparators.equal(testApplication, decodedApp), is(false));
  for (InstanceInfo instanceInfo : testApplication.getInstances()) {
    InstanceInfo decodedInfo = decodedApp.getByInstanceId(instanceInfo.getId());
    assertThat(EurekaEntityComparators.equalMini(instanceInfo, decodedInfo), is(true));
  }
}

代码示例来源:origin: Netflix/eureka

@Test
public void testInstanceFiltering() {
  DataCenterInfo myDCI = new DataCenterInfo() {
    public DataCenterInfo.Name getName() {
      return DataCenterInfo.Name.MyOwn;
    }
  };
  InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder()
      .setAppName("test")
      .setVIPAddress("test.testname:1")
      .setSecureVIPAddress("securetest.testname:7102")
      .setDataCenterInfo(myDCI)
      .setHostName("test.hostname")
      .setStatus(InstanceStatus.DOWN)
      .build();
  Application application = new Application("TestApp");
  application.addInstance(instanceInfo);
  Applications applications = new Applications();
  applications.addApplication(application);
  applications.shuffleInstances(true);
  assertNotNull(applications.getRegisteredApplications("TestApp").getByInstanceId("test.hostname"));
  assertTrue(applications.getInstancesBySecureVirtualHostName("securetest.testname:7102").isEmpty());
  assertTrue(applications.getInstancesBySecureVirtualHostName("test.testname:1").isEmpty());
}

代码示例来源:origin: Netflix/eureka

appsForRemoteRegion.getRegisteredApplications(instanceInfo.getAppName());
if (null == remoteApp) {
  remoteApp = new Application(instanceInfo.getAppName());
  appsForRemoteRegion.addApplication(remoteApp);
remoteApp.addInstance(instanceInfo);
this.removeInstance(instanceInfo, false);
it.remove();

代码示例来源:origin: Netflix/eureka

@Override
public List<InstanceInfo> getInstancesById(String id) {
  List<InstanceInfo> list = Collections.emptyList();
  for (Application app : applications.get().getRegisteredApplications()) {
    InstanceInfo info = app.getByInstanceId(id);
    if (info != null) {
      list.add(info);
      return list;
    }
  }
  return list;
}

代码示例来源:origin: Netflix/eureka

public static Application deepCopyApplication(Application source) {
  Application result = new Application(source.getName());
  deepCopyApplication(source, result, EurekaEntityTransformers.<InstanceInfo>identity());
  return result;
}

代码示例来源:origin: Netflix/eureka

@Override
  public Object unmarshal(HierarchicalStreamReader reader,
              UnmarshallingContext context) {
    Application app = new Application();
    while (reader.hasMoreChildren()) {
      reader.moveDown();
      String nodeName = reader.getNodeName();
      if (ELEM_NAME.equals(nodeName)) {
        app.setName(reader.getValue());
      } else if (NODE_INSTANCE.equals(nodeName)) {
        app.addInstance((InstanceInfo) context.convertAnother(app,
            InstanceInfo.class));
      }
      reader.moveUp();
    }
    return app;
  }
}

代码示例来源:origin: com.netflix.eureka/eureka2-test-utils

private Observable<Void> instanceResource(HttpServerRequest<ByteBuf> request, HttpServerResponse<ByteBuf> response,
                     String appName, String instanceId) {
  Application app = applications.getRegisteredApplications(appName);
  if (app == null) {
    response.setStatus(HttpResponseStatus.NOT_FOUND);
    return Observable.empty();
  }
  if (request.getHttpMethod() == HttpMethod.PUT) {
    return Observable.empty();
  }
  if (request.getHttpMethod() == HttpMethod.DELETE) {
    InstanceInfo instanceInfo = app.getByInstanceId(instanceId);
    app.removeInstance(instanceInfo);
    return Observable.empty();
  }
  return notSupportedError(request, response);
}

相关文章