Skip to content

Commit d9038ab

Browse files
committed
Jasperreports are updated to 7.x (#1434)
* Jasperreports are updated to 7.x Signed-off-by: Maxim Solodovnik <solomax@apache.org> * Examples more or less works as expected Signed-off-by: Maxim Solodovnik <solomax@apache.org> * Revert "[dashboard] redundant dependency is dropped; code is simplyfied" This reverts commit f6c4a27. * Code clean-up Signed-off-by: Maxim Solodovnik <solomax@apache.org> * jasperreports examples are fixed --------- Signed-off-by: Maxim Solodovnik <solomax@apache.org>
1 parent 6329eba commit d9038ab

25 files changed

Lines changed: 525 additions & 365 deletions

jasperreports-parent/jasperreports-examples/pom.xml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<description>JasperReports integration components and resources for Wicket.</description>
1818

1919
<properties>
20-
<jasperreports.outputDirectory>${project.build.sourceDirectory}/../webapp/reports</jasperreports.outputDirectory>
20+
<jasperreportsDirectory>${project.build.directory}/reports</jasperreportsDirectory>
2121
<javadoc.disabled>true</javadoc.disabled>
2222
<deployment.disabled>true</deployment.disabled>
2323
<sources.disabled>true</sources.disabled>
@@ -47,6 +47,22 @@
4747
<groupId>org.slf4j</groupId>
4848
<artifactId>slf4j-reload4j</artifactId>
4949
</dependency>
50-
5150
</dependencies>
51+
<build>
52+
<plugins>
53+
<plugin>
54+
<groupId>org.eclipse.jetty</groupId>
55+
<artifactId>jetty-maven-plugin</artifactId>
56+
<configuration>
57+
<systemProperties>
58+
<jasperreportsDirectory>${jasperreportsDirectory}</jasperreportsDirectory>
59+
</systemProperties>
60+
<resourceBases>
61+
<resourceBase>src/main/webapp</resourceBase>
62+
<resourceBase>${jasperreportsDirectory}</resourceBase>
63+
</resourceBases>
64+
</configuration>
65+
</plugin>
66+
</plugins>
67+
</build>
5268
</project>
Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
/*
22
* $Id$
33
* $Revision$ $Date$
4-
*
4+
*
55
* ==================================================================== Licensed
66
* under the Apache License, Version 2.0 (the "License"); you may not use this
77
* file except in compliance with the License. You may obtain a copy of the
88
* License at
9-
*
9+
*
1010
* http://www.apache.org/licenses/LICENSE-2.0
11-
*
11+
*
1212
* Unless required by applicable law or agreed to in writing, software
1313
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
1414
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
@@ -17,40 +17,61 @@
1717
*/
1818
package org.wicketstuff.jasperreports.examples;
1919

20+
import java.io.File;
21+
import java.io.InputStream;
22+
import java.nio.file.Files;
23+
import java.nio.file.StandardCopyOption;
2024
import java.time.Duration;
2125

2226
import org.apache.wicket.Page;
2327
import org.apache.wicket.protocol.http.WebApplication;
2428

2529
/**
2630
* Wicket application class for jasper reports example.
27-
*
31+
*
2832
* @author Eelco Hillenius
2933
*/
30-
public class JasperReportsApplication extends WebApplication
31-
{
34+
public class JasperReportsApplication extends WebApplication {
3235
/**
3336
* Constructor.
3437
*/
35-
public JasperReportsApplication()
36-
{
38+
public JasperReportsApplication() {
3739
}
3840

3941
/**
4042
* @see org.apache.wicket.protocol.http.WebApplication#init()
4143
*/
4244
@Override
43-
protected void init()
44-
{
45+
protected void init() {
46+
getCspSettings().blocking().disabled();
4547
getResourceSettings().setResourcePollFrequency(Duration.ofSeconds(1));
48+
49+
final File base = new File(System.getProperty("jasperreportsDirectory"));
50+
final File reportFile = new File(base, "WebappReport.jasper");
51+
try {
52+
if (!base.exists()) {
53+
base.mkdirs();
54+
}
55+
try (InputStream rep = getClass().getResourceAsStream("/jasperreports/WebappReport.jasper")) {
56+
Files.copy(rep, reportFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
57+
}
58+
final File images = new File(base, "../images");
59+
if (!images.exists()) {
60+
images.mkdirs();
61+
}
62+
try (InputStream rep = getClass().getResourceAsStream("/jasperreports/jasperreports.gif")) {
63+
Files.copy(rep, new File(images, "jasperreports.gif").toPath(), StandardCopyOption.REPLACE_EXISTING);
64+
}
65+
} catch (Exception e) {
66+
throw new RuntimeException(e);
67+
}
4668
}
4769

4870
/**
4971
* @see org.apache.wicket.Application#getHomePage()
5072
*/
5173
@Override
52-
public Class<? extends Page> getHomePage()
53-
{
74+
public Class<? extends Page> getHomePage() {
5475
return Index.class;
5576
}
5677
}

jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/ReportLinksPage.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
<li>
2626
<a href="#" wicket:id="linkToCsv">display CSV report</a>
2727
</li>
28+
<li>
29+
<a href="#" wicket:id="linkToXls">display XLS report</a>
30+
</li>
2831
</ul>
2932
</div>
3033
<div>

jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/ReportLinksPage.java

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@
1313
package org.wicketstuff.jasperreports.examples;
1414

1515
import java.io.File;
16-
import java.util.HashMap;
1716
import java.util.Map;
1817

1918
import javax.servlet.ServletContext;
2019

2120
import org.apache.wicket.markup.html.WebPage;
2221
import org.apache.wicket.markup.html.link.ResourceLink;
23-
import org.apache.wicket.protocol.http.WebApplication;
2422
import org.wicketstuff.jasperreports.JRConcreteResource;
2523
import org.wicketstuff.jasperreports.JRImageResource;
2624
import org.wicketstuff.jasperreports.JRResource;
@@ -29,63 +27,65 @@
2927
import org.wicketstuff.jasperreports.handlers.PdfResourceHandler;
3028
import org.wicketstuff.jasperreports.handlers.RtfResourceHandler;
3129
import org.wicketstuff.jasperreports.handlers.TextResourceHandler;
30+
import org.wicketstuff.jasperreports.handlers.XlsResourceHandler;
3231

3332
/**
3433
* Simple Jasper reports example with PDF output and a jasper reports panel..
35-
*
34+
*
3635
* @author Eelco Hillenius
3736
*/
38-
public class ReportLinksPage extends WebPage
39-
{
37+
public class ReportLinksPage extends WebPage {
4038
private static final long serialVersionUID = 1L;
4139

4240
/**
4341
* Constructor.
4442
*/
45-
public ReportLinksPage()
46-
{
47-
ServletContext context = ((WebApplication)getApplication()).getServletContext();
48-
final File reportFile = new File(context.getRealPath("/reports/WebappReport.jasper"));
43+
public ReportLinksPage() {
44+
final File base = new File(System.getProperty("jasperreportsDirectory"));
45+
final File reportFile = new File(base, "WebappReport.jasper");
4946

50-
final Map<String, Object> parameters = new HashMap<String, Object>();
51-
parameters.put("BaseDir", new File(context.getRealPath("/reports")));
47+
final Map<String, Object> parameters = Map.of("BaseDir", base);
5248

5349
JRResource pdfResource = new JRConcreteResource<PdfResourceHandler>(reportFile,
54-
new PdfResourceHandler()).setReportParameters(parameters).setReportDataSource(
55-
new WebappDataSource());
50+
new PdfResourceHandler()).setReportParameters(parameters).setReportDataSource(
51+
new WebappDataSource());
5652
add(new ResourceLink<Void>("linkToPdf", pdfResource));
5753

5854
JRResource rtfResource = new JRConcreteResource<RtfResourceHandler>(reportFile,
59-
new RtfResourceHandler()).setReportParameters(parameters).setReportDataSource(
60-
new WebappDataSource());
55+
new RtfResourceHandler()).setReportParameters(parameters).setReportDataSource(
56+
new WebappDataSource());
6157
add(new ResourceLink<Void>("linkToRtf", rtfResource));
6258

6359
JRResource htmlResource = new JRConcreteResource<HtmlResourceHandler>(reportFile,
64-
new HtmlResourceHandler()).setReportParameters(parameters).setReportDataSource(
65-
new WebappDataSource());
60+
new HtmlResourceHandler()).setReportParameters(parameters).setReportDataSource(
61+
new WebappDataSource());
6662
add(new ResourceLink<Void>("linkToHtml", htmlResource));
6763

6864
JRResource textResource = new JRConcreteResource<TextResourceHandler>(reportFile,
69-
new TextResourceHandler()).setReportParameters(parameters).setReportDataSource(
70-
new WebappDataSource());
65+
new TextResourceHandler()).setReportParameters(parameters).setReportDataSource(
66+
new WebappDataSource());
7167
add(new ResourceLink<Void>("linkToText", textResource));
7268

7369
JRResource imageResource = new JRImageResource(reportFile).setReportParameters(parameters)
74-
.setReportDataSource(new WebappDataSource());
70+
.setReportDataSource(new WebappDataSource());
7571
add(new ResourceLink<Void>("linkToImage", imageResource));
7672

7773
JRResource csvResource = new JRConcreteResource<CsvResourceHandler>(reportFile,
78-
new CsvResourceHandler()).setReportParameters(parameters).setReportDataSource(
79-
new WebappDataSource());
74+
new CsvResourceHandler()).setReportParameters(parameters).setReportDataSource(
75+
new WebappDataSource());
8076
add(new ResourceLink<Void>("linkToCsv", csvResource));
77+
78+
JRResource xlsResource = new JRConcreteResource<XlsResourceHandler>(reportFile,
79+
new XlsResourceHandler()).setReportParameters(parameters).setReportDataSource(
80+
new WebappDataSource());
81+
add(new ResourceLink<Void>("linkToXls", xlsResource));
8182
}
8283

8384
/**
8485
* @see org.apache.wicket.Component#isVersioned()
8586
*/
8687
@Override
87-
public boolean isVersioned()
88-
{
88+
public boolean isVersioned() {
8989
return false;
9090
}
9191
}

jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,19 @@
33
xml:lang="en" lang="en">
44
<head>
55
<title>WicketStuff JasperReports Integration - Embedded PDF</title>
6+
<style>
7+
object {
8+
width: 85vw;
9+
height: 85vh;
10+
display: block;
11+
}
12+
</style>
613
</head>
714
<body>
815
<div>
916
Before
1017
<br />
11-
12-
<object wicket:id="report" height="60%" width="80%"></object>
13-
18+
<object wicket:id="report"></object>
1419
<br />
1520
After
1621
</div>

jasperreports-parent/jasperreports-examples/src/main/java/org/wicketstuff/jasperreports/examples/SimplePdfPage.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,49 +13,42 @@
1313
package org.wicketstuff.jasperreports.examples;
1414

1515
import java.io.File;
16-
import java.util.HashMap;
1716
import java.util.Map;
1817

1918
import javax.servlet.ServletContext;
2019

2120
import org.apache.wicket.markup.html.WebPage;
22-
import org.apache.wicket.protocol.http.WebApplication;
2321
import org.wicketstuff.jasperreports.EmbeddedJRReport;
2422
import org.wicketstuff.jasperreports.JRConcreteResource;
2523
import org.wicketstuff.jasperreports.JRResource;
2624
import org.wicketstuff.jasperreports.handlers.PdfResourceHandler;
2725

2826
/**
2927
* Simple Jasper reports example with PDF output and a jasper reports panel..
30-
*
28+
*
3129
* @author Eelco Hillenius
3230
*/
33-
public class SimplePdfPage extends WebPage
34-
{
31+
public class SimplePdfPage extends WebPage {
3532
private static final long serialVersionUID = 1L;
3633

3734
/**
3835
* Constructor.
3936
*/
40-
public SimplePdfPage()
41-
{
42-
ServletContext context = ((WebApplication)getApplication()).getServletContext();
43-
final File reportFile = new File(context.getRealPath("/reports/WebappReport.jasper"));
37+
public SimplePdfPage() {
38+
final File base = new File(System.getProperty("jasperreportsDirectory"));
39+
final File reportFile = new File(base, "WebappReport.jasper");
4440

45-
final Map<String, Object> parameters = new HashMap<String, Object>();
46-
parameters.put("BaseDir", new File(context.getRealPath("/reports")));
47-
JRResource pdfResource = new JRConcreteResource<PdfResourceHandler>(reportFile,
48-
new PdfResourceHandler()).setReportParameters(parameters).setReportDataSource(
49-
new WebappDataSource());
41+
JRResource pdfResource = new JRConcreteResource<PdfResourceHandler>(reportFile, new PdfResourceHandler())
42+
.setReportParameters(Map.of("BaseDir", base))
43+
.setReportDataSource(new WebappDataSource());
5044
add(new EmbeddedJRReport("report", pdfResource));
5145
}
5246

5347
/**
5448
* @see org.apache.wicket.Component#isVersioned()
5549
*/
5650
@Override
57-
public boolean isVersioned()
58-
{
51+
public boolean isVersioned() {
5952
return false;
6053
}
6154
}

0 commit comments

Comments
 (0)