@Override
 public JPackage apply(ApiResourceMetadata controllerMetadata, JCodeModel generatableType) {
   if (StringUtils.hasText(controllerMetadata.getBasePackage())) {
     return generatableType._package(controllerMetadata.getBasePackage());
   }
   return generatableType.rootPackage();
 }
  private String getClientName(ApiResourceMetadata controllerMetadata) {
    String name = controllerMetadata.getResourceName();

    if (name == null || name.length() == 0) {
      return "Client";
    }
    return name.substring(0, 1).toLowerCase() + name.substring(1) + "Client";
  }
  @Override
  public JAnnotationUse apply(
      ApiResourceMetadata controllerMetadata, JDefinedClass generatableType) {
    JAnnotationUse feignClient = generatableType.annotate(FeignClient.class);

    feignClient.param("url", controllerMetadata.getControllerUrl());
    feignClient.param("name", getClientName(controllerMetadata));

    return feignClient;
  }