Move SDG Function annotation configuration extension classes to o.s.g.function.config.
Remove the org.springframework.data.gemfire.function.config package. Rebase AbstractFunctionExecutionAutoConfigurationExtension on the new o.s.d.g.function.config.FunctionExecutionBeanDefinitionRegitrar by simply overriding the newAnnotationBasedFunctionExecutionConfigurationSource() method in order to configure the auto-configuration packages as the base packages used to search for POJO-based Function Execution interfaces.
This commit is contained in:
@@ -24,8 +24,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.data.gemfire.function.config.EnableGemfireFunctions;
|
||||
import org.springframework.data.gemfire.function.config.GemFireFunctionExecutionAutoConfigurationRegistrar;
|
||||
import org.springframework.data.gemfire.function.execution.GemfireFunctionOperations;
|
||||
import org.springframework.geode.function.config.GemFireFunctionExecutionAutoConfigurationRegistrar;
|
||||
|
||||
/**
|
||||
* Spring Boot {@link EnableAutoConfiguration auto-configuration} enabling Apache Geode's Function Execution
|
||||
@@ -38,7 +38,7 @@ import org.springframework.data.gemfire.function.execution.GemfireFunctionOperat
|
||||
* @see org.springframework.context.annotation.Import
|
||||
* @see org.springframework.data.gemfire.function.config.EnableGemfireFunctions
|
||||
* @see org.springframework.data.gemfire.function.config.EnableGemfireFunctionExecutions
|
||||
* @see org.springframework.data.gemfire.function.config.GemFireFunctionExecutionAutoConfigurationRegistrar
|
||||
* @see org.springframework.geode.function.config.GemFireFunctionExecutionAutoConfigurationRegistrar
|
||||
* @see org.springframework.data.gemfire.function.execution.GemfireFunctionOperations
|
||||
* @see org.springframework.geode.boot.autoconfigure.ClientCacheAutoConfiguration
|
||||
* @since 1.0.0
|
||||
|
||||
@@ -14,53 +14,43 @@
|
||||
* permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.data.gemfire.function.config;
|
||||
package org.springframework.geode.function.config;
|
||||
|
||||
import static org.springframework.data.gemfire.util.RuntimeExceptionFactory.newIllegalStateException;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.apache.geode.cache.execute.Execution;
|
||||
import org.apache.geode.cache.execute.Function;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.BeanFactoryAware;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurationPackages;
|
||||
import org.springframework.core.type.AnnotationMetadata;
|
||||
import org.springframework.core.type.StandardAnnotationMetadata;
|
||||
import org.springframework.data.gemfire.function.config.AbstractFunctionExecutionConfigurationSource;
|
||||
import org.springframework.data.gemfire.function.config.AnnotationFunctionExecutionConfigurationSource;
|
||||
import org.springframework.data.gemfire.function.config.FunctionExecutionBeanDefinitionRegistrar;
|
||||
|
||||
/**
|
||||
* The AbstractFunctionExecutionAutoConfigurationExtension class...
|
||||
* The {@link AbstractFunctionExecutionAutoConfigurationExtension} class extends SDG's {@link FunctionExecutionBeanDefinitionRegistrar}
|
||||
* to redefine the location of application POJO {@link Function} {@link Execution} interfaces.
|
||||
*
|
||||
* @author John Blum
|
||||
* @see org.apache.geode.cache.execute.Execution
|
||||
* @see org.apache.geode.cache.execute.Function
|
||||
* @see org.springframework.beans.factory.BeanFactory
|
||||
* @see org.springframework.beans.factory.BeanFactoryAware
|
||||
* @see org.springframework.boot.autoconfigure.AutoConfigurationPackages
|
||||
* @see org.springframework.core.type.AnnotationMetadata
|
||||
* @see org.springframework.data.gemfire.function.config.FunctionExecutionBeanDefinitionRegistrar
|
||||
* @since 1.0.0
|
||||
*/
|
||||
// TODO replace this class once SD Lovelace is GA and SBDG is rebased on SD Lovelace
|
||||
public abstract class AbstractFunctionExecutionAutoConfigurationExtension
|
||||
extends FunctionExecutionBeanDefinitionRegistrar implements BeanFactoryAware {
|
||||
|
||||
private BeanFactory beanFactory;
|
||||
|
||||
@Override
|
||||
public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry registry) {
|
||||
registerBeanDefinitions(newAnnotationBasedFunctionExecutionConfigurationSource(annotationMetadata), registry);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private AbstractFunctionExecutionConfigurationSource newAnnotationBasedFunctionExecutionConfigurationSource(
|
||||
AnnotationMetadata annotationMetadata) {
|
||||
|
||||
StandardAnnotationMetadata metadata =
|
||||
new StandardAnnotationMetadata(getConfiguration(), true);
|
||||
|
||||
return new AnnotationFunctionExecutionConfigurationSource(metadata) {
|
||||
|
||||
@Override
|
||||
public Iterable<String> getBasePackages() {
|
||||
return AutoConfigurationPackages.get(getBeanFactory());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("all")
|
||||
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
|
||||
@@ -76,4 +66,20 @@ public abstract class AbstractFunctionExecutionAutoConfigurationExtension
|
||||
|
||||
protected abstract Class<?> getConfiguration();
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@Override
|
||||
protected AbstractFunctionExecutionConfigurationSource newAnnotationBasedFunctionExecutionConfigurationSource(
|
||||
AnnotationMetadata annotationMetadata) {
|
||||
|
||||
StandardAnnotationMetadata metadata =
|
||||
new StandardAnnotationMetadata(getConfiguration(), true);
|
||||
|
||||
return new AnnotationFunctionExecutionConfigurationSource(metadata) {
|
||||
|
||||
@Override
|
||||
public Iterable<String> getBasePackages() {
|
||||
return AutoConfigurationPackages.get(getBeanFactory());
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -14,12 +14,23 @@
|
||||
* permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.data.gemfire.function.config;
|
||||
package org.springframework.geode.function.config;
|
||||
|
||||
import org.apache.geode.cache.execute.Execution;
|
||||
import org.apache.geode.cache.execute.Function;
|
||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
||||
import org.springframework.data.gemfire.function.config.EnableGemfireFunctionExecutions;
|
||||
|
||||
/**
|
||||
* The GemFireFunctionExecutionAutoConfigurationRegistrar class...
|
||||
* The {@link GemFireFunctionExecutionAutoConfigurationRegistrar} class is a Spring {@link ImportBeanDefinitionRegistrar}
|
||||
* used to register SDG POJO interfaces defining Apache Geode/Pivotal GemFire
|
||||
* {@link Function} {@link Execution Executions}
|
||||
*
|
||||
* @author John Blum
|
||||
* @see org.apache.geode.cache.execute.Execution
|
||||
* @see org.apache.geode.cache.execute.Function
|
||||
* @see org.springframework.data.gemfire.function.config.EnableGemfireFunctionExecutions
|
||||
* @see org.springframework.geode.function.config.AbstractFunctionExecutionAutoConfigurationExtension
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public class GemFireFunctionExecutionAutoConfigurationRegistrar
|
||||
Reference in New Issue
Block a user