public void invokeAfterPropertiesSet() throws Exception { feign.Contract feignContract = null; String[] beanNameArray = this.applicationContext.getBeanNamesForType(feign.Contract.class); for (int i = 0; beanNameArray != null && i < beanNameArray.length; i++) { String beanName = beanNameArray[i]; Object beanInst = this.applicationContext.getBean(beanName); if (CompensableFeignContract.class.isInstance(beanInst)) { continue; } else if (feignContract != null) { throw new RuntimeException("There are more than one feign.Contract exists!"); } else { feignContract = (feign.Contract) beanInst; } } if (feignContract == null) { feignContract = new SpringMvcContract(); } // end-if (feignContract == null) this.delegate = feignContract; }
methods = new RequestMethod[] { RequestMethod.GET }; checkOne(method, methods, "method"); data.template().method(Request.HttpMethod.valueOf(methods[0].name())); checkAtMostOne(method, methodMapping.value(), "value"); if (methodMapping.value().length > 0) { String pathValue = emptyToNull(methodMapping.value()[0]); if (pathValue != null) { pathValue = resolve(pathValue); parseProduces(data, method, methodMapping); parseConsumes(data, method, methodMapping); parseHeaders(data, method, methodMapping);
public SpringMvcContract( List<AnnotatedParameterProcessor> annotatedParameterProcessors, ConversionService conversionService) { Assert.notNull(annotatedParameterProcessors, "Parameter processors can not be null."); Assert.notNull(conversionService, "ConversionService can not be null."); List<AnnotatedParameterProcessor> processors; if (!annotatedParameterProcessors.isEmpty()) { processors = new ArrayList<>(annotatedParameterProcessors); } else { processors = getDefaultAnnotatedArgumentsProcessors(); } this.annotatedArgumentProcessors = toAnnotatedArgumentProcessorMap(processors); this.conversionService = conversionService; this.convertingExpanderFactory = new ConvertingExpanderFactory(conversionService); }
processParameterAnnotation = synthesizeWithMethodParameterNameAsFallbackValue( parameterAnnotation, method, paramIndex); isHttpAnnotation |= processor.processArgument(context, TypeDescriptor typeDescriptor = createTypeDescriptor(method, paramIndex); if (conversionService.canConvert(typeDescriptor, STRING_TYPE_DESCRIPTOR)) { Param.Expander expander =
methods = new RequestMethod[] { RequestMethod.GET }; checkOne(method, methods, "method"); data.template().method(Request.HttpMethod.valueOf(methods[0].name())); checkAtMostOne(method, methodMapping.value(), "value"); if (methodMapping.value().length > 0) { String pathValue = emptyToNull(methodMapping.value()[0]); if (pathValue != null) { pathValue = resolve(pathValue); parseProduces(data, method, methodMapping); parseConsumes(data, method, methodMapping); parseHeaders(data, method, methodMapping);
public SpringMvcContract( List<AnnotatedParameterProcessor> annotatedParameterProcessors, ConversionService conversionService) { Assert.notNull(annotatedParameterProcessors, "Parameter processors can not be null."); Assert.notNull(conversionService, "ConversionService can not be null."); List<AnnotatedParameterProcessor> processors; if (!annotatedParameterProcessors.isEmpty()) { processors = new ArrayList<>(annotatedParameterProcessors); } else { processors = getDefaultAnnotatedArgumentsProcessors(); } this.annotatedArgumentProcessors = toAnnotatedArgumentProcessorMap(processors); this.conversionService = conversionService; this.convertingExpanderFactory = new ConvertingExpanderFactory(conversionService); }
processParameterAnnotation = synthesizeWithMethodParameterNameAsFallbackValue( parameterAnnotation, method, paramIndex); isHttpAnnotation |= processor.processArgument(context, TypeDescriptor typeDescriptor = createTypeDescriptor(method, paramIndex); if (conversionService.canConvert(typeDescriptor, STRING_TYPE_DESCRIPTOR)) { Param.Expander expander =
@Bean @ConditionalOnMissingBean public Contract reactiveFeignContract() { return new SpringMvcContract(); }
@org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean(feign.Contract.class) @org.springframework.context.annotation.Bean public feign.Contract feignContract() { return new SpringMvcContract(); }
@Bean @ConditionalOnMissingBean public Contract feignContract(ConversionService feignConversionService) { return new SpringMvcContract(this.parameterProcessors, feignConversionService); }
@Bean @ConditionalOnMissingBean public Contract feignContract(ConversionService feignConversionService) { return new SpringMvcContract(this.parameterProcessors, feignConversionService); }
public void invokeAfterPropertiesSet() throws Exception { feign.Contract feignContract = null; String[] beanNameArray = this.applicationContext.getBeanNamesForType(feign.Contract.class); for (int i = 0; beanNameArray != null && i < beanNameArray.length; i++) { String beanName = beanNameArray[i]; Object beanInst = this.applicationContext.getBean(beanName); if (TransactionFeignContract.class.isInstance(beanInst)) { continue; } else if (feignContract != null) { throw new RuntimeException("There are more than one feign.Contract exists!"); } else { feignContract = (feign.Contract) beanInst; } } if (feignContract == null) { feignContract = new SpringMvcContract(); } // end-if (feignContract == null) this.delegate = feignContract; }
@Bean public TagApi getTagApi(Decoder decoder, Encoder encoder, Client client) { TagApi tagApi = Feign.builder().client(client) .encoder(encoder) .decoder(decoder) .contract(new SpringMvcContract()) .target(TagApi.class, jboneConfiguration.getRpc().getTagServer().getFeign().getProtocol() + "://" + jboneConfiguration.getRpc().getTagServer().getFeign().getName().toUpperCase()); return tagApi; }
@Bean public UserApi getUserApi(Decoder decoder, Encoder encoder, Client client){ UserApi userApi = HystrixFeign.builder().client(client).setterFactory(getCommandSetter()) .encoder(encoder) .decoder(decoder).contract(new SpringMvcContract()) .target(UserApi.class, jboneConfiguration.getRpc().getSysServer().getFeign().getProtocol() + "://" + jboneConfiguration.getRpc().getSysServer().getFeign().getName().toUpperCase(),getUserApiFallbackFactory()); return userApi; }
@Bean public ItemReadApi getItemReadApi(Decoder decoder, Encoder encoder, Client client){ ItemReadApi itemReadApi = HystrixFeign.builder().client(client).setterFactory(getCommandSetter()) .encoder(encoder) .decoder(decoder).contract(new SpringMvcContract()) .target(ItemReadApi.class, jboneConfiguration.getRpc().getItemServer().getFeign().getProtocol() + "://" + jboneConfiguration.getRpc().getItemServer().getFeign().getName().toUpperCase(),getItemReadApiFallbackFactory()); return itemReadApi; }
@Bean public ItemCategoryReadApi getItemCategoryReadApi(Decoder decoder, Encoder encoder, Client client){ ItemCategoryReadApi itemCategoryReadApi = HystrixFeign.builder().client(client).setterFactory(getCommandSetter()) .encoder(encoder) .decoder(decoder).contract(new SpringMvcContract()) .target(ItemCategoryReadApi.class, jboneConfiguration.getRpc().getItemServer().getFeign().getProtocol() + "://" + jboneConfiguration.getRpc().getItemServer().getFeign().getName().toUpperCase(),getItemCategoryReadApiFallbackFactory()); return itemCategoryReadApi; }
@Bean public DecorationReadApi getShopReadApi(Decoder decoder, Encoder encoder, Client client){ DecorationReadApi decorationReadApi = HystrixFeign.builder().client(client).setterFactory(getCommandSetter()) .encoder(encoder) .decoder(decoder).contract(new SpringMvcContract()) .target(DecorationReadApi.class, jboneConfiguration.getRpc().getDecorationServer().getFeign().getProtocol() + "://" + jboneConfiguration.getRpc().getDecorationServer().getFeign().getName().toUpperCase(),getDecorationReadApiFallbackFactory()); return decorationReadApi; }
@Bean public ShopReadApi getShopReadApi(Decoder decoder, Encoder encoder, Client client){ ShopReadApi shopReadApi = HystrixFeign.builder().client(client).setterFactory(getCommandSetter()) .encoder(encoder) .decoder(decoder).contract(new SpringMvcContract()) .target(ShopReadApi.class, jboneConfiguration.getRpc().getShopServer().getFeign().getProtocol() + "://" + jboneConfiguration.getRpc().getShopServer().getFeign().getName().toUpperCase(),getShopReadApiFallbackFactory()); return shopReadApi; }