diff --git a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/ConfigurableJasperReportsView.java b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/ConfigurableJasperReportsView.java index 88d9a41a0eb..50cc6f8bd17 100644 --- a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/ConfigurableJasperReportsView.java +++ b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/ConfigurableJasperReportsView.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 the original author or authors. + * Copyright 2002-2010 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. @@ -19,6 +19,7 @@ package org.springframework.web.servlet.view.jasperreports; import net.sf.jasperreports.engine.JRExporter; import org.springframework.beans.BeanUtils; +import org.springframework.util.Assert; /** * Configurable JasperReports View, allowing to specify the JasperReports exporter @@ -33,7 +34,7 @@ import org.springframework.beans.BeanUtils; */ public class ConfigurableJasperReportsView extends AbstractJasperReportsSingleFormatView { - private Class exporterClass; + private Class exporterClass; private boolean useWriter = true; @@ -43,11 +44,8 @@ public class ConfigurableJasperReportsView extends AbstractJasperReportsSingleFo * {@link IllegalArgumentException} if the Class doesn't implement * {@link JRExporter}. Required setting, as it does not have a default. */ - public void setExporterClass(Class exporterClass) { - if (!(JRExporter.class.isAssignableFrom(exporterClass))) { - throw new IllegalArgumentException( - "Exporter class [" + exporterClass.getName() + "] does not implement JRExporter"); - } + public void setExporterClass(Class exporterClass) { + Assert.isAssignable(JRExporter.class, exporterClass); this.exporterClass = exporterClass; } @@ -78,7 +76,7 @@ public class ConfigurableJasperReportsView extends AbstractJasperReportsSingleFo */ @Override protected JRExporter createExporter() { - return (JRExporter) BeanUtils.instantiateClass(this.exporterClass); + return BeanUtils.instantiateClass(this.exporterClass); } /** diff --git a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatView.java b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatView.java index c6593dc5ec7..8f28671ccf9 100644 --- a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatView.java +++ b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatView.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009 the original author or authors. + * Copyright 2002-2010 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. @@ -82,7 +82,7 @@ public class JasperReportsMultiFormatView extends AbstractJasperReportsView { * Stores the format mappings, with the format discriminator * as key and the corresponding view class as value. */ - private Map formatMappings; + private Map> formatMappings; /** * Stores the mappings of mapping keys to Content-Disposition header values. @@ -95,7 +95,7 @@ public class JasperReportsMultiFormatView extends AbstractJasperReportsView { * with a default set of mappings. */ public JasperReportsMultiFormatView() { - this.formatMappings = new HashMap(4); + this.formatMappings = new HashMap>(4); this.formatMappings.put("csv", JasperReportsCsvView.class); this.formatMappings.put("html", JasperReportsHtmlView.class); this.formatMappings.put("pdf", JasperReportsPdfView.class); @@ -120,7 +120,7 @@ public class JasperReportsMultiFormatView extends AbstractJasperReportsView { *
  • xls - JasperReportsXlsView
  • * */ - public void setFormatMappings(Map formatMappings) { + public void setFormatMappings(Map> formatMappings) { if (CollectionUtils.isEmpty(formatMappings)) { throw new IllegalArgumentException("'formatMappings' must not be empty"); } @@ -173,7 +173,7 @@ public class JasperReportsMultiFormatView extends AbstractJasperReportsView { logger.debug("Rendering report using format mapping key [" + format + "]"); } - Class viewClass = this.formatMappings.get(format); + Class viewClass = this.formatMappings.get(format); if (viewClass == null) { throw new IllegalArgumentException("Format discriminator [" + format + "] is not a configured mapping"); } @@ -182,7 +182,7 @@ public class JasperReportsMultiFormatView extends AbstractJasperReportsView { logger.debug("Rendering report using view class [" + viewClass.getName() + "]"); } - AbstractJasperReportsView view = (AbstractJasperReportsView) BeanUtils.instantiateClass(viewClass); + AbstractJasperReportsView view = BeanUtils.instantiateClass(viewClass); // Can skip most initialization since all relevant URL processing // has been done - just need to convert parameters on the sub view. view.setExporterParameters(getExporterParameters()); diff --git a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/JasperReportsViewResolver.java b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/JasperReportsViewResolver.java index db22a77e1f8..c24fc71cf1d 100644 --- a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/JasperReportsViewResolver.java +++ b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/jasperreports/JasperReportsViewResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2010 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. @@ -21,8 +21,6 @@ import java.util.Map; import java.util.Properties; import javax.sql.DataSource; -import net.sf.jasperreports.engine.design.JRCompiler; - import org.springframework.web.servlet.view.AbstractUrlBasedView; import org.springframework.web.servlet.view.UrlBasedViewResolver; @@ -48,8 +46,6 @@ public class JasperReportsViewResolver extends UrlBasedViewResolver { private DataSource jdbcDataSource; - private JRCompiler reportCompiler; - /** * Requires the view class to be a subclass of {@link AbstractJasperReportsView}. diff --git a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractConfigurableJasperReportsViewTests.java b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractConfigurableJasperReportsViewTests.java index 705155519c2..9dbdfb31227 100644 --- a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractConfigurableJasperReportsViewTests.java +++ b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractConfigurableJasperReportsViewTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2010 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. @@ -23,16 +23,6 @@ import org.springframework.context.support.StaticApplicationContext; */ public abstract class AbstractConfigurableJasperReportsViewTests extends AbstractJasperReportsViewTests { - public void testSetInvalidExporterClass() throws Exception { - try { - new ConfigurableJasperReportsView().setExporterClass(String.class); - fail("Should not be able to set invalid view class."); - } - catch (IllegalArgumentException ex) { - // success - } - } - public void testNoConfiguredExporter() throws Exception { ConfigurableJasperReportsView view = new ConfigurableJasperReportsView(); view.setUrl(COMPILED_REPORT); @@ -44,4 +34,5 @@ public abstract class AbstractConfigurableJasperReportsViewTests extends Abstrac // success } } + } diff --git a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewTests.java b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewTests.java index 2d375002e41..e91dc32e572 100644 --- a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewTests.java +++ b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2010 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. @@ -78,7 +78,8 @@ public class JasperReportsMultiFormatViewTests extends AbstractJasperReportsView JasperReportsMultiFormatView view = (JasperReportsMultiFormatView) getView(UNCOMPILED_REPORT); - Map mappings = new HashMap(); + Map> mappings = + new HashMap>(); mappings.put("test", ExporterParameterTestView.class); Map exporterParameters = new HashMap(); diff --git a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewWithCustomMappingsTests.java b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewWithCustomMappingsTests.java index 1a448e00325..3bb3b30bd04 100644 --- a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewWithCustomMappingsTests.java +++ b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewWithCustomMappingsTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2010 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. @@ -28,7 +28,8 @@ public class JasperReportsMultiFormatViewWithCustomMappingsTests extends JasperR protected AbstractJasperReportsView getViewImplementation() { JasperReportsMultiFormatView view = new JasperReportsMultiFormatView(); view.setFormatKey("fmt"); - Map mappings = new HashMap(); + Map> mappings = + new HashMap>(); mappings.put("csv", JasperReportsCsvView.class); mappings.put("comma-separated", JasperReportsCsvView.class); mappings.put("html", JasperReportsHtmlView.class);