diff --git a/common/config-common/pom.xml b/common/config-common/pom.xml
new file mode 100644
index 00000000..efda9803
--- /dev/null
+++ b/common/config-common/pom.xml
@@ -0,0 +1,26 @@
+
+
+ 4.0.0
+ config-common
+ 1.0.0-SNAPSHOT
+ geode-common
+ Function Common Configuration Components
+
+
+ org.springframework.cloud.fn
+ spring-functions-parent
+ 1.0.0-SNAPSHOT
+ ../../spring-functions-parent
+
+
+
+ org.springframework.boot
+ spring-boot
+
+
+ org.springframework.integration
+ spring-integration-core
+
+
+
+
diff --git a/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/SpelExpressionConverterConfiguration.java b/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/SpelExpressionConverterConfiguration.java
new file mode 100644
index 00000000..ac3309c5
--- /dev/null
+++ b/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/SpelExpressionConverterConfiguration.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2020-2020 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.fn.common.config;
+
+import java.beans.Introspector;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.core.convert.converter.Converter;
+import org.springframework.expression.EvaluationContext;
+import org.springframework.expression.Expression;
+import org.springframework.expression.ParseException;
+import org.springframework.expression.spel.standard.SpelExpression;
+import org.springframework.expression.spel.standard.SpelExpressionParser;
+import org.springframework.integration.config.IntegrationConverter;
+import org.springframework.integration.expression.SpelPropertyAccessorRegistrar;
+import org.springframework.integration.json.JsonPropertyAccessor;
+
+@Configuration
+public class SpelExpressionConverterConfiguration {
+ @Bean
+ public static SpelPropertyAccessorRegistrar spelPropertyAccessorRegistrar() {
+ return (new SpelPropertyAccessorRegistrar())
+ .add(Introspector.decapitalize(JsonPropertyAccessor.class.getSimpleName()), new JsonPropertyAccessor());
+ }
+
+ @Bean
+ @ConfigurationPropertiesBinding
+ @IntegrationConverter
+ public Converter spelConverter() {
+ return new SpelExpressionConverterConfiguration.SpelConverter();
+ }
+
+ public static class SpelConverter implements Converter {
+ private SpelExpressionParser parser = new SpelExpressionParser();
+
+ @Autowired
+ @Qualifier("integrationEvaluationContext")
+ @Lazy
+ private EvaluationContext evaluationContext;
+
+ public SpelConverter() {
+ }
+
+ public Expression convert(String source) {
+ try {
+ Expression expression = this.parser.parseExpression(source);
+ if (expression instanceof SpelExpression) {
+ ((SpelExpression) expression).setEvaluationContext(this.evaluationContext);
+ }
+
+ return expression;
+ }
+ catch (ParseException var3) {
+ throw new IllegalArgumentException(
+ String.format("Could not convert '%s' into a SpEL expression", source), var3);
+ }
+ }
+ }
+}
diff --git a/common/config-common/src/main/resources/META-INF/spring.factories b/common/config-common/src/main/resources/META-INF/spring.factories
new file mode 100644
index 00000000..b41d7bb4
--- /dev/null
+++ b/common/config-common/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ org.springframework.cloud.fn.common.config.SpelExpressionConverterConfiguration
diff --git a/pom.xml b/pom.xml
index 81ffc9de..a6ca032f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,6 +41,7 @@
+ common/config-common
common/ftp-common
common/function-test-support
common/tcp-common