diff --git a/grails-plugin-mimetypes/src/main/groovy/org/grails/plugins/web/mime/MimeTypesConfiguration.groovy b/grails-plugin-mimetypes/src/main/groovy/org/grails/plugins/web/mime/MimeTypesConfiguration.groovy index aa2a224402f..ff0aca43536 100644 --- a/grails-plugin-mimetypes/src/main/groovy/org/grails/plugins/web/mime/MimeTypesConfiguration.groovy +++ b/grails-plugin-mimetypes/src/main/groovy/org/grails/plugins/web/mime/MimeTypesConfiguration.groovy @@ -27,7 +27,6 @@ import groovy.transform.CompileStatic import groovy.transform.TypeCheckingMode import org.grails.web.mime.DefaultMimeTypeResolver import org.grails.web.mime.DefaultMimeUtility -import org.springframework.context.ApplicationContext import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.Primary @@ -43,12 +42,10 @@ import org.springframework.context.annotation.Primary class MimeTypesConfiguration { private final GrailsApplication grailsApplication - private final ApplicationContext applicationContext private final List mimeTypeProviders MimeTypesConfiguration(GrailsApplication grailsApplication, List mimeTypeProviders) { this.grailsApplication = grailsApplication - this.applicationContext = grailsApplication.getMainContext() this.mimeTypeProviders = mimeTypeProviders } @@ -86,7 +83,7 @@ class MimeTypesConfiguration { final List mimeTypeProviders = this.mimeTypeProviders processProviders(mimes, mimeTypeProviders) - final Map childTypes = applicationContext.getBeansOfType(MimeTypeProvider.class) + final Map childTypes = grailsApplication.mainContext.getBeansOfType(MimeTypeProvider.class) processProviders(mimes, childTypes.values()) mimeTypes = mimes.toArray(new MimeType[0]) } diff --git a/grails-plugin-mimetypes/src/test/groovy/grails/web/mime/MimeUtilitySpec.groovy b/grails-plugin-mimetypes/src/test/groovy/grails/web/mime/MimeUtilitySpec.groovy index db043070deb..71497b6db79 100644 --- a/grails-plugin-mimetypes/src/test/groovy/grails/web/mime/MimeUtilitySpec.groovy +++ b/grails-plugin-mimetypes/src/test/groovy/grails/web/mime/MimeUtilitySpec.groovy @@ -1,8 +1,10 @@ package grails.web.mime import grails.core.DefaultGrailsApplication -import org.grails.plugins.web.mime.MimeTypesFactoryBean +import grails.spring.BeanBuilder +import org.grails.plugins.web.mime.MimeTypesConfiguration import org.grails.web.mime.DefaultMimeUtility +import org.springframework.context.ApplicationContext import spock.lang.Specification /** @@ -26,10 +28,15 @@ class MimeUtilitySpec extends Specification { multipartForm: 'multipart/form-data' ] - final factory = new MimeTypesFactoryBean(grailsApplication: ga) + def bb = new BeanBuilder() + bb.beans { + grailsApplication = ga + mimeConfiguration(MimeTypesConfiguration, ga, []) + } + ga.setApplicationContext(bb.createApplicationContext()) - def mimeTypes = factory.getObject() - return new DefaultMimeUtility(mimeTypes) + MimeTypesConfiguration mimeTypesConfiguration = ga.mainContext.getBean(MimeTypesConfiguration) + return new DefaultMimeUtility(mimeTypesConfiguration.mimeTypes()) } void "Test get mime by extension method"() { diff --git a/grails-plugin-mimetypes/src/test/groovy/org/grails/web/servlet/mvc/RequestAndResponseMimeTypesApiSpec.groovy b/grails-plugin-mimetypes/src/test/groovy/org/grails/web/servlet/mvc/RequestAndResponseMimeTypesApiSpec.groovy index e42fb4ca2bb..360cb08f74f 100644 --- a/grails-plugin-mimetypes/src/test/groovy/org/grails/web/servlet/mvc/RequestAndResponseMimeTypesApiSpec.groovy +++ b/grails-plugin-mimetypes/src/test/groovy/org/grails/web/servlet/mvc/RequestAndResponseMimeTypesApiSpec.groovy @@ -9,7 +9,6 @@ import grails.web.mime.MimeType import org.grails.config.PropertySourcesConfig import org.grails.core.lifecycle.ShutdownOperations import org.grails.plugins.web.mime.MimeTypesConfiguration -import org.grails.plugins.web.mime.MimeTypesFactoryBean import org.grails.web.mime.DefaultMimeUtility import org.springframework.context.ApplicationContext import org.springframework.context.support.GenericApplicationContext diff --git a/grails-test-suite-uber/src/test/groovy/org/grails/plugins/web/rest/render/BaseDomainClassRendererSpec.groovy b/grails-test-suite-uber/src/test/groovy/org/grails/plugins/web/rest/render/BaseDomainClassRendererSpec.groovy index a2214ffc4c5..77db50fca89 100644 --- a/grails-test-suite-uber/src/test/groovy/org/grails/plugins/web/rest/render/BaseDomainClassRendererSpec.groovy +++ b/grails-test-suite-uber/src/test/groovy/org/grails/plugins/web/rest/render/BaseDomainClassRendererSpec.groovy @@ -7,6 +7,7 @@ import grails.persistence.Entity import grails.rest.Linkable import grails.rest.Resource import grails.rest.render.Renderer +import grails.spring.BeanBuilder import grails.util.GrailsWebMockUtil import grails.web.CamelCaseUrlConverter import grails.web.mapping.LinkGenerator @@ -15,13 +16,15 @@ import grails.web.mime.MimeType import org.grails.config.PropertySourcesConfig import org.grails.datastore.mapping.keyvalue.mapping.config.KeyValueMappingContext import org.grails.datastore.mapping.model.MappingContext -import org.grails.plugins.web.mime.MimeTypesFactoryBean +import org.grails.plugins.web.mime.MimeTypesConfiguration import org.grails.support.MockApplicationContext import org.grails.web.mapping.DefaultLinkGenerator import org.grails.web.mapping.DefaultUrlMappingEvaluator import org.grails.web.mapping.DefaultUrlMappingsHolder import org.grails.web.mime.DefaultMimeUtility import org.grails.web.servlet.mvc.GrailsWebRequest +import org.springframework.context.ApplicationContext +import org.springframework.context.support.GenericApplicationContext import org.springframework.core.env.MapPropertySource import org.springframework.core.env.MutablePropertySources import org.springframework.mock.web.MockHttpServletRequest @@ -89,11 +92,19 @@ abstract class BaseDomainClassRendererSpec extends Specification { return new PropertySourcesConfig(propertySources) } - protected static MimeType[] buildMimeTypes(application) { - def mimeTypesFactory = new MimeTypesFactoryBean() - mimeTypesFactory.grailsApplication = application - def mimeTypes = mimeTypesFactory.getObject() - return mimeTypes + private MimeType[] buildMimeTypes(application) { + final def mainContext = new GenericApplicationContext() + mainContext.refresh() + application.setApplicationContext(mainContext) + + def bb = new BeanBuilder() + bb.beans { + grailsApplication = application + mimeConfiguration(MimeTypesConfiguration, application, []) + } + final ApplicationContext context = bb.createApplicationContext() + final MimeTypesConfiguration mimeTypesConfiguration = context.getBean(MimeTypesConfiguration) + mimeTypesConfiguration.mimeTypes() } protected static String toCompactXml(String xml) {