From 3b92644c6e9450e0dd6a7dc864ccbe83fcacbb01 Mon Sep 17 00:00:00 2001 From: Maxim Solodovnik Date: Sun, 22 Mar 2026 18:29:34 +0700 Subject: [PATCH 1/5] Jasperreports are updated to 7.x Signed-off-by: Maxim Solodovnik --- .../jasperreports-examples/pom.xml | 20 +- .../examples/JasperReportsApplication.java | 52 +++- .../examples/ReportLinksPage.java | 44 ++- .../jasperreports/examples/SimplePdfPage.html | 11 +- .../jasperreports/examples/SimplePdfPage.java | 27 +- .../examples/WebappDataSource.java | 105 +++---- .../jasperreports/WebappReport.jasper | Bin 0 -> 24306 bytes .../jasperreports/WebappReport.jrxml | 88 ++++++ .../jasperreports/WebappReport_v6.jrxml} | 0 .../jasperreports}/jasperreports.gif | Bin .../main/webapp/reports/WebappReport.jasper | Bin 24550 -> 0 bytes jasperreports-parent/jasperreports/pom.xml | 8 + .../jasperreports/EmbeddedJRReport.java | 9 +- .../jasperreports/JRImageResource.java | 39 +-- .../wicketstuff/jasperreports/JRResource.java | 271 ++++++++---------- .../handlers/PdfResourceHandler.java | 8 +- .../handlers/TextResourceHandler.java | 22 +- .../handlers/XlsResourceHandler.java | 8 +- pom.xml | 12 +- 19 files changed, 406 insertions(+), 318 deletions(-) create mode 100644 jasperreports-parent/jasperreports-examples/src/main/resources/jasperreports/WebappReport.jasper create mode 100644 jasperreports-parent/jasperreports-examples/src/main/resources/jasperreports/WebappReport.jrxml rename jasperreports-parent/jasperreports-examples/src/main/{jasperreports/WebappReport.jrxml => resources/jasperreports/WebappReport_v6.jrxml} (100%) rename jasperreports-parent/jasperreports-examples/src/main/{webapp/images => resources/jasperreports}/jasperreports.gif (100%) delete mode 100644 jasperreports-parent/jasperreports-examples/src/main/webapp/reports/WebappReport.jasper diff --git a/jasperreports-parent/jasperreports-examples/pom.xml b/jasperreports-parent/jasperreports-examples/pom.xml index ebeb35421c..0578683bf4 100644 --- a/jasperreports-parent/jasperreports-examples/pom.xml +++ b/jasperreports-parent/jasperreports-examples/pom.xml @@ -17,7 +17,7 @@ JasperReports integration components and resources for Wicket. - ${project.build.sourceDirectory}/../webapp/reports + ${project.build.directory}/reports true true true @@ -62,6 +62,22 @@ org.slf4j slf4j-reload4j - + + + + org.eclipse.jetty + jetty-maven-plugin + + + ${jasperreportsDirectory} + + + src/main/webapp + ${jasperreportsDirectory} + + + + + diff --git a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/JasperReportsApplication.java b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/JasperReportsApplication.java index ad89bb6000..21acf4f754 100644 --- a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/JasperReportsApplication.java +++ b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/JasperReportsApplication.java @@ -1,14 +1,14 @@ /* * $Id$ * $Revision$ $Date$ - * + * * ==================================================================== Licensed * under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the * License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -17,40 +17,68 @@ */ package org.wicketstuff.jasperreports.examples; +import java.io.File; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; import java.time.Duration; import org.apache.wicket.Page; import org.apache.wicket.protocol.http.WebApplication; +import net.sf.jasperreports.engine.JasperCompileManager; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.design.JasperDesign; +import net.sf.jasperreports.engine.export.JRXmlExporter; +import net.sf.jasperreports.engine.util.JRLoader; +import net.sf.jasperreports.engine.xml.JRXmlLoader; + /** * Wicket application class for jasper reports example. - * + * * @author Eelco Hillenius */ -public class JasperReportsApplication extends WebApplication -{ +public class JasperReportsApplication extends WebApplication { /** * Constructor. */ - public JasperReportsApplication() - { + public JasperReportsApplication() { } /** * @see org.apache.wicket.protocol.http.WebApplication#init() */ @Override - protected void init() - { + protected void init() { + getCspSettings().blocking().disabled(); getResourceSettings().setResourcePollFrequency(Duration.ofSeconds(1)); + + final File base = new File(System.getProperty("jasperreportsDirectory")); + final File reportFile = new File(base, "WebappReport.jasper"); + try { + if (!base.exists()) { + base.mkdirs(); + } + try (InputStream rep = getClass().getResourceAsStream("/jasperreports/WebappReport.jasper")) { + Files.copy(rep, reportFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + } + final File images = new File(base, "../images"); + if (!images.exists()) { + images.mkdirs(); + } + try (InputStream rep = getClass().getResourceAsStream("/jasperreports/jasperreports.gif")) { + Files.copy(rep, new File(images, "jasperreports.gif").toPath(), StandardCopyOption.REPLACE_EXISTING); + } + } catch (Exception e) { + throw new RuntimeException(e); + } } /** * @see org.apache.wicket.Application#getHomePage() */ @Override - public Class getHomePage() - { + public Class getHomePage() { return Index.class; } } diff --git a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/ReportLinksPage.java b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/ReportLinksPage.java index 31c56381b1..3ae10f4c56 100644 --- a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/ReportLinksPage.java +++ b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/ReportLinksPage.java @@ -12,15 +12,11 @@ */ package org.wicketstuff.jasperreports.examples; -import jakarta.servlet.ServletContext; - import java.io.File; -import java.util.HashMap; import java.util.Map; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.link.ResourceLink; -import org.apache.wicket.protocol.http.WebApplication; import org.wicketstuff.jasperreports.JRConcreteResource; import org.wicketstuff.jasperreports.JRImageResource; import org.wicketstuff.jasperreports.JRResource; @@ -32,51 +28,48 @@ /** * Simple Jasper reports example with PDF output and a jasper reports panel.. - * + * * @author Eelco Hillenius */ -public class ReportLinksPage extends WebPage -{ +public class ReportLinksPage extends WebPage { private static final long serialVersionUID = 1L; /** * Constructor. */ - public ReportLinksPage() - { - ServletContext context = ((WebApplication)getApplication()).getServletContext(); - final File reportFile = new File(context.getRealPath("/reports/WebappReport.jasper")); + public ReportLinksPage() { + final File base = new File(System.getProperty("jasperreportsDirectory")); + final File reportFile = new File(base, "WebappReport.jasper"); - final Map parameters = new HashMap(); - parameters.put("BaseDir", new File(context.getRealPath("/reports"))); + final Map parameters = Map.of("BaseDir", base); JRResource pdfResource = new JRConcreteResource(reportFile, - new PdfResourceHandler()).setReportParameters(parameters).setReportDataSource( - new WebappDataSource()); + new PdfResourceHandler()).setReportParameters(parameters).setReportDataSource( + new WebappDataSource()); add(new ResourceLink("linkToPdf", pdfResource)); JRResource rtfResource = new JRConcreteResource(reportFile, - new RtfResourceHandler()).setReportParameters(parameters).setReportDataSource( - new WebappDataSource()); + new RtfResourceHandler()).setReportParameters(parameters).setReportDataSource( + new WebappDataSource()); add(new ResourceLink("linkToRtf", rtfResource)); JRResource htmlResource = new JRConcreteResource(reportFile, - new HtmlResourceHandler()).setReportParameters(parameters).setReportDataSource( - new WebappDataSource()); + new HtmlResourceHandler()).setReportParameters(parameters).setReportDataSource( + new WebappDataSource()); add(new ResourceLink("linkToHtml", htmlResource)); JRResource textResource = new JRConcreteResource(reportFile, - new TextResourceHandler()).setReportParameters(parameters).setReportDataSource( - new WebappDataSource()); + new TextResourceHandler()).setReportParameters(parameters).setReportDataSource( + new WebappDataSource()); add(new ResourceLink("linkToText", textResource)); JRResource imageResource = new JRImageResource(reportFile).setReportParameters(parameters) - .setReportDataSource(new WebappDataSource()); + .setReportDataSource(new WebappDataSource()); add(new ResourceLink("linkToImage", imageResource)); JRResource csvResource = new JRConcreteResource(reportFile, - new CsvResourceHandler()).setReportParameters(parameters).setReportDataSource( - new WebappDataSource()); + new CsvResourceHandler()).setReportParameters(parameters).setReportDataSource( + new WebappDataSource()); add(new ResourceLink("linkToCsv", csvResource)); } @@ -84,8 +77,7 @@ public ReportLinksPage() * @see org.apache.wicket.Component#isVersioned() */ @Override - public boolean isVersioned() - { + public boolean isVersioned() { return false; } } \ No newline at end of file diff --git a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.html b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.html index dca6c4989b..bf0ef335b5 100644 --- a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.html +++ b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.html @@ -3,14 +3,19 @@ xml:lang="en" lang="en"> WicketStuff JasperReports Integration - Embedded PDF +
Before
- - - +
After diff --git a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.java b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.java index 9478dbe715..5d332dd519 100644 --- a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.java +++ b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.java @@ -12,14 +12,10 @@ */ package org.wicketstuff.jasperreports.examples; -import jakarta.servlet.ServletContext; - import java.io.File; -import java.util.HashMap; import java.util.Map; import org.apache.wicket.markup.html.WebPage; -import org.apache.wicket.protocol.http.WebApplication; import org.wicketstuff.jasperreports.EmbeddedJRReport; import org.wicketstuff.jasperreports.JRConcreteResource; import org.wicketstuff.jasperreports.JRResource; @@ -27,26 +23,22 @@ /** * Simple Jasper reports example with PDF output and a jasper reports panel.. - * + * * @author Eelco Hillenius */ -public class SimplePdfPage extends WebPage -{ +public class SimplePdfPage extends WebPage { private static final long serialVersionUID = 1L; /** * Constructor. */ - public SimplePdfPage() - { - ServletContext context = ((WebApplication)getApplication()).getServletContext(); - final File reportFile = new File(context.getRealPath("/reports/WebappReport.jasper")); + public SimplePdfPage() { + final File base = new File(System.getProperty("jasperreportsDirectory")); + final File reportFile = new File(base, "WebappReport.jasper"); - final Map parameters = new HashMap(); - parameters.put("BaseDir", new File(context.getRealPath("/reports"))); - JRResource pdfResource = new JRConcreteResource(reportFile, - new PdfResourceHandler()).setReportParameters(parameters).setReportDataSource( - new WebappDataSource()); + JRResource pdfResource = new JRConcreteResource(reportFile, new PdfResourceHandler()) + .setReportParameters(Map.of("BaseDir", base)) + .setReportDataSource(new WebappDataSource()); add(new EmbeddedJRReport("report", pdfResource)); } @@ -54,8 +46,7 @@ public SimplePdfPage() * @see org.apache.wicket.Component#isVersioned() */ @Override - public boolean isVersioned() - { + public boolean isVersioned() { return false; } } \ No newline at end of file diff --git a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/WebappDataSource.java b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/WebappDataSource.java index 9a3f4119c9..56522dff54 100644 --- a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/WebappDataSource.java +++ b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/WebappDataSource.java @@ -5,21 +5,21 @@ * * JasperReports - Free Java report-generating library. * Copyright (C) 2001-2009 JasperSoft Corporation http://www.jaspersoft.com - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - * + * * JasperSoft Corporation * 539 Bryant Street, Suite 100 * San Francisco, CA 94107 @@ -33,101 +33,84 @@ import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRField; - /** * @author Teodor Danciu (teodord@users.sourceforge.net) * @version $Id: WebappDataSource.java 2692 2009-03-24 17:17:32Z teodord $ */ -public class WebappDataSource implements Serializable, JRDataSource -{ - - +public class WebappDataSource implements Serializable, JRDataSource { private static final long serialVersionUID = 1L; /** * */ - private Object[][] data = { { "Berne", new Integer(22), "Bill Ott", "250 - 20th Ave." }, - { "Berne", new Integer(9), "James Schneider", "277 Seventh Av." }, - { "Boston", new Integer(32), "Michael Ott", "339 College Av." }, - { "Boston", new Integer(23), "Julia Heiniger", "358 College Av." }, - { "Chicago", new Integer(39), "Mary Karsen", "202 College Av." }, - { "Chicago", new Integer(35), "George Karsen", "412 College Av." }, - { "Chicago", new Integer(11), "Julia White", "412 Upland Pl." }, - { "Dallas", new Integer(47), "Janet Fuller", "445 Upland Pl." }, - { "Dallas", new Integer(43), "Susanne Smith", "2 Upland Pl." }, - { "Dallas", new Integer(40), "Susanne Miller", "440 - 20th Ave." }, - { "Dallas", new Integer(36), "John Steel", "276 Upland Pl." }, - { "Dallas", new Integer(37), "Michael Clancy", "19 Seventh Av." }, - { "Dallas", new Integer(19), "Susanne Heiniger", "86 - 20th Ave." }, - { "Dallas", new Integer(10), "Anne Fuller", "135 Upland Pl." }, - { "Dallas", new Integer(4), "Sylvia Ringer", "365 College Av." }, - { "Dallas", new Integer(0), "Laura Steel", "429 Seventh Av." }, - { "Lyon", new Integer(38), "Andrew Heiniger", "347 College Av." }, - { "Lyon", new Integer(28), "Susanne White", "74 - 20th Ave." }, - { "Lyon", new Integer(17), "Laura Ott", "443 Seventh Av." }, - { "Lyon", new Integer(2), "Anne Miller", "20 Upland Pl." }, - { "New York", new Integer(46), "Andrew May", "172 Seventh Av." }, - { "New York", new Integer(44), "Sylvia Ott", "361 College Av." }, - { "New York", new Integer(41), "Bill King", "546 College Av." }, - { "Oslo", new Integer(45), "Janet May", "396 Seventh Av." }, - { "Oslo", new Integer(42), "Robert Ott", "503 Seventh Av." }, - { "Paris", new Integer(25), "Sylvia Steel", "269 College Av." }, - { "Paris", new Integer(18), "Sylvia Fuller", "158 - 20th Ave." }, - { "Paris", new Integer(5), "Laura Miller", "294 Seventh Av." }, - { "San Francisco", new Integer(48), "Robert White", "549 Seventh Av." }, - { "San Francisco", new Integer(7), "James Peterson", "231 Upland Pl." } }; + private Object[][] data = { { "Berne", Integer.valueOf(22), "Bill Ott", "250 - 20th Ave." }, + { "Berne", Integer.valueOf(9), "James Schneider", "277 Seventh Av." }, + { "Boston", Integer.valueOf(32), "Michael Ott", "339 College Av." }, + { "Boston", Integer.valueOf(23), "Julia Heiniger", "358 College Av." }, + { "Chicago", Integer.valueOf(39), "Mary Karsen", "202 College Av." }, + { "Chicago", Integer.valueOf(35), "George Karsen", "412 College Av." }, + { "Chicago", Integer.valueOf(11), "Julia White", "412 Upland Pl." }, + { "Dallas", Integer.valueOf(47), "Janet Fuller", "445 Upland Pl." }, + { "Dallas", Integer.valueOf(43), "Susanne Smith", "2 Upland Pl." }, + { "Dallas", Integer.valueOf(40), "Susanne Miller", "440 - 20th Ave." }, + { "Dallas", Integer.valueOf(36), "John Steel", "276 Upland Pl." }, + { "Dallas", Integer.valueOf(37), "Michael Clancy", "19 Seventh Av." }, + { "Dallas", Integer.valueOf(19), "Susanne Heiniger", "86 - 20th Ave." }, + { "Dallas", Integer.valueOf(10), "Anne Fuller", "135 Upland Pl." }, + { "Dallas", Integer.valueOf(4), "Sylvia Ringer", "365 College Av." }, + { "Dallas", Integer.valueOf(0), "Laura Steel", "429 Seventh Av." }, + { "Lyon", Integer.valueOf(38), "Andrew Heiniger", "347 College Av." }, + { "Lyon", Integer.valueOf(28), "Susanne White", "74 - 20th Ave." }, + { "Lyon", Integer.valueOf(17), "Laura Ott", "443 Seventh Av." }, + { "Lyon", Integer.valueOf(2), "Anne Miller", "20 Upland Pl." }, + { "New York", Integer.valueOf(46), "Andrew May", "172 Seventh Av." }, + { "New York", Integer.valueOf(44), "Sylvia Ott", "361 College Av." }, + { "New York", Integer.valueOf(41), "Bill King", "546 College Av." }, + { "Oslo", Integer.valueOf(45), "Janet May", "396 Seventh Av." }, + { "Oslo", Integer.valueOf(42), "Robert Ott", "503 Seventh Av." }, + { "Paris", Integer.valueOf(25), "Sylvia Steel", "269 College Av." }, + { "Paris", Integer.valueOf(18), "Sylvia Fuller", "158 - 20th Ave." }, + { "Paris", Integer.valueOf(5), "Laura Miller", "294 Seventh Av." }, + { "San Francisco", Integer.valueOf(48), "Robert White", "549 Seventh Av." }, + { "San Francisco", Integer.valueOf(7), "James Peterson", "231 Upland Pl." } }; private int index = -1; - /** * */ - public WebappDataSource() - { + public WebappDataSource() { } - /** * */ - public boolean next() throws JRException - { + @Override + public boolean next() throws JRException { index++; return (index < data.length); } - /** * */ - public Object getFieldValue(JRField field) throws JRException - { + @Override + public Object getFieldValue(JRField field) throws JRException { Object value = null; String fieldName = field.getName(); - if ("City".equals(fieldName)) - { + if ("City".equals(fieldName)) { value = data[index][0]; - } - else if ("Id".equals(fieldName)) - { + } else if ("Id".equals(fieldName)) { value = data[index][1]; - } - else if ("Name".equals(fieldName)) - { + } else if ("Name".equals(fieldName)) { value = data[index][2]; - } - else if ("Street".equals(fieldName)) - { + } else if ("Street".equals(fieldName)) { value = data[index][3]; } return value; } - - } diff --git a/jasperreports-parent/jasperreports-examples/src/main/resources/jasperreports/WebappReport.jasper b/jasperreports-parent/jasperreports-examples/src/main/resources/jasperreports/WebappReport.jasper new file mode 100644 index 0000000000000000000000000000000000000000..1768ab2b7be6a53195e3e767faac2c6274bfeef6 GIT binary patch literal 24306 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%0D9Hx?P^!B{CaE z9G7ui^!E*EBr1O631lYt^^MT^q!t#^wkhY`O|52_M@^}p;Y!)yQm literal 0 HcmV?d00001 diff --git a/jasperreports-parent/jasperreports-examples/src/main/resources/jasperreports/WebappReport.jrxml b/jasperreports-parent/jasperreports-examples/src/main/resources/jasperreports/WebappReport.jrxml new file mode 100644 index 0000000000..28a3dc8a09 --- /dev/null +++ b/jasperreports-parent/jasperreports-examples/src/main/resources/jasperreports/WebappReport.jrxml @@ -0,0 +1,88 @@ + + + diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/EmbeddedJRReport.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/EmbeddedJRReport.java index 467aa06efb..ae2d4f4cdb 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/EmbeddedJRReport.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/EmbeddedJRReport.java @@ -21,8 +21,14 @@ import org.apache.wicket.Page; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.WebComponent; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.request.cycle.RequestCycle; +import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler; import org.apache.wicket.request.handler.resource.ResourceRequestHandler; import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.request.resource.AbstractResource; +import org.apache.wicket.request.resource.ContentDisposition; +import org.apache.wicket.request.resource.IResource; import org.apache.wicket.request.resource.ResourceReference; /** @@ -32,11 +38,23 @@ * * @author Justin Lee */ -public final class EmbeddedJRReport extends WebComponent implements IRequestListener -{ +public final class EmbeddedJRReport extends WebMarkupContainer { private static final long serialVersionUID = 1L; private final JRResource resource; + private final ResourceReference ref = new ResourceReference(EmbeddedJRReport.class, "report") { + @Override + public IResource getResource() { + return new AbstractResource() { + @Override + protected ResourceResponse newResourceResponse(Attributes attributes) { + ResourceResponse resp = resource.newResourceResponse(attributes); + resp.setContentDisposition(ContentDisposition.INLINE); + return resp; + } + }; + } + }; /** * Construct. @@ -52,20 +70,6 @@ public EmbeddedJRReport(String componentID, JRResource resource) this.resource = resource; } - @Override - public void onRequest() - { - PageParameters pageParams = null; - final Page page = findPage(); - if (page != null) { - pageParams = page.getPageParameters(); - } - - ResourceRequestHandler reqh = new ResourceRequestHandler(resource, pageParams); - - reqh.respond(getRequestCycle()); - } - /** * Make sure we work only with object tags * @@ -74,15 +78,9 @@ public void onRequest() * @see org.apache.wicket.Component#onComponentTag(org.apache.wicket.markup.ComponentTag) */ @Override - protected void onComponentTag(ComponentTag tag) - { - if (!"object".equalsIgnoreCase(tag.getName())) - { - findMarkupStream().throwMarkupException( - "Component " + getId() + " must be applied to a tag of type 'object' not " + - tag.toUserDebugString()); - } - tag.put("data", getResponse().encodeURL(urlForListener(null))); + protected void onComponentTag(ComponentTag tag) { + checkComponentTag(tag, "object"); + tag.put("data", RequestCycle.get().urlFor(ref, null)); tag.put("type", resource.getContentType()); super.onComponentTag(tag); } diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRConcreteResource.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRConcreteResource.java index ed35c4613a..42439be913 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRConcreteResource.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRConcreteResource.java @@ -1,14 +1,14 @@ /* * $Id: JRGenericResource.java 5335 2010-06-14 13:28:39Z cdeal $ $Revision: * 1.3 $ $Date: 2010-06-14 09:28:39 -0400 (Mon, 14 Jun 2010) $ - * + * * ============================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -19,15 +19,17 @@ import java.io.File; import java.io.InputStream; +import java.io.OutputStream; import java.net.URL; import net.sf.jasperreports.engine.JRAbstractExporter; +import net.sf.jasperreports.export.ExporterOutput; import org.wicketstuff.jasperreports.handlers.IJRResourceHandler; /** * A concrete implementation of a JRResource that delegates the common methods to a handler - * + * * @author cdeal */ public class JRConcreteResource extends JRResource @@ -37,7 +39,7 @@ public class JRConcreteResource extends JRResource /** * Constructor for JRConcreteResource - * + * * @param handler */ public JRConcreteResource(H handler) @@ -48,7 +50,7 @@ public JRConcreteResource(H handler) /** * Constructor for JRConcreteResource - * + * * @param report * @param handler */ @@ -60,7 +62,7 @@ public JRConcreteResource(InputStream report, H handler) /** * Constructor for JRConcreteResource - * + * * @param report * @param handler */ @@ -72,7 +74,7 @@ public JRConcreteResource(URL report, H handler) /** * Constructor for JRConcreteResource - * + * * @param report * @param handler */ @@ -84,7 +86,7 @@ public JRConcreteResource(File report, H handler) /** * Constructor for JRConcreteResource - * + * * @param factory * @param handler */ @@ -121,6 +123,11 @@ public final JRAbstractExporter newExporter() return handler.newExporter(); } + @Override + public ExporterOutput newExporterOutput(OutputStream os) { + return handler.newExporterOutput(os); + } + /** * @return Returns the handler. */ diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRImageResource.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRImageResource.java index 8b66914be0..02cecf860e 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRImageResource.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRImageResource.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.net.URL; import javax.imageio.ImageIO; @@ -31,6 +32,7 @@ import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.export.JRGraphics2DExporter; +import net.sf.jasperreports.export.ExporterOutput; import net.sf.jasperreports.export.SimpleExporterInput; import net.sf.jasperreports.export.SimpleGraphics2DExporterOutput; import net.sf.jasperreports.export.SimpleGraphics2DReportConfiguration; @@ -118,6 +120,10 @@ public final JRAbstractExporter newExporter() } } + @Override + public ExporterOutput newExporterOutput(OutputStream os) { + return null; // not used + } @Override protected byte[] getExporterData(JasperPrint print, JRAbstractExporter exporter) diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRResource.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRResource.java index 345e4d6d27..8ac56ba051 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRResource.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRResource.java @@ -18,7 +18,6 @@ package org.wicketstuff.jasperreports; import java.io.File; -import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; @@ -32,8 +31,8 @@ import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; +import net.sf.jasperreports.export.ExporterOutput; import net.sf.jasperreports.export.SimpleExporterInput; -import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput; import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.request.resource.AbstractResource; @@ -294,6 +293,13 @@ public final JRResource setFileName(String name) { */ public abstract JRAbstractExporter newExporter(); + /** + * Called by getExporterData to obtain an exporter output instance. + * + * @return an exporter instance + */ + public abstract ExporterOutput newExporterOutput(OutputStream os); + /** * @return The content type of the reports */ @@ -360,7 +366,6 @@ protected ResourceResponse newResourceResponse(Attributes attributes) { resp.setContentDisposition(getContentDisposition()); if (resp.dataNeedsToBeWritten(attributes)) { resp.setWriteCallback(new WriteCallback() { - @Override public void writeData(Attributes attributes) { try { @@ -395,7 +400,7 @@ protected byte[] getExporterData(JasperPrint print, JRAbstractExporter exporter) ByteArrayOutputStream baos = new ByteArrayOutputStream(); exporter.setExporterInput(new SimpleExporterInput(print)); - exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(baos)); + exporter.setExporterOutput(newExporterOutput(baos)); // execute the export and return the trapped result exporter.exportReport(); diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/CsvResourceHandler.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/CsvResourceHandler.java index 90d79abf8f..7fce7c56a5 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/CsvResourceHandler.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/CsvResourceHandler.java @@ -1,14 +1,14 @@ /* * $Id: CsvResourceHandler.java 5335 2010-06-14 13:28:39Z cdeal $ $Revision: * 1.4 $ $Date: 2010-06-14 09:28:39 -0400 (Mon, 14 Jun 2010) $ - * + * * ============================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -17,10 +17,13 @@ */ package org.wicketstuff.jasperreports.handlers; +import java.io.OutputStream; import java.io.Serializable; import net.sf.jasperreports.engine.JRAbstractExporter; import net.sf.jasperreports.engine.export.JRCsvExporter; +import net.sf.jasperreports.export.ExporterOutput; +import net.sf.jasperreports.export.SimpleWriterExporterOutput; /** * @author cdeal @@ -37,6 +40,11 @@ public JRAbstractExporter newExporter() return new JRCsvExporter(); } + @Override + public ExporterOutput newExporterOutput(OutputStream os) { + return new SimpleWriterExporterOutput(os); + } + /** * @see org.wicketstuff.jasperreports.handlers.IJRResourceHandler#getContentType() */ diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/HtmlResourceHandler.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/HtmlResourceHandler.java index d6cb876e3b..e3523a786d 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/HtmlResourceHandler.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/HtmlResourceHandler.java @@ -1,14 +1,14 @@ /* * $Id: HtmlResourceHandler.java 5335 2010-06-14 13:28:39Z cdeal $ $Revision: * 1.4 $ $Date: 2010-06-14 09:28:39 -0400 (Mon, 14 Jun 2010) $ - * + * * ============================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -17,10 +17,13 @@ */ package org.wicketstuff.jasperreports.handlers; +import java.io.OutputStream; import java.io.Serializable; import net.sf.jasperreports.engine.JRAbstractExporter; import net.sf.jasperreports.engine.export.HtmlExporter; +import net.sf.jasperreports.export.ExporterOutput; +import net.sf.jasperreports.export.SimpleHtmlExporterOutput; /** * @author cdeal @@ -37,6 +40,11 @@ public JRAbstractExporter newExporter() return new HtmlExporter(); } + @Override + public ExporterOutput newExporterOutput(OutputStream os) { + return new SimpleHtmlExporterOutput(os); + } + /** * @see org.wicketstuff.jasperreports.handlers.IJRResourceHandler#getContentType() */ diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/IJRResourceHandler.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/IJRResourceHandler.java index de485a6a10..407b7f2bfb 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/IJRResourceHandler.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/IJRResourceHandler.java @@ -1,14 +1,14 @@ /* * $Id: IJRResourceHandler.java 5335 2010-06-14 13:28:39Z cdeal $ $Revision: * 1.3 $ $Date: 2010-06-14 09:28:39 -0400 (Mon, 14 Jun 2010) $ - * + * * ============================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -17,7 +17,10 @@ */ package org.wicketstuff.jasperreports.handlers; +import java.io.OutputStream; + import net.sf.jasperreports.engine.JRAbstractExporter; +import net.sf.jasperreports.export.ExporterOutput; /** * @author cdeal @@ -38,4 +41,9 @@ public interface IJRResourceHandler * @see org.wicketstuff.jasperreports.JRResource#newExporter() */ public JRAbstractExporter newExporter(); + + /** + * @see org.wicketstuff.jasperreports.JRResource#newExporterOutput() + */ + public ExporterOutput newExporterOutput(OutputStream os); } diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/PdfResourceHandler.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/PdfResourceHandler.java index 89ea54e8fd..975f035dff 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/PdfResourceHandler.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/PdfResourceHandler.java @@ -17,9 +17,12 @@ */ package org.wicketstuff.jasperreports.handlers; +import java.io.OutputStream; import java.io.Serializable; import net.sf.jasperreports.engine.JRAbstractExporter; +import net.sf.jasperreports.export.ExporterOutput; +import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput; import net.sf.jasperreports.pdf.JRPdfExporter; /** @@ -37,6 +40,11 @@ public JRAbstractExporter newExporter() return new JRPdfExporter(); } + @Override + public ExporterOutput newExporterOutput(OutputStream os) { + return new SimpleOutputStreamExporterOutput(os); + } + /** * @see org.wicketstuff.jasperreports.handlers.IJRResourceHandler#getContentType() */ diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/RtfResourceHandler.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/RtfResourceHandler.java index 1378946f32..87c120b266 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/RtfResourceHandler.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/RtfResourceHandler.java @@ -1,14 +1,14 @@ /* * $Id: RtfResourceHandler.java 5335 2010-06-14 13:28:39Z cdeal $ $Revision: * 1.4 $ $Date: 2010-06-14 09:28:39 -0400 (Mon, 14 Jun 2010) $ - * + * * ============================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -17,10 +17,13 @@ */ package org.wicketstuff.jasperreports.handlers; +import java.io.OutputStream; import java.io.Serializable; import net.sf.jasperreports.engine.JRAbstractExporter; import net.sf.jasperreports.engine.export.JRRtfExporter; +import net.sf.jasperreports.export.ExporterOutput; +import net.sf.jasperreports.export.SimpleWriterExporterOutput; /** * @author cdeal @@ -37,6 +40,11 @@ public JRAbstractExporter newExporter() return new JRRtfExporter(); } + @Override + public ExporterOutput newExporterOutput(OutputStream os) { + return new SimpleWriterExporterOutput(os); + } + /** * @see org.wicketstuff.jasperreports.handlers.IJRResourceHandler#getContentType() */ diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/TextResourceHandler.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/TextResourceHandler.java index 8c85e40e59..befffb47a8 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/TextResourceHandler.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/TextResourceHandler.java @@ -17,11 +17,14 @@ */ package org.wicketstuff.jasperreports.handlers; +import java.io.OutputStream; import java.io.Serializable; import net.sf.jasperreports.engine.JRAbstractExporter; import net.sf.jasperreports.engine.export.JRTextExporter; +import net.sf.jasperreports.export.ExporterOutput; import net.sf.jasperreports.export.SimpleTextReportConfiguration; +import net.sf.jasperreports.export.SimpleWriterExporterOutput; /** * @author cdeal @@ -95,6 +98,11 @@ public JRAbstractExporter newExporter() return exporter; } + @Override + public ExporterOutput newExporterOutput(OutputStream os) { + return new SimpleWriterExporterOutput(os); + } + /** * @see org.wicketstuff.jasperreports.handlers.IJRResourceHandler#getContentType() */ diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/XlsResourceHandler.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/XlsResourceHandler.java index d8a3791c44..d51dc82686 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/XlsResourceHandler.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/handlers/XlsResourceHandler.java @@ -17,9 +17,12 @@ */ package org.wicketstuff.jasperreports.handlers; +import java.io.OutputStream; import java.io.Serializable; import net.sf.jasperreports.engine.JRAbstractExporter; +import net.sf.jasperreports.export.ExporterOutput; +import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput; import net.sf.jasperreports.poi.export.JRXlsExporter; /** @@ -37,6 +40,11 @@ public JRAbstractExporter newExporter() return new JRXlsExporter(); } + @Override + public ExporterOutput newExporterOutput(OutputStream os) { + return new SimpleOutputStreamExporterOutput(os); + } + /** * @see org.wicketstuff.jasperreports.handlers.IJRResourceHandler#getContentType() */ From f6c4a27f491deb2d6af6e2878f84cc948540facb Mon Sep 17 00:00:00 2001 From: Maxim Solodovnik Date: Wed, 25 Mar 2026 08:04:14 +0700 Subject: [PATCH 3/5] [dashboard] redundant dependency is dropped; code is simplyfied Signed-off-by: Maxim Solodovnik --- dashboard-parent/dashboard-core/pom.xml | 6 --- .../src/main/java/module-info.java | 2 +- .../dashboard/web/SortableAjaxBehavior.java | 54 ++++--------------- .../dashboard/AbstractWidgetTest.java | 6 +-- 4 files changed, 15 insertions(+), 53 deletions(-) diff --git a/dashboard-parent/dashboard-core/pom.xml b/dashboard-parent/dashboard-core/pom.xml index 34e0189e4a..e7f5f63350 100644 --- a/dashboard-parent/dashboard-core/pom.xml +++ b/dashboard-parent/dashboard-core/pom.xml @@ -16,12 +16,6 @@ Wicketstuff Dashboard Core - - - com.google.code.gson - gson - - com.thoughtworks.xstream diff --git a/dashboard-parent/dashboard-core/src/main/java/module-info.java b/dashboard-parent/dashboard-core/src/main/java/module-info.java index 97e06d7318..a0ef7d1db0 100644 --- a/dashboard-parent/dashboard-core/src/main/java/module-info.java +++ b/dashboard-parent/dashboard-core/src/main/java/module-info.java @@ -7,6 +7,6 @@ requires org.apache.wicket.request; requires org.apache.wicket.util; requires xstream; - requires com.google.gson; + requires com.github.openjson; requires de.agilecoders.wicket.webjars; } diff --git a/dashboard-parent/dashboard-core/src/main/java/org/wicketstuff/dashboard/web/SortableAjaxBehavior.java b/dashboard-parent/dashboard-core/src/main/java/org/wicketstuff/dashboard/web/SortableAjaxBehavior.java index 6b9639d626..53e5e2392c 100644 --- a/dashboard-parent/dashboard-core/src/main/java/org/wicketstuff/dashboard/web/SortableAjaxBehavior.java +++ b/dashboard-parent/dashboard-core/src/main/java/org/wicketstuff/dashboard/web/SortableAjaxBehavior.java @@ -20,7 +20,8 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.wicketstuff.dashboard.WidgetLocation; -import com.google.gson.Gson; +import com.github.openjson.JSONArray; +import com.github.openjson.JSONObject; /** * @author Decebal Suiu @@ -37,54 +38,21 @@ public abstract class SortableAjaxBehavior extends AbstractDefaultAjaxBehavior { protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); - StringBuilder buffer = new StringBuilder(); - buffer.append("var data = serializeWidgetLocations();"); - buffer.append("return {'" + JSON_DATA + "': data};"); - - attributes.getDynamicExtraParameters().add(buffer); + attributes.getDynamicExtraParameters() + .add("var data = serializeWidgetLocations();" + + "return {'" + JSON_DATA + "': data};"); } @Override protected void respond(AjaxRequestTarget target) { - String jsonData = getComponent().getRequest().getRequestParameters().getParameterValue(JSON_DATA).toString(); - Item[] items = getItems(jsonData); Map locations = new HashMap(); - for (Item item : items) { - WidgetLocation location = new WidgetLocation(item.column, item.sortIndex); - locations.put(item.widget, location); + String jsonData = getComponent().getRequest().getRequestParameters().getParameterValue(JSON_DATA).toString(); + JSONArray arr = new JSONArray(jsonData); + for (int i = 0; i < arr.length(); ++i) { + JSONObject obj = arr.getJSONObject(i); + locations.put(obj.getString("widget"), + new WidgetLocation(obj.getInt("column"), obj.getInt("sortIndex"))); } - onSort(target, locations); } - - private Item[] getItems(String jsonData) { - Gson gson = new Gson(); - Item[] items = gson.fromJson(jsonData, Item[].class); - /* - System.out.println(items.length); - for (Item item : items) { - System.out.println(item); - } - */ - - return items; - } - - static class Item { - public int column; - public String widget; - public int sortIndex; - - @Override - public String toString() { - StringBuffer buffer = new StringBuffer(); - buffer.append("Item["); - buffer.append("column = ").append(column); - buffer.append(" widget = ").append(widget); - buffer.append(" sortIndex = ").append(sortIndex); - buffer.append("]"); - - return buffer.toString(); - } - } } diff --git a/dashboard-parent/dashboard-core/src/test/java/org/wicketstuff/dashboard/AbstractWidgetTest.java b/dashboard-parent/dashboard-core/src/test/java/org/wicketstuff/dashboard/AbstractWidgetTest.java index 058e35f9e1..2ed5cd38c2 100644 --- a/dashboard-parent/dashboard-core/src/test/java/org/wicketstuff/dashboard/AbstractWidgetTest.java +++ b/dashboard-parent/dashboard-core/src/test/java/org/wicketstuff/dashboard/AbstractWidgetTest.java @@ -20,7 +20,7 @@ import org.wicketstuff.dashboard.web.DashboardPanel; import org.wicketstuff.dashboard.web.WidgetView; -public class AbstractWidgetTest { +class AbstractWidgetTest { private static final String MARKUP = "
"; private WicketTester browser; @@ -96,12 +96,12 @@ public WidgetView createView(String viewId) { } @BeforeEach - public void setup() { + void setup() { browser = new WicketTester(new WebApp()); } @Test - public void canExposeConfigurationAsString() { + void canExposeConfigurationAsString() { Dashboard dashboard = Application.get().getMetaData(DASHBOARD_KEY); browser.startComponentInPage(new DashboardPanel("dashboard", Model. of(dashboard)), Markup.of(MARKUP)); browser.assertNoErrorMessage(); From b9736a00f0678d4b0e6c89447316cb2166ee262a Mon Sep 17 00:00:00 2001 From: Maxim Solodovnik Date: Wed, 25 Mar 2026 08:04:52 +0700 Subject: [PATCH 4/5] Revert "[dashboard] redundant dependency is dropped; code is simplyfied" This reverts commit f6c4a27f491deb2d6af6e2878f84cc948540facb. --- dashboard-parent/dashboard-core/pom.xml | 6 +++ .../src/main/java/module-info.java | 2 +- .../dashboard/web/SortableAjaxBehavior.java | 54 +++++++++++++++---- .../dashboard/AbstractWidgetTest.java | 6 +-- 4 files changed, 53 insertions(+), 15 deletions(-) diff --git a/dashboard-parent/dashboard-core/pom.xml b/dashboard-parent/dashboard-core/pom.xml index e7f5f63350..34e0189e4a 100644 --- a/dashboard-parent/dashboard-core/pom.xml +++ b/dashboard-parent/dashboard-core/pom.xml @@ -16,6 +16,12 @@ Wicketstuff Dashboard Core + + + com.google.code.gson + gson + + com.thoughtworks.xstream diff --git a/dashboard-parent/dashboard-core/src/main/java/module-info.java b/dashboard-parent/dashboard-core/src/main/java/module-info.java index a0ef7d1db0..97e06d7318 100644 --- a/dashboard-parent/dashboard-core/src/main/java/module-info.java +++ b/dashboard-parent/dashboard-core/src/main/java/module-info.java @@ -7,6 +7,6 @@ requires org.apache.wicket.request; requires org.apache.wicket.util; requires xstream; - requires com.github.openjson; + requires com.google.gson; requires de.agilecoders.wicket.webjars; } diff --git a/dashboard-parent/dashboard-core/src/main/java/org/wicketstuff/dashboard/web/SortableAjaxBehavior.java b/dashboard-parent/dashboard-core/src/main/java/org/wicketstuff/dashboard/web/SortableAjaxBehavior.java index 53e5e2392c..6b9639d626 100644 --- a/dashboard-parent/dashboard-core/src/main/java/org/wicketstuff/dashboard/web/SortableAjaxBehavior.java +++ b/dashboard-parent/dashboard-core/src/main/java/org/wicketstuff/dashboard/web/SortableAjaxBehavior.java @@ -20,8 +20,7 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.wicketstuff.dashboard.WidgetLocation; -import com.github.openjson.JSONArray; -import com.github.openjson.JSONObject; +import com.google.gson.Gson; /** * @author Decebal Suiu @@ -38,21 +37,54 @@ public abstract class SortableAjaxBehavior extends AbstractDefaultAjaxBehavior { protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); - attributes.getDynamicExtraParameters() - .add("var data = serializeWidgetLocations();" + - "return {'" + JSON_DATA + "': data};"); + StringBuilder buffer = new StringBuilder(); + buffer.append("var data = serializeWidgetLocations();"); + buffer.append("return {'" + JSON_DATA + "': data};"); + + attributes.getDynamicExtraParameters().add(buffer); } @Override protected void respond(AjaxRequestTarget target) { - Map locations = new HashMap(); String jsonData = getComponent().getRequest().getRequestParameters().getParameterValue(JSON_DATA).toString(); - JSONArray arr = new JSONArray(jsonData); - for (int i = 0; i < arr.length(); ++i) { - JSONObject obj = arr.getJSONObject(i); - locations.put(obj.getString("widget"), - new WidgetLocation(obj.getInt("column"), obj.getInt("sortIndex"))); + Item[] items = getItems(jsonData); + Map locations = new HashMap(); + for (Item item : items) { + WidgetLocation location = new WidgetLocation(item.column, item.sortIndex); + locations.put(item.widget, location); } + onSort(target, locations); } + + private Item[] getItems(String jsonData) { + Gson gson = new Gson(); + Item[] items = gson.fromJson(jsonData, Item[].class); + /* + System.out.println(items.length); + for (Item item : items) { + System.out.println(item); + } + */ + + return items; + } + + static class Item { + public int column; + public String widget; + public int sortIndex; + + @Override + public String toString() { + StringBuffer buffer = new StringBuffer(); + buffer.append("Item["); + buffer.append("column = ").append(column); + buffer.append(" widget = ").append(widget); + buffer.append(" sortIndex = ").append(sortIndex); + buffer.append("]"); + + return buffer.toString(); + } + } } diff --git a/dashboard-parent/dashboard-core/src/test/java/org/wicketstuff/dashboard/AbstractWidgetTest.java b/dashboard-parent/dashboard-core/src/test/java/org/wicketstuff/dashboard/AbstractWidgetTest.java index 2ed5cd38c2..058e35f9e1 100644 --- a/dashboard-parent/dashboard-core/src/test/java/org/wicketstuff/dashboard/AbstractWidgetTest.java +++ b/dashboard-parent/dashboard-core/src/test/java/org/wicketstuff/dashboard/AbstractWidgetTest.java @@ -20,7 +20,7 @@ import org.wicketstuff.dashboard.web.DashboardPanel; import org.wicketstuff.dashboard.web.WidgetView; -class AbstractWidgetTest { +public class AbstractWidgetTest { private static final String MARKUP = "
"; private WicketTester browser; @@ -96,12 +96,12 @@ public WidgetView createView(String viewId) { } @BeforeEach - void setup() { + public void setup() { browser = new WicketTester(new WebApp()); } @Test - void canExposeConfigurationAsString() { + public void canExposeConfigurationAsString() { Dashboard dashboard = Application.get().getMetaData(DASHBOARD_KEY); browser.startComponentInPage(new DashboardPanel("dashboard", Model. of(dashboard)), Markup.of(MARKUP)); browser.assertNoErrorMessage(); From ae3528442dc359053cde574fa10a58df5d5e54f4 Mon Sep 17 00:00:00 2001 From: Maxim Solodovnik Date: Wed, 25 Mar 2026 08:41:20 +0700 Subject: [PATCH 5/5] Code clean-up Signed-off-by: Maxim Solodovnik --- .../jasperreports/examples/JasperReportsApplication.java | 7 ------- .../org/wicketstuff/jasperreports/EmbeddedJRReport.java | 6 ------ .../java/org/wicketstuff/jasperreports/JRResource.java | 8 ++++---- 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/JasperReportsApplication.java b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/JasperReportsApplication.java index 21acf4f754..1236323cf2 100644 --- a/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/JasperReportsApplication.java +++ b/jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/JasperReportsApplication.java @@ -26,13 +26,6 @@ import org.apache.wicket.Page; import org.apache.wicket.protocol.http.WebApplication; -import net.sf.jasperreports.engine.JasperCompileManager; -import net.sf.jasperreports.engine.JasperReport; -import net.sf.jasperreports.engine.design.JasperDesign; -import net.sf.jasperreports.engine.export.JRXmlExporter; -import net.sf.jasperreports.engine.util.JRLoader; -import net.sf.jasperreports.engine.xml.JRXmlLoader; - /** * Wicket application class for jasper reports example. * diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/EmbeddedJRReport.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/EmbeddedJRReport.java index ae2d4f4cdb..b37608697d 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/EmbeddedJRReport.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/EmbeddedJRReport.java @@ -17,15 +17,9 @@ */ package org.wicketstuff.jasperreports; -import org.apache.wicket.IRequestListener; -import org.apache.wicket.Page; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.html.WebComponent; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.request.cycle.RequestCycle; -import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler; -import org.apache.wicket.request.handler.resource.ResourceRequestHandler; -import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.request.resource.AbstractResource; import org.apache.wicket.request.resource.ContentDisposition; import org.apache.wicket.request.resource.IResource; diff --git a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRResource.java b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRResource.java index 8ac56ba051..90f1c74286 100644 --- a/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRResource.java +++ b/jasperreports-parent/jasperreports/src/main/java/org/wicketstuff/jasperreports/JRResource.java @@ -48,8 +48,9 @@ * @author Matej Knopp * @author Luciano Montebove */ -@SuppressWarnings("serial") public abstract class JRResource extends AbstractResource { + private static final long serialVersionUID = 1L; + /** * logger. */ @@ -344,8 +345,7 @@ protected JasperPrint newJasperPrint() throws JRException { provider = getConnectionProvider(); if (provider == null) { throw new IllegalStateException( - "JasperReportsResources must either have a JRDataSource, " - + "or a JDBC Connection provided"); + "JasperReportsResources must either have a JRDataSource, or a JDBC Connection provided"); } jasperPrint = JasperFillManager.fillReport(report, params, provider.get()); } finally { @@ -406,4 +406,4 @@ protected byte[] getExporterData(JasperPrint print, JRAbstractExporter exporter) return baos.toByteArray(); } -} \ No newline at end of file +}