diff --git a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-document.adoc b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-document.adoc index 73e1e7c27e5..d1e50c6e53a 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-document.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-document.adoc @@ -4,10 +4,14 @@ Spring offers ways to return output other than HTML, including PDF and Excel spreadsheets. This section describes how to use those features. +WARNING: As of Spring Framework 7.0, view classes in the `org.springframework.web.servlet.view.document` +package are deprecated. Instead, libraries can adapt this existing code to provide support with their own `*View` types. +As an alternative, applications can perform direct rendering in web handlers. [[mvc-view-document-intro]] == Introduction to Document Views + An HTML page is not always the best way for the user to view the model output, and Spring makes it simple to generate a PDF document or an Excel spreadsheet dynamically from the model data. The document is the view and is streamed from the diff --git a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-feeds.adoc b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-feeds.adoc index 825dfd46607..78069fc588c 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-feeds.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-feeds.adoc @@ -1,6 +1,10 @@ [[mvc-view-feeds]] = RSS and Atom +WARNING: As of Spring Framework 7.0, view classes in the `org.springframework.web.servlet.view.feed` +package are deprecated. Instead, libraries can adapt this existing code to provide support with their own `*View` types. +As an alternative, applications can perform direct rendering in web handlers. + Both `AbstractAtomFeedView` and `AbstractRssFeedView` inherit from the `AbstractFeedView` base class and are used to provide Atom and RSS Feed views, respectively. They are based on https://rometools.github.io/rome/[ROME] project and are located in the diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfStamperView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfStamperView.java index 0dbaa283dc8..535561cb89a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfStamperView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfStamperView.java @@ -45,7 +45,10 @@ import org.springframework.web.servlet.view.AbstractUrlBasedView; * @author Juergen Hoeller * @since 2.5.4 * @see AbstractPdfView + * @deprecated since 7.0. Libraries or applications can provide their own {@code View} + * class or perform rendering in web handlers directly. */ +@Deprecated(since = "7.0", forRemoval = true) public abstract class AbstractPdfStamperView extends AbstractUrlBasedView { public AbstractPdfStamperView(){ diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfView.java index e81b63fe922..be08857b1f5 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfView.java @@ -48,7 +48,10 @@ import org.springframework.web.servlet.view.AbstractView; * @author Juergen Hoeller * @author Jean-Pierre Pawlak * @see AbstractPdfStamperView + * @deprecated since 7.0. Libraries or applications can provide their own {@code View} + * class or perform rendering in web handlers directly. */ +@Deprecated(since = "7.0", forRemoval = true) public abstract class AbstractPdfView extends AbstractView { /** diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsView.java index faf796e710b..a840e11b7b6 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsView.java @@ -36,7 +36,10 @@ import org.springframework.web.servlet.view.AbstractView; * * @author Juergen Hoeller * @since 4.2 + * @deprecated since 7.0. Libraries or applications can provide their own {@code View} + * class or perform rendering in web handlers directly. */ +@Deprecated(since = "7.0", forRemoval = true) public abstract class AbstractXlsView extends AbstractView { /** diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxStreamingView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxStreamingView.java index 94c3b7bcd5c..2c2dca23967 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxStreamingView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxStreamingView.java @@ -33,7 +33,11 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook; * * @author Juergen Hoeller * @since 4.2 + * @deprecated since 7.0. Libraries or applications can provide their own {@code View} + * class or perform rendering in web handlers directly. */ +@Deprecated(since = "7.0", forRemoval = true) +@SuppressWarnings("removal") public abstract class AbstractXlsxStreamingView extends AbstractXlsxView { /** diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxView.java index 802a542ee5c..cbcd2fb60d7 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxView.java @@ -31,7 +31,11 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; * * @author Juergen Hoeller * @since 4.2 + * @deprecated since 7.0. Libraries or applications can provide their own {@code View} + * class or perform rendering in web handlers directly. */ +@Deprecated(since = "7.0", forRemoval = true) +@SuppressWarnings("removal") public abstract class AbstractXlsxView extends AbstractXlsView { /** diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java index ca59283e0bf..c05cb8a8ccb 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java @@ -43,7 +43,11 @@ import jakarta.servlet.http.HttpServletResponse; * @see #buildFeedMetadata * @see #buildFeedEntries * @see Atom Syndication Format + * @deprecated since 7.0. Libraries or applications can provide their own {@code View} + * class or perform rendering in web handlers directly. */ +@Deprecated(since = "7.0", forRemoval = true) +@SuppressWarnings("removal") public abstract class AbstractAtomFeedView extends AbstractFeedView { /** diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractFeedView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractFeedView.java index abd279f7dbb..ad016d2dfec 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractFeedView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractFeedView.java @@ -46,7 +46,10 @@ import org.springframework.web.servlet.view.AbstractView; * @param the {@link WireFeed} type * @see AbstractRssFeedView * @see AbstractAtomFeedView + * @deprecated since 7.0. Libraries or applications can provide their own {@code View} + * class or perform rendering in web handlers directly. */ +@Deprecated(since = "7.0", forRemoval = true) public abstract class AbstractFeedView extends AbstractView { @Override diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractRssFeedView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractRssFeedView.java index b00a4034f85..59b14b64839 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractRssFeedView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractRssFeedView.java @@ -44,7 +44,11 @@ import org.springframework.http.MediaType; * @since 3.0 * @see #buildFeedMetadata * @see #buildFeedItems + * @deprecated since 7.0. Libraries or applications can provide their own {@code View} + * class or perform rendering in web handlers directly. */ +@Deprecated(since = "7.0", forRemoval = true) +@SuppressWarnings("removal") public abstract class AbstractRssFeedView extends AbstractFeedView { public AbstractRssFeedView() { diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/document/XlsViewTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/document/XlsViewTests.java index 37bac0a3e77..88439e716e4 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/document/XlsViewTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/document/XlsViewTests.java @@ -42,6 +42,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Juergen Hoeller * @since 4.2 */ +@SuppressWarnings("removal") class XlsViewTests { private final MockHttpServletRequest request = new MockHttpServletRequest(); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/AtomFeedViewTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/AtomFeedViewTests.java index ac88d2b3b5f..21a53bbc2cb 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/AtomFeedViewTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/AtomFeedViewTests.java @@ -37,6 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author Arjen Poutsma */ +@SuppressWarnings("removal") class AtomFeedViewTests { private final AbstractAtomFeedView view = new MyAtomFeedView(); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/RssFeedViewTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/RssFeedViewTests.java index 650e789de34..9f00e4ac54e 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/RssFeedViewTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/RssFeedViewTests.java @@ -37,6 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author Arjen Poutsma */ +@SuppressWarnings("removal") class RssFeedViewTests { private final AbstractRssFeedView view = new MyRssFeedView();