diff --git a/README.md b/README.md index 5c97452a..69fb2f65 100644 --- a/README.md +++ b/README.md @@ -61,23 +61,25 @@ The quick start gives a basic example of running client and server on the same m 1. create maven project focus-quickstart and add dependencies to pom. ```xml - - com.dinstone.focus - focus-server-photon - 1.1.0 - pom - - - com.dinstone.focus - focus-client-photon - 1.1.0 - pom - - - com.dinstone.focus - focus-serialize-json - 1.1.0 - + + + com.dinstone.focus + focus-server-photon + 1.1.0 + pom + + + com.dinstone.focus + focus-client-photon + 1.1.0 + pom + + + com.dinstone.focus + focus-serialize-json + 1.1.0 + + ``` 2. create FooService interface. diff --git a/focus-server/focus-server-nacos/src/main/java/com/dinstone/focus/server/nacos/NacosServiceResolver.java b/focus-server/focus-server-nacos/src/main/java/com/dinstone/focus/server/nacos/NacosServiceResolver.java index fd2d4da9..c7d9674d 100644 --- a/focus-server/focus-server-nacos/src/main/java/com/dinstone/focus/server/nacos/NacosServiceResolver.java +++ b/focus-server/focus-server-nacos/src/main/java/com/dinstone/focus/server/nacos/NacosServiceResolver.java @@ -25,7 +25,7 @@ public class NacosServiceResolver extends DefaultServiceResolver { - private NamingService namingService; + private final NamingService namingService; public NacosServiceResolver(NacosResolverOptions options) { try { diff --git a/focus-server/focus-server-nacos/src/main/resources/META-INF/services/com.dinstone.focus.server.ResolverFactory b/focus-server/focus-server-nacos/src/main/resources/META-INF/services/com.dinstone.focus.server.ResolverFactory index 4d961c31..db704a71 100644 --- a/focus-server/focus-server-nacos/src/main/resources/META-INF/services/com.dinstone.focus.server.ResolverFactory +++ b/focus-server/focus-server-nacos/src/main/resources/META-INF/services/com.dinstone.focus.server.ResolverFactory @@ -1 +1 @@ -com.dinstone.focus.server.nacos.NacosServiceResolver \ No newline at end of file +com.dinstone.focus.server.nacos.NacosResolverFactory \ No newline at end of file diff --git a/focus-starter/focus-client-starter/src/main/java/com/dinstone/focus/client/starter/ServiceReferenceRegistrar.java b/focus-starter/focus-client-starter/src/main/java/com/dinstone/focus/client/starter/ServiceReferenceRegistrar.java index ab9777a8..125be3e1 100644 --- a/focus-starter/focus-client-starter/src/main/java/com/dinstone/focus/client/starter/ServiceReferenceRegistrar.java +++ b/focus-starter/focus-client-starter/src/main/java/com/dinstone/focus/client/starter/ServiceReferenceRegistrar.java @@ -65,12 +65,13 @@ public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionR AnnotatedBeanDefinition beanDefinition = (AnnotatedBeanDefinition) candidateComponent; AnnotationMetadata annotationMetadata = beanDefinition.getMetadata(); Assert.isTrue(annotationMetadata.isInterface(), - "@FocusReference can only be specified on an interface"); + "@ServiceReference can only be specified on an interface"); Map attributes = annotationMetadata .getAnnotationAttributes(ServiceReference.class.getCanonicalName()); - - registerServiceReference(registry, annotationMetadata, attributes); + if (attributes != null) { + registerServiceReference(registry, annotationMetadata, attributes); + } } } @@ -100,10 +101,11 @@ private void registerServiceReference(BeanDefinitionRegistry registry, Annotatio BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(clazz); GenericBeanDefinition beanDefinition = (GenericBeanDefinition) builder.getBeanDefinition(); - beanDefinition.getConstructorArgumentValues().addGenericArgumentValue(beanDefinition.getBeanClassName()); - beanDefinition.setInstanceSupplier(() -> { - return factoryBean.getObject(); - }); + String beanClassName = beanDefinition.getBeanClassName(); + if (beanClassName != null) { + beanDefinition.getConstructorArgumentValues().addGenericArgumentValue(beanClassName); + } + beanDefinition.setInstanceSupplier(factoryBean::getObject); beanDefinition.setFactoryBeanName(factoryBean.getClass().getSimpleName()); beanDefinition.setLazyInit(true); beanDefinition.setPrimary(true); @@ -111,12 +113,13 @@ private void registerServiceReference(BeanDefinitionRegistry registry, Annotatio } protected Set getBasePackages(AnnotationMetadata metadata) { - Map attributes = metadata.getAnnotationAttributes(EnableFocusClient.class.getCanonicalName()); - Set basePackages = new HashSet<>(); - for (String pkg : (String[]) attributes.get("value")) { - if (StringUtils.hasText(pkg)) { - basePackages.add(pkg); + Map attributes = metadata.getAnnotationAttributes(EnableFocusClient.class.getCanonicalName()); + if (attributes != null) { + for (String pkg : (String[]) attributes.get("value")) { + if (StringUtils.hasText(pkg)) { + basePackages.add(pkg); + } } } if (basePackages.isEmpty()) {