diff --git a/grace-plugin-databinding/build.gradle b/grace-plugin-databinding/build.gradle index f1614eb7e6..7a1ca6e210 100644 --- a/grace-plugin-databinding/build.gradle +++ b/grace-plugin-databinding/build.gradle @@ -2,6 +2,7 @@ dependencies { api project(":grace-api") compileOnly project(":grace-plugin-api") api project(":grace-web") + api project(":grace-web-databinding") compileOnly libs.jakarta.servlet api libs.spring.boot.autoconfigure diff --git a/grace-web-databinding/README.md b/grace-web-databinding/README.md new file mode 100644 index 0000000000..f6250408d6 --- /dev/null +++ b/grace-web-databinding/README.md @@ -0,0 +1,2 @@ +## grace-web-databinding + diff --git a/grace-web-databinding/build.gradle b/grace-web-databinding/build.gradle new file mode 100644 index 0000000000..bf8ed5f9d2 --- /dev/null +++ b/grace-web-databinding/build.gradle @@ -0,0 +1,12 @@ +dependencies { + api project(":grace-databinding") + api project(":grace-util") + api project(":grace-web") + + compileOnly libs.grace.datastore.core + compileOnly libs.jakarta.annotation.api + compileOnlyApi libs.jakarta.servlet + + testImplementation libs.jakarta.servlet + testImplementation libs.spring.test +} diff --git a/grace-web/src/main/groovy/grails/web/databinding/DataBindingUtils.java b/grace-web-databinding/src/main/groovy/grails/web/databinding/DataBindingUtils.java similarity index 100% rename from grace-web/src/main/groovy/grails/web/databinding/DataBindingUtils.java rename to grace-web-databinding/src/main/groovy/grails/web/databinding/DataBindingUtils.java diff --git a/grace-web/src/main/groovy/grails/web/databinding/GrailsWebDataBinder.groovy b/grace-web-databinding/src/main/groovy/grails/web/databinding/GrailsWebDataBinder.groovy similarity index 100% rename from grace-web/src/main/groovy/grails/web/databinding/GrailsWebDataBinder.groovy rename to grace-web-databinding/src/main/groovy/grails/web/databinding/GrailsWebDataBinder.groovy diff --git a/grace-web/src/main/groovy/org/grails/databinding/bindingsource/DataBindingSourceCreationException.java b/grace-web-databinding/src/main/groovy/org/grails/databinding/bindingsource/DataBindingSourceCreationException.java similarity index 100% rename from grace-web/src/main/groovy/org/grails/databinding/bindingsource/DataBindingSourceCreationException.java rename to grace-web-databinding/src/main/groovy/org/grails/databinding/bindingsource/DataBindingSourceCreationException.java diff --git a/grace-web/src/main/groovy/org/grails/databinding/bindingsource/DataBindingSourceCreator.groovy b/grace-web-databinding/src/main/groovy/org/grails/databinding/bindingsource/DataBindingSourceCreator.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/databinding/bindingsource/DataBindingSourceCreator.groovy rename to grace-web-databinding/src/main/groovy/org/grails/databinding/bindingsource/DataBindingSourceCreator.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/ASTDatabindingHelper.java b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/ASTDatabindingHelper.java similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/ASTDatabindingHelper.java rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/ASTDatabindingHelper.java diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/DataBindingEventMulticastListener.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/DataBindingEventMulticastListener.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/DataBindingEventMulticastListener.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/DataBindingEventMulticastListener.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/DataBindingLazyMetaPropertyMap.java b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/DataBindingLazyMetaPropertyMap.java similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/DataBindingLazyMetaPropertyMap.java rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/DataBindingLazyMetaPropertyMap.java diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/DefaultASTDatabindingHelper.java b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/DefaultASTDatabindingHelper.java similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/DefaultASTDatabindingHelper.java rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/DefaultASTDatabindingHelper.java diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/GrailsWebDataBindingListener.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/GrailsWebDataBindingListener.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/GrailsWebDataBindingListener.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/GrailsWebDataBindingListener.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/SpringConversionServiceAdapter.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/SpringConversionServiceAdapter.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/SpringConversionServiceAdapter.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/SpringConversionServiceAdapter.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/AbstractRequestBodyDataBindingSourceCreator.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/AbstractRequestBodyDataBindingSourceCreator.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/AbstractRequestBodyDataBindingSourceCreator.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/AbstractRequestBodyDataBindingSourceCreator.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/DataBindingSourceRegistry.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/DataBindingSourceRegistry.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/DataBindingSourceRegistry.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/DataBindingSourceRegistry.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/DefaultDataBindingSourceCreator.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/DefaultDataBindingSourceCreator.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/DefaultDataBindingSourceCreator.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/DefaultDataBindingSourceCreator.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/DefaultDataBindingSourceRegistry.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/DefaultDataBindingSourceRegistry.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/DefaultDataBindingSourceRegistry.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/DefaultDataBindingSourceRegistry.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/HalGPathResultMap.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/HalGPathResultMap.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/HalGPathResultMap.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/HalGPathResultMap.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/HalJsonDataBindingSourceCreator.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/HalJsonDataBindingSourceCreator.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/HalJsonDataBindingSourceCreator.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/HalJsonDataBindingSourceCreator.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/HalXmlDataBindingSourceCreator.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/HalXmlDataBindingSourceCreator.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/HalXmlDataBindingSourceCreator.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/HalXmlDataBindingSourceCreator.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/InvalidRequestBodyException.java b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/InvalidRequestBodyException.java similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/InvalidRequestBodyException.java rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/InvalidRequestBodyException.java diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/JsonApiDataBindingSourceCreator.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/JsonApiDataBindingSourceCreator.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/JsonApiDataBindingSourceCreator.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/JsonApiDataBindingSourceCreator.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/JsonDataBindingSourceCreator.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/JsonDataBindingSourceCreator.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/JsonDataBindingSourceCreator.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/JsonDataBindingSourceCreator.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/XmlDataBindingSourceCreator.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/XmlDataBindingSourceCreator.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/bindingsource/XmlDataBindingSourceCreator.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/bindingsource/XmlDataBindingSourceCreator.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/converters/AbstractStructuredBindingEditor.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/converters/AbstractStructuredBindingEditor.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/converters/AbstractStructuredBindingEditor.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/converters/AbstractStructuredBindingEditor.groovy diff --git a/grace-web/src/main/groovy/org/grails/web/databinding/converters/ByteArrayMultipartFileValueConverter.groovy b/grace-web-databinding/src/main/groovy/org/grails/web/databinding/converters/ByteArrayMultipartFileValueConverter.groovy similarity index 100% rename from grace-web/src/main/groovy/org/grails/web/databinding/converters/ByteArrayMultipartFileValueConverter.groovy rename to grace-web-databinding/src/main/groovy/org/grails/web/databinding/converters/ByteArrayMultipartFileValueConverter.groovy diff --git a/grace-web/src/test/groovy/org/grails/web/databinding/DataBindingLazyMetaPropertyMapTests.groovy b/grace-web-databinding/src/test/groovy/org/grails/web/databinding/DataBindingLazyMetaPropertyMapTests.groovy similarity index 100% rename from grace-web/src/test/groovy/org/grails/web/databinding/DataBindingLazyMetaPropertyMapTests.groovy rename to grace-web-databinding/src/test/groovy/org/grails/web/databinding/DataBindingLazyMetaPropertyMapTests.groovy diff --git a/grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/AbstractRequestBodyDataBindingSourceCreatorSpec.groovy b/grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/AbstractRequestBodyDataBindingSourceCreatorSpec.groovy similarity index 100% rename from grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/AbstractRequestBodyDataBindingSourceCreatorSpec.groovy rename to grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/AbstractRequestBodyDataBindingSourceCreatorSpec.groovy diff --git a/grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/HalGPathResultMapSpec.groovy b/grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/HalGPathResultMapSpec.groovy similarity index 100% rename from grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/HalGPathResultMapSpec.groovy rename to grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/HalGPathResultMapSpec.groovy diff --git a/grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/hal/json/HalJsonDataBindingSourceCreatorSpec.groovy b/grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/hal/json/HalJsonDataBindingSourceCreatorSpec.groovy similarity index 100% rename from grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/hal/json/HalJsonDataBindingSourceCreatorSpec.groovy rename to grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/hal/json/HalJsonDataBindingSourceCreatorSpec.groovy diff --git a/grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/json/JsonDataBindingSourceCreatorSpec.groovy b/grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/json/JsonDataBindingSourceCreatorSpec.groovy similarity index 100% rename from grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/json/JsonDataBindingSourceCreatorSpec.groovy rename to grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/json/JsonDataBindingSourceCreatorSpec.groovy diff --git a/grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/json/api/JsonApiDataBindingSourceCreatorSpec.groovy b/grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/json/api/JsonApiDataBindingSourceCreatorSpec.groovy similarity index 100% rename from grace-web/src/test/groovy/org/grails/web/databinding/bindingsource/json/api/JsonApiDataBindingSourceCreatorSpec.groovy rename to grace-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/json/api/JsonApiDataBindingSourceCreatorSpec.groovy diff --git a/grace-web/build.gradle b/grace-web/build.gradle index c2e1da4f3c..0bde859c9a 100644 --- a/grace-web/build.gradle +++ b/grace-web/build.gradle @@ -1,7 +1,6 @@ dependencies { api project(":grace-api") api project(":grace-core") - api project(":grace-databinding") api project(":grace-encoder") compileOnly project(":grace-plugin-api") api project(":grace-util") diff --git a/grace-web/src/main/groovy/grails/web/servlet/mvc/GrailsParameterMap.java b/grace-web/src/main/groovy/grails/web/servlet/mvc/GrailsParameterMap.java index 988d5589f5..15b6cecc69 100644 --- a/grace-web/src/main/groovy/grails/web/servlet/mvc/GrailsParameterMap.java +++ b/grace-web/src/main/groovy/grails/web/servlet/mvc/GrailsParameterMap.java @@ -37,7 +37,6 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; -import grails.databinding.DataBinder; import grails.io.IOUtils; import grails.util.TypeConvertingMap; import grails.web.mime.MimeType; @@ -72,6 +71,8 @@ public class GrailsParameterMap extends TypeConvertingMap implements Cloneable { public static final Object[] EMPTY_ARGS = new Object[0]; + public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.S"; + /** * Does not populate the GrailsParameterMap from the request but instead uses the supplied values. * @@ -302,7 +303,7 @@ private Date lazyEvaluateDateParam(Object key) { } } - DateFormat dateFormat = new SimpleDateFormat(DataBinder.DEFAULT_DATE_FORMAT, + DateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMAT, LocaleContextHolder.getLocale()); StructuredDateEditor editor = new StructuredDateEditor(dateFormat, true); try { diff --git a/grace-web/src/main/groovy/org/grails/web/beans/PropertyEditorRegistryUtils.groovy b/grace-web/src/main/groovy/org/grails/web/beans/PropertyEditorRegistryUtils.groovy index b151f04869..abd2bc9b6e 100644 --- a/grace-web/src/main/groovy/org/grails/web/beans/PropertyEditorRegistryUtils.groovy +++ b/grace-web/src/main/groovy/org/grails/web/beans/PropertyEditorRegistryUtils.groovy @@ -28,7 +28,6 @@ import org.springframework.beans.propertyeditors.CustomNumberEditor import org.springframework.web.context.WebApplicationContext import org.springframework.web.context.support.WebApplicationContextUtils -import grails.databinding.DataBinder import grails.util.Environment import org.grails.web.binding.CompositeEditor @@ -44,6 +43,7 @@ class PropertyEditorRegistryUtils { private static final String PROPERTY_EDITOR_REGISTRARS = 'org.codehaus.groovy.grails.PROPERTY_EDITOR_REGISTRARS' private static final String JSON_DATE_FORMAT = "yyyy-MM-dd'T'hh:mm:ss'Z'" + private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.S"; /** * Registers all known @@ -57,7 +57,7 @@ class PropertyEditorRegistryUtils { NumberFormat floatFormat = NumberFormat.getInstance(locale) NumberFormat integerFormat = NumberFormat.getIntegerInstance(locale) - SimpleDateFormat dateFormat = new SimpleDateFormat(DataBinder.DEFAULT_DATE_FORMAT, locale) + SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMAT, locale) registry.registerCustomEditor(Date, new CustomDateEditor(dateFormat, true)) registry.registerCustomEditor(BigDecimal, new CustomNumberEditor(BigDecimal, floatFormat, true)) diff --git a/settings.gradle b/settings.gradle index a6a8f9b84f..782d76349f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -40,6 +40,7 @@ include ( 'grace-views-json', 'grace-views-markup', 'grace-web', + 'grace-web-databinding', 'grace-web-gsp', 'grace-web-mvc', 'grace-web-rest',