This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push:
new eb003e6 Remove the Java applet from the examples.
eb003e6 is described below
commit eb003e6ce7942937efd54af98282a4148fba0954
Author: Mark Thomas <[email protected]>
AuthorDate: Thu Jan 20 22:15:56 2022 +0000
Remove the Java applet from the examples.
Support for applets has been removed from all mainstream browsers and
the file names were causing reproducibility problems.
---
build.xml | 10 --
webapps/docs/changelog.xml | 8 +
webapps/examples/WEB-INF/jsp/applet/Clock2.java | 229 ------------------------
webapps/examples/jsp/index.html | 8 -
webapps/examples/jsp/plugin/applet/Clock2.java | 229 ------------------------
webapps/examples/jsp/plugin/plugin.html | 30 ----
webapps/examples/jsp/plugin/plugin.jsp | 34 ----
7 files changed, 8 insertions(+), 540 deletions(-)
diff --git a/build.xml b/build.xml
index d8d6a22..6062337 100644
--- a/build.xml
+++ b/build.xml
@@ -1163,16 +1163,6 @@
includeantruntime="false">
</javac>
- <mkdir dir="${tomcat.build}/webapps/examples/jsp/plugin/applet"/>
- <javac srcdir="webapps/examples/jsp/plugin/applet"
- destdir="${tomcat.build}/webapps/examples/jsp/plugin/applet"
- debug="${compile.debug}" deprecation="${compile.deprecation}"
- release="${compile.release}"
- classpath="${tomcat.classes}"
- encoding="ISO-8859-1"
- includeantruntime="false">
- </javac>
-
<!-- Convert the message files of the examples webapp from UTF-8 to ASCII.
This can be removed after upgrading to Java 9+ as the minimum JRE and
specifying the encoding when loading the ResourceBundles -->
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index f172232..d16f9b6 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -105,6 +105,14 @@
issues do not "pop up" wrt. others).
-->
<section name="Tomcat 8.5.76 (schultz)" rtext="In development">
+ <subsection name="Web applications">
+ <changelog>
+ <fix>
+ Remove the applet example from the example web application as applets
+ are no longer supported in any major browser. (markt)
+ </fix>
+ </changelog>
+ </subsection>
</section>
<section name="Tomcat 8.5.75 (schultz)" rtext="2022-01-17">
<subsection name="Coyote">
diff --git a/webapps/examples/WEB-INF/jsp/applet/Clock2.java
b/webapps/examples/WEB-INF/jsp/applet/Clock2.java
deleted file mode 100644
index 128cfbd..0000000
--- a/webapps/examples/WEB-INF/jsp/applet/Clock2.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You 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 License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-import java.applet.Applet;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-
-/**
- * Time!
- *
- * @author Rachel Gollub
- */
-
-public class Clock2 extends Applet implements Runnable {
- private static final long serialVersionUID = 1L;
- Thread timer; // The thread that displays clock
- int lastxs, lastys, lastxm,
- lastym, lastxh, lastyh; // Dimensions used to draw hands
- SimpleDateFormat formatter; // Formats the date displayed
- String lastdate; // String to hold date displayed
- Font clockFaceFont; // Font for number display on clock
- Date currentDate; // Used to get date to display
- Color handColor; // Color of main hands and dial
- Color numberColor; // Color of second hand and numbers
-
- @Override
- public void init() {
- lastxs = lastys = lastxm = lastym = lastxh = lastyh = 0;
- formatter = new SimpleDateFormat ("EEE MMM dd hh:mm:ss yyyy",
Locale.getDefault());
- currentDate = new Date();
- lastdate = formatter.format(currentDate);
- clockFaceFont = new Font("Serif", Font.PLAIN, 14);
- handColor = Color.blue;
- numberColor = Color.darkGray;
-
- try {
- setBackground(new
Color(Integer.parseInt(getParameter("bgcolor"),16)));
- } catch (Exception e) {
- // Ignore
- }
- try {
- handColor = new
Color(Integer.parseInt(getParameter("fgcolor1"),16));
- } catch (Exception e) {
- // Ignore
- }
- try {
- numberColor = new
Color(Integer.parseInt(getParameter("fgcolor2"),16));
- } catch (Exception e) {
- // Ignore
- }
- resize(300,300); // Set clock window size
- }
-
- // Plotpoints allows calculation to only cover 45 degrees of the circle,
- // and then mirror
- public void plotpoints(int x0, int y0, int x, int y, Graphics g) {
- g.drawLine(x0+x,y0+y,x0+x,y0+y);
- g.drawLine(x0+y,y0+x,x0+y,y0+x);
- g.drawLine(x0+y,y0-x,x0+y,y0-x);
- g.drawLine(x0+x,y0-y,x0+x,y0-y);
- g.drawLine(x0-x,y0-y,x0-x,y0-y);
- g.drawLine(x0-y,y0-x,x0-y,y0-x);
- g.drawLine(x0-y,y0+x,x0-y,y0+x);
- g.drawLine(x0-x,y0+y,x0-x,y0+y);
- }
-
- // Circle is just Bresenham's algorithm for a scan converted circle
- public void circle(int x0, int y0, int r, Graphics g) {
- int x,y;
- float d;
- x=0;
- y=r;
- d=5/4-r;
- plotpoints(x0,y0,x,y,g);
-
- while (y>x){
- if (d<0) {
- d=d+2*x+3;
- x++;
- } else {
- d=d+2*(x-y)+5;
- x++;
- y--;
- }
- plotpoints(x0,y0,x,y,g);
- }
- }
-
- // Paint is the main part of the program
- @Override
- public void paint(Graphics g) {
- int xh, yh, xm, ym, xs, ys, s = 0, m = 10, h = 10, xcenter, ycenter;
- String today;
-
- currentDate = new Date();
- SimpleDateFormat formatter = new
SimpleDateFormat("s",Locale.getDefault());
- try {
- s = Integer.parseInt(formatter.format(currentDate));
- } catch (NumberFormatException n) {
- s = 0;
- }
- formatter.applyPattern("m");
- try {
- m = Integer.parseInt(formatter.format(currentDate));
- } catch (NumberFormatException n) {
- m = 10;
- }
- formatter.applyPattern("h");
- try {
- h = Integer.parseInt(formatter.format(currentDate));
- } catch (NumberFormatException n) {
- h = 10;
- }
- formatter.applyPattern("EEE MMM dd HH:mm:ss yyyy");
- today = formatter.format(currentDate);
- xcenter=80;
- ycenter=55;
-
- // a= s* pi/2 - pi/2 (to switch 0,0 from 3:00 to 12:00)
- // x = r(cos a) + xcenter, y = r(sin a) + ycenter
-
- xs = (int)(Math.cos(s * Math.PI/30 - Math.PI/2) * 45 + xcenter);
- ys = (int)(Math.sin(s * Math.PI/30 - Math.PI/2) * 45 + ycenter);
- xm = (int)(Math.cos(m * Math.PI/30 - Math.PI/2) * 40 + xcenter);
- ym = (int)(Math.sin(m * Math.PI/30 - Math.PI/2) * 40 + ycenter);
- xh = (int)(Math.cos((h*30 + m/2) * Math.PI/180 - Math.PI/2) * 30 +
xcenter);
- yh = (int)(Math.sin((h*30 + m/2) * Math.PI/180 - Math.PI/2) * 30 +
ycenter);
-
- // Draw the circle and numbers
-
- g.setFont(clockFaceFont);
- g.setColor(handColor);
- circle(xcenter,ycenter,50,g);
- g.setColor(numberColor);
- g.drawString("9",xcenter-45,ycenter+3);
- g.drawString("3",xcenter+40,ycenter+3);
- g.drawString("12",xcenter-5,ycenter-37);
- g.drawString("6",xcenter-3,ycenter+45);
-
- // Erase if necessary, and redraw
-
- g.setColor(getBackground());
- if (xs != lastxs || ys != lastys) {
- g.drawLine(xcenter, ycenter, lastxs, lastys);
- g.drawString(lastdate, 5, 125);
- }
- if (xm != lastxm || ym != lastym) {
- g.drawLine(xcenter, ycenter-1, lastxm, lastym);
- g.drawLine(xcenter-1, ycenter, lastxm, lastym); }
- if (xh != lastxh || yh != lastyh) {
- g.drawLine(xcenter, ycenter-1, lastxh, lastyh);
- g.drawLine(xcenter-1, ycenter, lastxh, lastyh); }
- g.setColor(numberColor);
- g.drawString("", 5, 125);
- g.drawString(today, 5, 125);
- g.drawLine(xcenter, ycenter, xs, ys);
- g.setColor(handColor);
- g.drawLine(xcenter, ycenter-1, xm, ym);
- g.drawLine(xcenter-1, ycenter, xm, ym);
- g.drawLine(xcenter, ycenter-1, xh, yh);
- g.drawLine(xcenter-1, ycenter, xh, yh);
- lastxs=xs; lastys=ys;
- lastxm=xm; lastym=ym;
- lastxh=xh; lastyh=yh;
- lastdate = today;
- currentDate=null;
- }
-
- @Override
- public void start() {
- timer = new Thread(this);
- timer.start();
- }
-
- @Override
- public void stop() {
- timer = null;
- }
-
- @Override
- public void run() {
- Thread me = Thread.currentThread();
- while (timer == me) {
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- }
- repaint();
- }
- }
-
- @Override
- public void update(Graphics g) {
- paint(g);
- }
-
- @Override
- public String getAppletInfo() {
- return "Title: A Clock \nAuthor: Rachel Gollub, 1995 \nAn analog
clock.";
- }
-
- @Override
- public String[][] getParameterInfo() {
- String[][] info = {
- {"bgcolor", "hexadecimal RGB number", "The background color.
Default is the color of your browser."},
- {"fgcolor1", "hexadecimal RGB number", "The color of the hands and
dial. Default is blue."},
- {"fgcolor2", "hexadecimal RGB number", "The color of the seconds
hand and numbers. Default is dark gray."}
- };
- return info;
- }
-}
diff --git a/webapps/examples/jsp/index.html b/webapps/examples/jsp/index.html
index 977ed04..b237120 100644
--- a/webapps/examples/jsp/index.html
+++ b/webapps/examples/jsp/index.html
@@ -274,14 +274,6 @@ This can be done using browser options.</p>
</tr>
<tr>
-<td>Plugin</td>
-
-<td style="width: 30%;"><a href="plugin/plugin.jsp"><img
src="images/execute.gif" alt=""></a><a href="plugin/plugin.jsp">Execute</a></td>
-
-<td style="width: 30%;"><a href="plugin/plugin.html"><img
src="images/code.gif" alt=""></a><a href="plugin/plugin.html">Source</a></td>
-</tr>
-
-<tr>
<td>JSP-Servlet-JSP</td>
<td style="width: 30%;"><a href="jsptoserv/jsptoservlet.jsp"><img
src="images/execute.gif" alt=""></a><a
href="jsptoserv/jsptoservlet.jsp">Execute</a></td>
diff --git a/webapps/examples/jsp/plugin/applet/Clock2.java
b/webapps/examples/jsp/plugin/applet/Clock2.java
deleted file mode 100644
index 17bd9dd..0000000
--- a/webapps/examples/jsp/plugin/applet/Clock2.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You 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 License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-import java.applet.Applet;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-
-/**
- * Time!
- *
- * @author Rachel Gollub
- */
-
-public class Clock2 extends Applet implements Runnable {
- private static final long serialVersionUID = 1L;
- Thread timer; // The thread that displays clock
- int lastxs, lastys, lastxm,
- lastym, lastxh, lastyh; // Dimensions used to draw hands
- SimpleDateFormat formatter; // Formats the date displayed
- String lastdate; // String to hold date displayed
- Font clockFaceFont; // Font for number display on clock
- Date currentDate; // Used to get date to display
- Color handColor; // Color of main hands and dial
- Color numberColor; // Color of second hand and numbers
-
- @Override
- public void init() {
- lastxs = lastys = lastxm = lastym = lastxh = lastyh = 0;
- formatter = new SimpleDateFormat ("EEE MMM dd hh:mm:ss yyyy",
Locale.getDefault());
- currentDate = new Date();
- lastdate = formatter.format(currentDate);
- clockFaceFont = new Font("Serif", Font.PLAIN, 14);
- handColor = Color.blue;
- numberColor = Color.darkGray;
-
- try {
- setBackground(new
Color(Integer.parseInt(getParameter("bgcolor"),16)));
- } catch (Exception e) {
- // Ignored
- }
- try {
- handColor = new
Color(Integer.parseInt(getParameter("fgcolor1"),16));
- } catch (Exception e) {
- // Ignored
- }
- try {
- numberColor = new
Color(Integer.parseInt(getParameter("fgcolor2"),16));
- } catch (Exception e) {
- // Ignored
- }
- resize(300,300); // Set clock window size
- }
-
- // Plotpoints allows calculation to only cover 45 degrees of the circle,
- // and then mirror
- public void plotpoints(int x0, int y0, int x, int y, Graphics g) {
- g.drawLine(x0+x,y0+y,x0+x,y0+y);
- g.drawLine(x0+y,y0+x,x0+y,y0+x);
- g.drawLine(x0+y,y0-x,x0+y,y0-x);
- g.drawLine(x0+x,y0-y,x0+x,y0-y);
- g.drawLine(x0-x,y0-y,x0-x,y0-y);
- g.drawLine(x0-y,y0-x,x0-y,y0-x);
- g.drawLine(x0-y,y0+x,x0-y,y0+x);
- g.drawLine(x0-x,y0+y,x0-x,y0+y);
- }
-
- // Circle is just Bresenham's algorithm for a scan converted circle
- public void circle(int x0, int y0, int r, Graphics g) {
- int x,y;
- float d;
- x=0;
- y=r;
- d=5/4-r;
- plotpoints(x0,y0,x,y,g);
-
- while (y>x){
- if (d<0) {
- d=d+2*x+3;
- x++;
- } else {
- d=d+2*(x-y)+5;
- x++;
- y--;
- }
- plotpoints(x0,y0,x,y,g);
- }
- }
-
- // Paint is the main part of the program
- @Override
- public void paint(Graphics g) {
- int xh, yh, xm, ym, xs, ys, s = 0, m = 10, h = 10, xcenter, ycenter;
- String today;
-
- currentDate = new Date();
- SimpleDateFormat formatter = new
SimpleDateFormat("s",Locale.getDefault());
- try {
- s = Integer.parseInt(formatter.format(currentDate));
- } catch (NumberFormatException n) {
- s = 0;
- }
- formatter.applyPattern("m");
- try {
- m = Integer.parseInt(formatter.format(currentDate));
- } catch (NumberFormatException n) {
- m = 10;
- }
- formatter.applyPattern("h");
- try {
- h = Integer.parseInt(formatter.format(currentDate));
- } catch (NumberFormatException n) {
- h = 10;
- }
- formatter.applyPattern("EEE MMM dd HH:mm:ss yyyy");
- today = formatter.format(currentDate);
- xcenter=80;
- ycenter=55;
-
- // a= s* pi/2 - pi/2 (to switch 0,0 from 3:00 to 12:00)
- // x = r(cos a) + xcenter, y = r(sin a) + ycenter
-
- xs = (int)(Math.cos(s * 3.14f/30 - 3.14f/2) * 45 + xcenter);
- ys = (int)(Math.sin(s * 3.14f/30 - 3.14f/2) * 45 + ycenter);
- xm = (int)(Math.cos(m * 3.14f/30 - 3.14f/2) * 40 + xcenter);
- ym = (int)(Math.sin(m * 3.14f/30 - 3.14f/2) * 40 + ycenter);
- xh = (int)(Math.cos((h*30 + m/2) * 3.14f/180 - 3.14f/2) * 30 +
xcenter);
- yh = (int)(Math.sin((h*30 + m/2) * 3.14f/180 - 3.14f/2) * 30 +
ycenter);
-
- // Draw the circle and numbers
-
- g.setFont(clockFaceFont);
- g.setColor(handColor);
- circle(xcenter,ycenter,50,g);
- g.setColor(numberColor);
- g.drawString("9",xcenter-45,ycenter+3);
- g.drawString("3",xcenter+40,ycenter+3);
- g.drawString("12",xcenter-5,ycenter-37);
- g.drawString("6",xcenter-3,ycenter+45);
-
- // Erase if necessary, and redraw
-
- g.setColor(getBackground());
- if (xs != lastxs || ys != lastys) {
- g.drawLine(xcenter, ycenter, lastxs, lastys);
- g.drawString(lastdate, 5, 125);
- }
- if (xm != lastxm || ym != lastym) {
- g.drawLine(xcenter, ycenter-1, lastxm, lastym);
- g.drawLine(xcenter-1, ycenter, lastxm, lastym); }
- if (xh != lastxh || yh != lastyh) {
- g.drawLine(xcenter, ycenter-1, lastxh, lastyh);
- g.drawLine(xcenter-1, ycenter, lastxh, lastyh); }
- g.setColor(numberColor);
- g.drawString("", 5, 125);
- g.drawString(today, 5, 125);
- g.drawLine(xcenter, ycenter, xs, ys);
- g.setColor(handColor);
- g.drawLine(xcenter, ycenter-1, xm, ym);
- g.drawLine(xcenter-1, ycenter, xm, ym);
- g.drawLine(xcenter, ycenter-1, xh, yh);
- g.drawLine(xcenter-1, ycenter, xh, yh);
- lastxs=xs; lastys=ys;
- lastxm=xm; lastym=ym;
- lastxh=xh; lastyh=yh;
- lastdate = today;
- currentDate=null;
- }
-
- @Override
- public void start() {
- timer = new Thread(this);
- timer.start();
- }
-
- @Override
- public void stop() {
- timer = null;
- }
-
- @Override
- public void run() {
- Thread me = Thread.currentThread();
- while (timer == me) {
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- }
- repaint();
- }
- }
-
- @Override
- public void update(Graphics g) {
- paint(g);
- }
-
- @Override
- public String getAppletInfo() {
- return "Title: A Clock \nAuthor: Rachel Gollub, 1995 \nAn analog
clock.";
- }
-
- @Override
- public String[][] getParameterInfo() {
- String[][] info = {
- {"bgcolor", "hexadecimal RGB number", "The background color.
Default is the color of your browser."},
- {"fgcolor1", "hexadecimal RGB number", "The color of the hands and
dial. Default is blue."},
- {"fgcolor2", "hexadecimal RGB number", "The color of the seconds
hand and numbers. Default is dark gray."}
- };
- return info;
- }
-}
diff --git a/webapps/examples/jsp/plugin/plugin.html
b/webapps/examples/jsp/plugin/plugin.html
deleted file mode 100644
index 27bc51b..0000000
--- a/webapps/examples/jsp/plugin/plugin.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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 License for the specific language governing permissions and
- limitations under the License.
--->
-<head>
-<title>Untitled Document</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-<p><font color="#0000FF"><a href="plugin.jsp"><img src="../images/execute.gif"
align="right" border="0"></a><a href="../index.html"><img
src="../images/return.gif" width="24" height="24" align="right"
border="0"></a></font></p>
-
-<h3><a href="plugin.jsp.html">Source Code for Plugin Example<font
color="#0000FF"></a>
- </font> </h3>
-
-</body>
-</html>
diff --git a/webapps/examples/jsp/plugin/plugin.jsp
b/webapps/examples/jsp/plugin/plugin.jsp
deleted file mode 100644
index a07dda3..0000000
--- a/webapps/examples/jsp/plugin/plugin.jsp
+++ /dev/null
@@ -1,34 +0,0 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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 License for the specific language governing permissions and
- limitations under the License.
---%>
-<html>
-<title> Plugin example </title>
-<body bgcolor="white">
-<h3> Current time is : </h3>
-<jsp:plugin type="applet" code="Clock2.class" codebase="applet"
jreversion="1.2" width="160" height="150" >
- <jsp:fallback>
- Plugin tag OBJECT or EMBED not supported by browser.
- </jsp:fallback>
-</jsp:plugin>
-<p>
-<h4>
-<font color=red>
-The above applet is loaded using the Java Plugin from a jsp page using the
-plugin tag.
-</font>
-</h4>
-</body>
-</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]