Skip to content

Commit

Permalink
Deprecate DataBindingGrailsPlugin
Browse files Browse the repository at this point in the history
Use DataBindingConfiguration instead, rewriting by Spring Configuration
  • Loading branch information
rainboyan committed Aug 9, 2022
1 parent d103677 commit 3c20c92
Show file tree
Hide file tree
Showing 12 changed files with 210 additions and 202 deletions.
12 changes: 0 additions & 12 deletions grails-plugin-databinding/build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,12 @@
dependencies {
annotationProcessor "io.micronaut:micronaut-inject-java:$micronautVersion"
annotationProcessor "io.micronaut.spring:micronaut-spring-boot-annotation:$micronautSpringVersion"
annotationProcessor "io.micronaut.cache:micronaut-cache-core:$micronautCacheVersion"

compileOnly "io.micronaut:micronaut-inject-java:$micronautVersion"
compileOnly "io.micronaut.spring:micronaut-spring-annotation:$micronautSpringVersion"
compileOnly "io.micronaut.cache:micronaut-cache-core:$micronautCacheVersion"
compileOnly "io.micronaut:micronaut-runtime:$micronautVersion"

api "javax.inject:javax.inject:1"
api project(':grails-core')
api project(':grails-plugin-api')
api project(':grails-plugin-core')
api project(':grails-web')

testImplementation project(':grails-boot')
testImplementation project(':grails-test-suite-base')
testImplementation "io.micronaut.spring:micronaut-spring-context:$micronautSpringVersion"
testImplementation "org.grails:grails-web-testing-support:$testingSupportVersionForTests", {
exclude module:'grails-plugin-codecs'
exclude module:'grails-plugin-rest'
exclude module:'grails-plugin-interceptors'
exclude module:'grails-test'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2004-2019 the original author or authors.
* Copyright 2004-2022 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.
Expand All @@ -16,14 +16,13 @@

package org.grails.databinding.converters;

import grails.core.GrailsApplication;
import grails.databinding.TypedStructuredBindingEditor;
import grails.databinding.converters.FormattedValueConverter;
import grails.databinding.converters.ValueConverter;
import org.grails.databinding.converters.web.LocaleAwareBigDecimalConverter;
import org.grails.databinding.converters.web.LocaleAwareNumberConverter;
import org.grails.plugins.databinding.DataBindingConfigurationProperties;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
Expand All @@ -34,246 +33,247 @@
/**
* Default converters configuration.
*/
@Configuration
@Configuration(proxyBeanMethods = false)
public class DefaultConvertersConfiguration {

private final DataBindingConfigurationProperties configurationProperties;
private final LocaleResolver localResolver;
private final Jsr310ConvertersConfiguration jsr310ConvertersConfiguration;

public DefaultConvertersConfiguration(GrailsApplication grailsApplication, DataBindingConfigurationProperties configurationProperties) {
public DefaultConvertersConfiguration(ObjectProvider<LocaleResolver> localeResolverProvider,
DataBindingConfigurationProperties configurationProperties) {
this.configurationProperties = configurationProperties;
jsr310ConvertersConfiguration = new Jsr310ConvertersConfiguration(configurationProperties);
LocaleResolver localResolver;
try {
localResolver = grailsApplication.getMainContext().getBean(LocaleResolver.class);
} catch (NoSuchBeanDefinitionException e) {
localResolver = null;
}
this.localResolver = localResolver;
this.jsr310ConvertersConfiguration = new Jsr310ConvertersConfiguration(configurationProperties);
this.localResolver = localeResolverProvider.getIfAvailable();
}

/**
* @return The default currency converter
*/
@Bean("defaultCurrencyConverter")
protected CurrencyValueConverter defaultCurrencyConverter() {
@Bean
public CurrencyValueConverter defaultCurrencyConverter() {
return new CurrencyValueConverter();
}

@Bean("defaultGrailsBigDecimalConverter")
protected ValueConverter defaultGrailsBigDecimalConverter() {
@Bean
public ValueConverter defaultGrailsBigDecimalConverter() {
LocaleAwareBigDecimalConverter converter = new LocaleAwareBigDecimalConverter();
converter.setTargetType(BigDecimal.class);
converter.setLocaleResolver(localResolver);
return converter;
}

@Bean("offsetDateTimeConverter")
FormattedValueConverter offsetDateTimeConverter() {
@Bean
public FormattedValueConverter offsetDateTimeConverter() {
return jsr310ConvertersConfiguration.offsetDateTimeConverter();
}

@Bean("offsetDateTimeValueConverter")
ValueConverter offsetDateTimeValueConverter() {
@Bean
public ValueConverter offsetDateTimeValueConverter() {
return jsr310ConvertersConfiguration.offsetDateTimeValueConverter();
}

@Bean("offsetDateTimeStructuredBindingEditor")
TypedStructuredBindingEditor offsetDateTimeStructuredBindingEditor() {
@SuppressWarnings("rawtypes")
@Bean
public TypedStructuredBindingEditor offsetDateTimeStructuredBindingEditor() {
return jsr310ConvertersConfiguration.offsetDateTimeStructuredBindingEditor();
}

@Bean("offsetTimeConverter")
FormattedValueConverter offsetTimeConverter() {
@Bean
public FormattedValueConverter offsetTimeConverter() {
return jsr310ConvertersConfiguration.offsetTimeConverter();
}

@Bean("offsetTimeValueConverter")
ValueConverter offsetTimeValueConverter() {
@Bean
public ValueConverter offsetTimeValueConverter() {
return jsr310ConvertersConfiguration.offsetTimeValueConverter();
}

@Bean("offsetTimeStructuredBindingEditor")
TypedStructuredBindingEditor offsetTimeStructuredBindingEditor() {
@SuppressWarnings("rawtypes")
@Bean
public TypedStructuredBindingEditor offsetTimeStructuredBindingEditor() {
return jsr310ConvertersConfiguration.offsetTimeStructuredBindingEditor();
}

@Bean("localDateTimeConverter")
FormattedValueConverter localDateTimeConverter() {
@Bean
public FormattedValueConverter localDateTimeConverter() {
return jsr310ConvertersConfiguration.localDateTimeConverter();
}

@Bean("localDateTimeValueConverter")
ValueConverter localDateTimeValueConverter() {
@Bean
public ValueConverter localDateTimeValueConverter() {
return jsr310ConvertersConfiguration.localDateTimeValueConverter();
}

@Bean("localDateTimeStructuredBindingEditor")
TypedStructuredBindingEditor localDateTimeStructuredBindingEditor() {
@SuppressWarnings("rawtypes")
@Bean
public TypedStructuredBindingEditor localDateTimeStructuredBindingEditor() {
return jsr310ConvertersConfiguration.localDateTimeStructuredBindingEditor();
}

@Bean("localDateConverter")
FormattedValueConverter localDateConverter() {
@Bean
public FormattedValueConverter localDateConverter() {
return jsr310ConvertersConfiguration.localDateConverter();
}

@Bean("localDateValueConverter")
ValueConverter localDateValueConverter() {
@Bean
public ValueConverter localDateValueConverter() {
return jsr310ConvertersConfiguration.localDateValueConverter();
}

@Bean("localDateStructuredBindingEditor")
TypedStructuredBindingEditor localDateStructuredBindingEditor() {
@SuppressWarnings("rawtypes")
@Bean
public TypedStructuredBindingEditor localDateStructuredBindingEditor() {
return jsr310ConvertersConfiguration.localDateStructuredBindingEditor();
}

@Bean("localTimeConverter")
FormattedValueConverter localTimeConverter() {
@Bean
public FormattedValueConverter localTimeConverter() {
return jsr310ConvertersConfiguration.localTimeConverter();
}

@Bean("localTimeValueConverter")
ValueConverter localTimeValueConverter() {
@Bean
public ValueConverter localTimeValueConverter() {
return jsr310ConvertersConfiguration.localTimeValueConverter();
}

@Bean("localTimeStructuredBindingEditor")
TypedStructuredBindingEditor localTimeStructuredBindingEditor() {
@SuppressWarnings("rawtypes")
@Bean
public TypedStructuredBindingEditor localTimeStructuredBindingEditor() {
return jsr310ConvertersConfiguration.localTimeStructuredBindingEditor();
}

@Bean("zonedDateTimeConverter")
FormattedValueConverter zonedDateTimeConverter() {
@Bean
public FormattedValueConverter zonedDateTimeConverter() {
return jsr310ConvertersConfiguration.zonedDateTimeConverter();
}

@Bean("zonedDateTimeValueConverter")
ValueConverter zonedDateTimeValueConverter() {
@Bean
public ValueConverter zonedDateTimeValueConverter() {
return jsr310ConvertersConfiguration.zonedDateTimeValueConverter();
}

@Bean("zonedDateTimeStructuredBindingEditor")
TypedStructuredBindingEditor zonedDateTimeStructuredBindingEditor() {
@SuppressWarnings("rawtypes")
@Bean
public TypedStructuredBindingEditor zonedDateTimeStructuredBindingEditor() {
return jsr310ConvertersConfiguration.zonedDateTimeStructuredBindingEditor();
}

@Bean("periodValueConverter")
ValueConverter periodValueConverter() {
@Bean
public ValueConverter periodValueConverter() {
return jsr310ConvertersConfiguration.periodValueConverter();
}

@Bean("instantStringValueConverter")
ValueConverter instantStringValueConverter() {
@Bean
public ValueConverter instantStringValueConverter() {
return jsr310ConvertersConfiguration.instantStringValueConverter();
}

@Bean("instantValueConverter")
ValueConverter instantValueConverter() {
@Bean
public ValueConverter instantValueConverter() {
return jsr310ConvertersConfiguration.instantValueConverter();
}

@Bean("defaultUUIDConverter")
protected UUIDConverter defaultuuidConverter() {
@Bean
public UUIDConverter defaultUUIDConverter() {
return new UUIDConverter();
}

@Bean("defaultGrailsBigIntegerConverter")
protected ValueConverter defaultGrailsBigIntegerConverter() {
@Bean
public ValueConverter defaultGrailsBigIntegerConverter() {
LocaleAwareBigDecimalConverter converter = new LocaleAwareBigDecimalConverter();
converter.setTargetType(BigInteger.class);
converter.setLocaleResolver(localResolver);
return converter;
}

@Bean("defaultDateConverter")
protected DateConversionHelper defaultDateConverter() {
@Bean
public DateConversionHelper defaultDateConverter() {
DateConversionHelper converter = new DateConversionHelper();
converter.setDateParsingLenient(configurationProperties.isDateParsingLenient());
converter.setFormatStrings(configurationProperties.getDateFormats());
return converter;
}

@Bean("timeZoneConverter")
protected TimeZoneConverter defaultTimeZoneConverter() {
@Bean
public TimeZoneConverter defaultTimeZoneConverter() {
return new TimeZoneConverter();
}

@Bean("defaultShortConverter")
protected LocaleAwareNumberConverter shortConverter() {
@Bean
public LocaleAwareNumberConverter defaultShortConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(Short.class);
return converter;
}

@Bean("defaultshortConverter")
protected LocaleAwareNumberConverter primitiveShortConverter() {
@Bean
public LocaleAwareNumberConverter defaultshortConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(short.class);
return converter;
}

@Bean("defaultIntegerConverter")
protected LocaleAwareNumberConverter integerConverter() {
@Bean
public LocaleAwareNumberConverter defaultIntegerConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(Integer.class);
return converter;
}

@Bean("defaultintConverter")
protected LocaleAwareNumberConverter primitiveIntConverter() {
@Bean
public LocaleAwareNumberConverter defaultintConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(int.class);
return converter;
}

@Bean("defaultFloatConverter")
protected LocaleAwareNumberConverter floatConverter() {
@Bean
public LocaleAwareNumberConverter defaultFloatConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(Float.class);
return converter;
}

@Bean("defaultfloatConverter")
protected LocaleAwareNumberConverter primitiveFloattConverter() {
@Bean
public LocaleAwareNumberConverter defaultfloatConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(float.class);
return converter;
}

@Bean("defaultLongConverter")
protected LocaleAwareNumberConverter longConverter() {
@Bean
public LocaleAwareNumberConverter defaultLongConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(Long.class);
return converter;
}

@Bean("defaultlongConverter")
protected LocaleAwareNumberConverter primitiveLongConverter() {
@Bean
public LocaleAwareNumberConverter defaultlongConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(long.class);
return converter;
}

@Bean("defaultDoubleConverter")
protected LocaleAwareNumberConverter doubleConverter() {
@Bean
public LocaleAwareNumberConverter defaultDoubleConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(Double.class);
return converter;
}

@Bean("defaultdoubleConverter")
protected LocaleAwareNumberConverter primitiveDoubleConverter() {
@Bean
public LocaleAwareNumberConverter defaultdoubleConverter() {
final LocaleAwareNumberConverter converter = new LocaleAwareNumberConverter();
converter.setLocaleResolver(localResolver);
converter.setTargetType(double.class);
Expand Down
Loading

0 comments on commit 3c20c92

Please sign in to comment.