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 <ma...@apache.org> 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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org