rogerrut 2004/07/21 11:14:23
Added: applications/perl/src/webapp/cgi-bin perl-demo.cgi
perl-demo-2.cgi
applications/perl/src/java/org/apache/jetspeed/portlets/perl
PerlPortlet.java PerlParameters.java
applications/perl project.properties project.xml maven.xml
applications/perl/src/webapp/WEB-INF portlet.xml
jetspeed-portlet.xml web.xml
Log:
Adding a Portlet Application for running PERL/CGI scripts inside Jetspeed.
The perl portlets includes two sample cgi's scripts.
Revision Changes Path
1.1
jakarta-jetspeed-2/applications/perl/src/webapp/cgi-bin/perl-demo.cgi
Index: perl-demo.cgi
===================================================================
#!/usr/bin/perl --
print qq(
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>SLA Report</title>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<style type="text/css">
<!--
td {color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12;}
tr {color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12;}
td.back {background-color: #ccffcc;}
td.back2 {background-color: #ffffa6;}
td.back3 {background-color: #ffffff;}
td.back4 {background-color: #fef8cb; color: #cc0000;}
td.back5 {background-color: #fef8cb; color: #cc0000; font-weight: bold;}
td.head {background-color: #990000; font-family: Arial, Helvetica, sans-serif;
font-size: 12; font-weight: bold; color: #ffffff;}
td.row1 {background-color: #ffffcc; font-family: Arial, Helvetica, sans-serif;
font-size: 12;}
td.row2 {background-color: #eeeeee; font-family: Arial, Helvetica, sans-serif;
font-size: 12;}
a.std:link {
color:#CC3300;
font-size: 12px;
font-family:Arial; Helvetica; sans-serif;
text-decoration: underline;
font-weight: normal;
}
a.std:visited {
color:#CC3300;
font-size: 12px;
font-family:Arial; Helvetica; sans-serif;
text-decoration: underline;
font-weight: normal;
}
a.std:active {
color:#CC3300;
font-size: 12px;
font-family:Arial; Helvetica; sans-serif;
text-decoration: underline;
font-weight: normal;
}
a.std:hover {
color:#CC3300;
font-size: 12px;
font-family:Arial; Helvetica; sans-serif;
text-decoration: underline;
font-weight: normal;
}
/*Center paragraph*/
p.center {
color:#000;
font-family:arial; helvetica; sans-serif;
font-size: 12px;
font-weight: normal;
}
/*Itallic paragraph*/
p.italic {
color:#000;
font-family:arial; Helvetica; sans-serif;
font-style: italic;
font-size: 12px;
font-weight: normal;
}
p.quote {
font-size: 14px;
font-family:Arial; Helvetica; sans-serif;
color: #000;
line-height: 18pt;
text-align: left;
font-style: italic;
font-weight: bold;
}
h1 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 18px;
font-weight: bold;
}
h2 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 14px;
font-weight: bold;
}
h3 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 12px;
font-weight: bold;
}
h4 {
color:#FFFFFF;
font-family:Arial; Helvetica; sans-serif;
font-size: 12px;
font-weight: bold;
}
h5 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 16px;
font-style: italic;
font-weight: normal;
}
h6 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 18px;
font-weight: bold;
}
-->
</style>
</head>
<body>
<div id=banner>
<table class=border width=100% cellspacing=0 cellpadding=5 border=0>
<tr>
<td class=back3><img src=content/images/jetspeed-logo.gif></td>
<td class=back3 align=center><br><h5>Operations Service Levels YTD </h5></td>
</tr>
<tr>
<td class=back3><h2>J2 Factory Service - Uptime and Unscheduled Downtime</td></h2>
<td class=back3 align=right><h2></td></h2>
</tr>
</table>
</div>
<div id=report>
<table class=border width=100% cellspacing=1 cellpadding=0 border=0>
<table class=border width=100% cellspacing=0 cellpadding=5 border=0>
<tr>
<td class=back colspan=3 align=left><h2>Report Period: January 1, 2004 to April 13,
2004</td></h2>
</tr>
<tr>
<td class=back align=left><h2>50 Live Co Brands</td></h2>
<td class=back align=left><h2>Average Service Level: 99.99%</td></h2>
<td class=back align=left><h2>Unscheduled Downtime 635 minutes</td></h2>
</tr>
<tr>
<td class=back align=center colspan=8><h2>Downtime in Minutes</td></h2>
</tr>
</table>
<table class=border width=100% cellspacing=1 cellpadding=2 border=0>
<tr>
<td class=back2> </td>
<td class=back2 align=left><h2>Data<br>Center</td></h2>
<td class=back2 align=left><br><h2>Co-brand</td></h2>
<td class=back2 align=center><h2>Unscheduled<br>Downtime</td></h2>
<td class=back2 align=center><h2>Service<br>Availability(%)</td></h2>
<td class=back2 align=center><h2>Monthly<br>SLA(%)</td></h2>
<td class=back2 align=center><h2>Scheduled<br>Downtime</td></h2>
<td class=back2 align=center><h2>Partial<br>Downtime</td></h2>
</tr>
<tr>
<td class=back4 align=center>1</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back4 align=left>Alpha-ING</td>
<td class=back4 align=center>15</td>
<td class=back4 align=center>99.99</td>
<td class=back2 align=center><b>99.50</b></td>
<td class=back4 align=center>0</td>
<td class=back4 align=center>0</td>
</tr>
<tr>
<td class=back4 align=center>2</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back4 align=left>Mexican Express</td>
<td class=back4 align=center>15</td>
<td class=back4 align=center>99.99</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back4 align=center>0</td>
<td class=back4 align=center>0</td>
</tr>
<tr>
<td class=back4 align=center>3</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back4 align=left>OpenJMS</td>
<td class=back4 align=center>15</td>
<td class=back4 align=center>99.99</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back4 align=center>115</td>
<td class=back4 align=center>0</td>
</tr>
<tr>
<td class=back3 align=center>4</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back3 align=left>Jakarta</td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>100.00</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>0</td>
</tr>
<tr>
<td class=back4 align=center>5</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back4 align=left>Ant</td>
<td class=back4 align=center>179</td>
<td class=back4 align=center>99.88</td>
<td class=back2 align=center><b>99.50</b></td>
<td class=back4 align=center>0</td>
<td class=back4 align=center>0</td>
</tr>
<tr>
<td class=back4 align=center>6</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back4 align=left>Maven</td>
<td class=back4 align=center>15</td>
<td class=back4 align=center>99.99</td>
<td class=back2 align=center><b>99.50</b></td>
<td class=back4 align=center>0</td>
<td class=back4 align=center>0</td>
</tr>
<tr>
<td class=back3 align=center>7</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back3 align=left>Geronimo</td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>100.00</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>0</td>
</tr>
<tr>
<td class=back3 align=center>8</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back3 align=left>Jitta</td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>100.00</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back3 align=center>535</td>
<td class=back3 align=center>0</td>
</tr>
<tr>
<td class=back3 align=center>9</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back3 align=left>James</td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>100.00</td>
<td class=back2 align=center><b>99.50</b></td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>0</td>
</tr>
<tr>
<td class=back4 align=center>10</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back4 align=left>Gump</td>
<td class=back4 align=center>15</td>
<td class=back4 align=center>99.99</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back4 align=center>0</td>
<td class=back4 align=center>0</td>
</tr>
<tr>
<td class=back4 align=center>11</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back4 align=left>Tomcat</td>
<td class=back4 align=center>15</td>
<td class=back4 align=center>99.99</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back4 align=center>535</td>
<td class=back4 align=center>22</td>
</tr>
<tr>
<td class=back3 align=center>12</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back3 align=left>Catalina</td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>100.00</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back3 align=center>535</td>
<td class=back3 align=center>39</td>
</tr>
<tr>
<td class=back3 align=center>13</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back3 align=left>Avalon</td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>100.00</td>
<td class=back2 align=center><b>98.00</b></td>
<td class=back3 align=center>535</td>
<td class=back3 align=center>39</td>
</tr>
<tr>
<td class=back3 align=center>14</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back3 align=left>Hibernate</td>
<td class=back3 align=center>0</td>
<td class=back3 align=center>100.00</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back3 align=center>535</td>
<td class=back3 align=center>0</td>
</tr>
</table>
<table class=border width=100% cellspacing=0 cellpadding=5 border=0>
<tr>
<td class=back3><h2>Production Outage Issues:</td></h2>
</tr>
<tr>
<td class=back align=left><h2>Unscheduled</td></h2>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #1 - Ticket created 2004-05-20 11:54:57 for
group1</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 1, 2004 - 10:20:00 am to
March 1, 2004 - 10:35:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 03/1/2004 between 10:20 am PST to 10:35 am
PST One of the database servers crashed and rebooted. It did not cleanly fail-over to
the backup database server. The databases were manually brought up and service was
restored.</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> J2 Factory, Jetspeed-1, Jetspeed-2,
Jakarta</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> All affected Cobrands 15 maintenance
minutes used</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back align=left><h2>Scheduled</td></h2>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #21 - Ticket created 2004-05-20 13:31:20 for J2
Factory</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 13, 2004 - 10:00:00 am to
March 14, 2004 - 01:00:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/13/2004 10PM to 3/14/2004 01:00 AM PST
Scheduled Maintenance for Database cluster maintenance and testing Preparation for the
upgrade to the new database hardware platform</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> Gump, Jakarta, Maven, Ant</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> All affected Cobrands 180 maintenance
minutes used</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #23 - Ticket created 2004-05-21 10:15:33 for
group2</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 27, 2004 - 10:00:00 am to
March 27, 2004 - 11:55:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/27/2004 10PM to 3/27/2004 11:55 PM PST
Scheduled Maintenance for Database cluster maintenance and testing Preparation for the
upgrade to the new database hardware platform</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> Gump, Jakarta, Maven, Ant</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> All affected Cobrands 115 maintenance
minutes used</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #8 - Ticket created 2004-05-20 12:58:19 for J2
Factory</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 5, 2004 - 2:00:00 am to
March 5, 2004 - 2:18:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 03/05/2004 2:00 pm to 2:18 pm PST
Excessive number of request on Instant server. Found the process to be defunct on some
of the servers. This was fixed by bouncing the servers.</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> J2 Factory</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> J2 Factory 18 maintenance minutes
used.</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #9 - Ticket created 2004-05-20 13:01:01 for J2
Factory</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 8, 2004 - 09:13:00 am to
March 8, 2004 - 09:30:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/8/2004 between 9:13 am and 9:30 am PST
Excessive number of request on Instant server. Found the process to be defunct on some
of the servers. This was fixed by bouncing the servers.</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> J2 Factory</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> J2 Factory 17 maintenance minutes
used.</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #10 - Ticket created 2004-05-20 13:03:13 for J2
Factory</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 8, 2004 - 9:30:00 am to
March 8, 2004 - 9:40:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/8/2004 between 9:30 am and 9:40 am PST
Excessive number of request on Instant server. Found the process to be defunct on some
of the servers. This was fixed by bouncing the servers.</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> J2 Factory</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> J2 Factory 10 maintenance minutes
used.</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #15 - Ticket created 2004-05-20 13:14:27 for
Gump</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 15, 2004 - 11:00:00 am to
March 15, 2004 - 11:39:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/15/2004 between 11:00 am to 11:39 am PST
The database reached the max connection limit, instant server process was not able to
generate any instant request and hence there was a backlog of requests in the instant
queue This was fixed by stopping the queue for a while</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> Gump</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> Gump 39 maintenance minutes used.</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #16 - Ticket created 2004-05-20 13:18:05 for
Gump Private</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 16, 2004 - 11:00:49 am to
March 16, 2004 - 11:39:49 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/16/2004 between 11:00 am to 11:39 am PST
Excessive number of request on Instant server. Found the process to be defunct on some
of the servers. This was fixed by bouncing the servers.</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> Gump Private</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> Gump Private 39 maintenance minutes
used.</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #17 - Ticket created 2004-05-20 13:19:45 for
Tomcat</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 17, 2004 - 10:32:00 am to
March 17, 2004 - 10:56:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/17/2004 between 10:32 pm to 10:56 pm PST
One of the server from the web server pool was not responding to he request as it was
in defunct state Problem is resolved by bouncing the server</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> Tomcat</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> Tomcat 24 maintenance minutes used.</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #18 - Ticket created 2004-05-20 13:26:40 for
Tomcat</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 17, 2004 - 11:20:00 am to
March 17, 2004 - 11:24:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/17/2004 between 11:20 pm to 11:24 pm PST
One of the server from the web server pool was not responding to to be defunct on some
of the servers. This was fixed by bouncing the servers</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> Tomcat</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> Tomcat 4 maintenance minutes used.</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #19 - Ticket created 2004-05-20 13:28:24 for
Telephia</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 29, 2004 - 1:30:00 am to
March 29, 2004 - 2:55:42 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/29/2004 between 1:30 pm and 2:55 pm PST
Our monitoring system indicated a problem with the edit page for Telephia cobrand. One
of the server from the web server pool was not responding to the request as it was in
unstable state. Problem is resolved after bouncing server.</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> Jakarta</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> Jakarta 86 maintenance minutes
used.</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #20 - Ticket created 2004-05-20 13:29:38 for J2
Factory</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 29, 2004 - 08:15:00 am to
March 29, 2004 - 08:34:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/29/2004 between 8:15 am to 8:34 am
PST.The backend server, which is responsible for instant refresh, was not responding
to any of the refresh requests. The problem is fixed after bouncing this process</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> J2 Factory</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> J2 Factory 19 maintenance minutes
used.</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back align=left><h2>Partial Ignore</td></h2>
</tr>
</table>
</div>
</body>
</html>
);
1.1
jakarta-jetspeed-2/applications/perl/src/webapp/cgi-bin/perl-demo-2.cgi
Index: perl-demo-2.cgi
===================================================================
#!/usr/bin/perl --
print qq(
<style type="text/css">
<!--
td {color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12;}
tr {color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12;}
td.back {background-color: #ccffcc;}
td.back2 {background-color: #ffffa6;}
td.back3 {background-color: #ffffff;}
td.back4 {background-color: #fef8cb; color: #cc0000;}
td.back5 {background-color: #fef8cb; color: #cc0000; font-weight: bold;}
td.head {background-color: #990000; font-family: Arial, Helvetica, sans-serif;
font-size: 12; font-weight: bold; color: #ffffff;}
td.row1 {background-color: #ffffcc; font-family: Arial, Helvetica, sans-serif;
font-size: 12;}
td.row2 {background-color: #eeeeee; font-family: Arial, Helvetica, sans-serif;
font-size: 12;}
a.std:link {
color:#CC3300;
font-size: 12px;
font-family:Arial; Helvetica; sans-serif;
text-decoration: underline;
font-weight: normal;
}
a.std:visited {
color:#CC3300;
font-size: 12px;
font-family:Arial; Helvetica; sans-serif;
text-decoration: underline;
font-weight: normal;
}
a.std:active {
color:#CC3300;
font-size: 12px;
font-family:Arial; Helvetica; sans-serif;
text-decoration: underline;
font-weight: normal;
}
a.std:hover {
color:#CC3300;
font-size: 12px;
font-family:Arial; Helvetica; sans-serif;
text-decoration: underline;
font-weight: normal;
}
/*Center paragraph*/
p.center {
color:#000;
font-family:arial; helvetica; sans-serif;
font-size: 12px;
font-weight: normal;
}
/*Itallic paragraph*/
p.italic {
color:#000;
font-family:arial; Helvetica; sans-serif;
font-style: italic;
font-size: 12px;
font-weight: normal;
}
p.quote {
font-size: 14px;
font-family:Arial; Helvetica; sans-serif;
color: #000;
line-height: 18pt;
text-align: left;
font-style: italic;
font-weight: bold;
}
h1 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 18px;
font-weight: bold;
}
h2 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 14px;
font-weight: bold;
}
h3 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 12px;
font-weight: bold;
}
h4 {
color:#FFFFFF;
font-family:Arial; Helvetica; sans-serif;
font-size: 12px;
font-weight: bold;
}
h5 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 16px;
font-style: italic;
font-weight: normal;
}
iv
h6 {
color:#000;
font-family:Arial; Helvetica; sans-serif;
font-size: 18px;
font-weight: bold;
}
-->
</style>
<div id=banner>
<table class=border width=100% cellspacing=0 cellpadding=5 border=0>
<tr>
<td class=back3><img src=content/images/jetspeed-logo.gif></td>
<td class=back3 align=center><br><h5>Operations Service Levels YTD </h5></td>
</tr>
<tr>
<td class=back3><h2>Next Gen Enterprise Service - Uptime and Unscheduled
Downtime</td></h2>
<td class=back3 align=right><h2></td></h2>
</tr>
</table>
</div>
<table class=border width=100% cellspacing=0 cellpadding=5 border=0>
<tr>
<td class=back colspan=3 align=left><h2>Report Period: January 1, 2004 to April 13,
2004</td></h2>
</tr>
<tr>
<td class=back align=left><h2>50 Live Co Brands</td></h2>
<td class=back align=left><h2>Average Service Level: 99.99%</td></h2>
<td class=back align=left><h2>Unscheduled Downtime 635 minutes</td></h2>
</tr>
<tr>
<td class=back align=center colspan=8><h2>Downtime in Minutes</td></h2>
</tr>
</table>
<table class=border width=100% cellspacing=1 cellpadding=2 border=0>
<tr>
<td class=back2> </td>
<td class=back2 align=left><h2>Data<br>Center</td></h2>
<td class=back2 align=left><br><h2>Co-brand</td></h2>
<td class=back2 align=center><h2>Unscheduled<br>Downtime</td></h2>
<td class=back2 align=center><h2>Service<br>Availability(%)</td></h2>
<td class=back2 align=center><h2>Monthly<br>SLA(%)</td></h2>
<td class=back2 align=center><h2>Scheduled<br>Downtime</td></h2>
<td class=back2 align=center><h2>Partial<br>Downtime</td></h2>
</tr>
<tr>
<td class=back4 align=center>1</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back4 align=left>NextGen Enterprise</td>
<td class=back4 align=center>15</td>
<td class=back4 align=center>99.99</td>
<td class=back2 align=center><b>99.50</b></td>
<td class=back4 align=center>0</td>
<td class=back4 align=center>0</td>
</tr>
<tr>
<td class=back4 align=center>2</td>
<td class=back2 align=left><b>RWS</b></td>
<td class=back4 align=left>Argentina Express</td>
<td class=back4 align=center>15</td>
<td class=back4 align=center>99.99</td>
<td class=back2 align=center><b>99.70</b></td>
<td class=back4 align=center>0</td>
<td class=back4 align=center>0</td>
</tr>
</table>
<table class=border width=100% cellspacing=0 cellpadding=5 border=0>
<tr>
<td class=back3><h2>Production Outage Issues:</td></h2>
</tr>
<tr>
<td class=back align=left><h2>Unscheduled</td></h2>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #1 - Ticket created 2004-05-20 11:54:57 for
group1</b></td>
</tr>
<tr>
<td class=back3 align=left><b>Event Date/Time: From March 1, 2004 - 10:20:00 am to
March 1, 2004 - 10:35:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 03/1/2004 between 10:20 am PST to 10:35 am
PST One of the database servers crashed and rebooted. It did not cleanly fail-over to
the backup database server. The databases were manually brought up and service was
restored.</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> Next Gen Enterprise, Jetspeed-1,
Jetspeed-2, Jakarta</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> All affected Cobrands 15 maintenance
minutes used</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back align=left><h2>Scheduled</td></h2>
</tr>
<tr>
<td class=back3 align=left><b>Ticket #21 - Ticket created 2004-05-20 13:31:20 for
Next Gen Enterprise</b></td>
</tr><tr>
<td class=back3 align=left><b>Event Date/Time: From March 13, 2004 - 10:00:00 am to
March 14, 2004 - 01:00:00 am Pacific Time</b></td>
</tr><tr>
<td class=back3 align=left><b>Detail:</b> 3/13/2004 10PM to 3/14/2004 01:00 AM PST
Scheduled Maintenance for Database cluster maintenance and testing Preparation for the
upgrade to the new database hardware platform</td>
</tr><tr>
<td class=back3 align=left><b>Customers:</b> Gump, Jakarta, Maven, Ant</td>
</tr><tr>
<td class=back3 align=left><b>Completed:</b> All affected Cobrands 180 maintenance
minutes used</td>
</tr><tr>
<td class=back3><hr></td>
</tr>
<tr>
<td class=back align=left><h2>Partial Ignore</td></h2>
</tr>
</table>
);
1.1
jakarta-jetspeed-2/applications/perl/src/java/org/apache/jetspeed/portlets/perl/PerlPortlet.java
Index: PerlPortlet.java
===================================================================
/*
* Copyright 2000-2004 The Apache Software Foundation.
*
* 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 License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jetspeed.portlets.perl;
import javax.portlet.GenericPortlet;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import javax.portlet.PortletConfig;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.PortletSession;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.container.JetspeedPortletContext;
/**
* This portlet is executes a Perl/cgi files in a portlet.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
* @version $Id: PerlPortlet.java,v 1.1 2004/07/21 18:14:22 rogerrut Exp $
*/
public class PerlPortlet extends GenericPortlet {
/**
* INIT parameters required by the Perl Portlet:PerlScript, ScriptPath,
DemoMode
*
* Name of the scrip to to execute
*/
public static final String PARAM_PERL_SCRIPT = "PerlScript";
/**
* Name of the Script Path where the perl scripts (among others) are located
*/
public static final String PARAM_SCRIPT_PATH = "ScriptPath";
/**
* DemoMode on or off
*/
public static final String PARAM_DEMO_MODE = "DemoMode";
// Local variables
private String perlScript = "perl-demo.cgi";
private String scriptPath = "cgi-bin";
// Switch that shows basic information about the perl script to run
private boolean bDemoMode = false;
private static final Log log = LogFactory.getLog(PerlPortlet.class);
// caching status -- cache the last query
private String lastQuery = null;
public void init(PortletConfig config) throws PortletException
{
super.init(config);
// Get the INIT PARAMETERS for this portlet. If the values are missing
// throw an exception
scriptPath = config.getInitParameter(PARAM_SCRIPT_PATH);
perlScript = config.getInitParameter(PARAM_PERL_SCRIPT);
String demoMode = config.getInitParameter(PARAM_DEMO_MODE);
if (demoMode != null && demoMode.compareToIgnoreCase("on") == 0)
bDemoMode = true;
if (scriptPath == null)
throw new PortletException("Portlet " + config.getPortletName()
+ " is incorrectly configured. Init parameter "
+ PARAM_SCRIPT_PATH + " not specified");
if (perlScript == null)
throw new PortletException("Portlet " + config.getPortletName()
+ " is incorrectly configured. Init parameter "
+ PARAM_PERL_SCRIPT + " not specified");
}
/**
* doView
* Executes the perl script that is defined by the property PerlScript.
* If the incoming request has the query perl-script= defined this script will
be executed.
*/
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
// Set the content type
response.setContentType("text/html");
// Get a writer object that can be used to generate the output
HttpServletResponse httpResponse =
(HttpServletResponse)((HttpServletResponseWrapper) response).getResponse();
//PrintWriter writer = response.getWriter();
PrintWriter writer = httpResponse.getWriter();
String query = null;
String scriptName = null;
/**
* The Perl parameters are either passed by a session attribute (invoked
through an action) or as a query string (invoked from a href).
* The portlet checks first if a session attribute (SELECTED_VIEW) was defined
and then checks for the query string
*/
PerlParameters perlParam = null;
try
{
perlParam =
(PerlParameters)request.getPortletSession().getAttribute("SELECTED_VIEW",
PortletSession.APPLICATION_SCOPE);
}
catch (Exception e )
{
perlParam = null;
}
if (perlParam != null)
{
query = perlParam.getQueryString();
perlScript = perlParam.getPerlScript();
}
else
{
// Extract the Query string
String queryString = ((HttpServletRequest)((HttpServletRequestWrapper)
request).getRequest()).getQueryString();
// Check if the call is to run the default script or for a different
one (perl-script= defined)
if (queryString == null || queryString.indexOf("perl-script=") == -1)
{
// Execute the perl script defined as the default
scriptName = perlScript;
}
else
{
// Check if the perl script to run is overwritten
scriptName =
queryString.substring(queryString.indexOf("perl-script=")+12);
int del = scriptName.indexOf('&');
if ( del != -1 )
scriptName = scriptName.substring(0, del);
}
// Use the cached query string if the cgi is
if ( queryString == null )
{
query = "";
}
else
{
query = queryString;
}
}
// Open the perl script and extract the perl executable path. It's the same
way as apache HTTP executes PERL
String contextPath =
((JetspeedPortletContext)this.getPortletContext()).getServletContext().getRealPath(
((HttpServletRequestWrapper) request).getServletPath());
String perlExecutable = null;
String rootContextPath = contextPath.substring(0,
contextPath.lastIndexOf("container") ) ;
rootContextPath += scriptPath;
rootContextPath += "/";
String inputPath = rootContextPath;
rootContextPath += perlScript;
// command to execute
String command = null;
// Open the script and read the first line to get the executable
!/usr/bin/perl OR !c:\bin\perl\perl.exe
try
{
BufferedReader in= new BufferedReader(new FileReader(rootContextPath));
String lnExecutable = in.readLine();
if (lnExecutable != null )
{
int ix = lnExecutable.indexOf('!');
if ( ix != -1 )
{
perlExecutable = lnExecutable.substring(ix+1,
lnExecutable.indexOf(' ',ix));
}
}
//Close file
in.close();
StringBuffer commandBuffer = new StringBuffer();
if (perlExecutable == null)
commandBuffer.append(rootContextPath);
else
commandBuffer.append(perlExecutable).append('
').append(rootContextPath);
command = new String(commandBuffer.toString());
}
catch(FileNotFoundException e)
{
writer.println("<P><B>File doesn't exist (" + rootContextPath +
")</B></P>");
}
catch(IOException e)
{
writer.println("<P><B>IO Exception (" + e.getMessage() + ")</B></P>");
}
catch(Exception e)
{
writer.println("<P><B>IO Exception (" + e.getMessage() +
")</B></P>");
}
String envQuery = "QUERY_STRING=" + query;
String[] env = null;
env = new String[]{"REQUEST_METHOD=GET", envQuery};
if ( bDemoMode == true)
{
// Script info. This is for the Demo only
writer.println("<P>The portlet executes the perl script
defined by the init-params. If you don't get an output make sure that the perl
executable defined in the script is valid.");
writer.println("The executable is defined on the first line of
your
script.</P>Examples<ul><li><B>UNIX/Linux:</B>!/usr/bin/perl</li><li><B>Windows:</B>!c:\\bin\\perl\\perl.exe</li></ul>");
writer.println("<B><P>Perl Script:</B>" + rootContextPath +
"<BR>");
writer.println("<B>Perl executable:</B>" + perlExecutable +
"</P>");
}
//Execute the perl script from the command line
if (command != null )
{
// Execute command in a separate process. The perl output is
written to the stdout
try
{
// Start process
Process proc = Runtime.getRuntime().exec(command,env);
// Get stdout of process and create a buffered reader
InputStream in = proc.getInputStream();
BufferedReader perlResult = new BufferedReader(new
InputStreamReader(in));
StringBuffer page = new StringBuffer();
//Wait until proc is done
boolean bProcDone = false;
while (bProcDone == false)
{
try
{
proc.exitValue() ;
bProcDone = true;
}
catch(IllegalThreadStateException e)
{
bProcDone = false; //Not done yet
// Read the buffer otherwise the
process will be blocked because it can't write to the stdout (max size of buffer)
int ln;
while ((ln = perlResult.read()) != -1)
{
char c = (char)ln;
if (c != '\n' && c != '\r')
page.append((char)ln);
}
}
}
// Perl execution done read the remaining buffer
int ln = -1;
while ((ln = perlResult.read()) != -1)
{
char c = (char)ln;
if (c != '\n' && c != '\r')
page.append((char)ln);
}
// Close stream
perlResult.close();
// Write the page
writer.println(page.toString());
}
catch(IOException ioe)
{
writer.println("<P><B>Exception while reading perl
output" + ioe.getMessage() + "</B></P>");
}
}
}
}
1.1
jakarta-jetspeed-2/applications/perl/src/java/org/apache/jetspeed/portlets/perl/PerlParameters.java
Index: PerlParameters.java
===================================================================
/*
* Copyright 2000-2004 The Apache Software Foundation.
*
* 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 License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jetspeed.portlets.perl;
/**
* PerlParameters
* Class holding information about the perl script to execute.This class is typically
attached to a PortletAction (as an attribute).
*
* @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
* @version $Id: PerlParameters.java,v 1.1 2004/07/21 18:14:22 rogerrut Exp $
*/
public class PerlParameters {
private String requestMethod = "GET";
private String queryString = null;
private String perlScript = null;
private String displayMessage = null;
// Getters and setters
public void setRequestMethod(String requestMethod)
{
this.requestMethod = requestMethod;
}
public String getRequestMethod()
{
return this.requestMethod;
}
public void addQueryArgument(String query)
{
if (queryString == null)
{
queryString = query;
}
else
{
queryString += '&';
queryString += query;
}
}
public String getQueryString()
{
return this.queryString;
}
public void setPerlScript(String script)
{
this.perlScript = script;
}
public String getPerlScript()
{
return this.perlScript;
}
public void setDisplayMessage(String msg)
{
this.displayMessage = msg;
}
public String getDisplayMessage()
{
return this.displayMessage;
}
}
1.1 jakarta-jetspeed-2/applications/perl/project.properties
Index: project.properties
===================================================================
# Copyright 2004 The Apache Software Foundation
#
# 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 License for the specific language governing permissions and
# limitations under the License.
#
# $Id: project.properties,v 1.1 2004/07/21 18:14:22 rogerrut Exp $
#
maven.multiproject.type=war
org.apache.jetspeed.portlet.app.name=perl
1.1 jakarta-jetspeed-2/applications/perl/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Id: project.xml,v 1.1 2004/07/21 18:14:22 rogerrut Exp $
-->
<project>
<extend>${basedir}/./../project.xml</extend>
<id>perl</id>
<currentVersion>2.0-a1-dev</currentVersion>
<name>Jetspeed-2 perl Portlet Application</name>
<description>perl Portlet</description>
<shortDescription>perl Portlets</shortDescription>
<repository>
<connection>scm:cvs:pserver:[EMAIL
PROTECTED]:/home/cvspublic:jakarta-jetspeed-2/applications/perl</connection>
<url>http://cvs.apache.org/viewcvs/jakarta-jetspeed-2/applications/perl/</url>
</repository>
<dependencies>
<dependency>
<id>portlet-api</id>
<groupId>portlet-api</groupId>
<version>1.0</version>
<properties>
<war.bundle>false</war.bundle>
</properties>
</dependency>
<dependency>
<id>jstl</id>
<version>1.0.2</version>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<id>taglibs:standard</id>
<version>1.0.2</version>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<id>taglibs:request</id>
<version>1.0.1</version>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<id>servletapi</id>
<version>2.3</version>
<properties>
<war.bundle>false</war.bundle>
</properties>
</dependency>
<dependency>
<id>jetspeed-commons</id>
<groupId>jetspeed2</groupId>
<version>2.0-a1-dev</version>
<properties>
<war.bundle>false</war.bundle>
</properties>
</dependency>
<!-- warred jars -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.6.1</version>
<url>http://jakarta.apache.org/commons/beanutils.html</url>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>2.1</version>
<url>http://jakarta.apache.org/commons/collections.html</url>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.5</version>
<url>http://jakarta.apache.org/commons/digester.html</url>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.0</version>
<url>http://jakarta.apache.org/commons/fileupload/</url>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.0</version>
<url>http://jakarta.apache.org/commons/lang.html</url>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.1.2</version>
<url>http://jakarta.apache.org/commons/validator/</url>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.7</version>
<url>http://jakarta.apache.org/oro/</url>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/java</sourceDirectory>
</build>
<reports>
<report>maven-jdepend-plugin</report>
<report>maven-pmd-plugin</report>
<report>maven-changelog-plugin</report>
<report>maven-file-activity-plugin</report>
<report>maven-developer-activity-plugin</report>
<report>maven-license-plugin</report>
<report>maven-javadoc-plugin</report>
<report>maven-jxr-plugin</report>
<report>maven-junit-report-plugin</report>
<report>maven-linkcheck-plugin</report>
<report>maven-tasklist-plugin</report>
</reports>
</project>
1.1 jakarta-jetspeed-2/applications/perl/maven.xml
Index: maven.xml
===================================================================
<project default="java:jar"
xmlns:j="jelly:core"
xmlns:define="jelly:define"
xmlns:reactor="reactor">
<!-- ================================================================ -->
<!-- Hot Deploy for mundane everyday development under Catalina -->
<!-- ================================================================ -->
<goal name="hotdeploy">
<echo message="Hot Deploying ${org.apache.jetspeed.portlet.app.name} to
${org.apache.jetspeed.deploy.war.dir}"/>
<copy
todir="${org.apache.jetspeed.deploy.war.dir}/${org.apache.jetspeed.portlet.app.name}/WEB-INF/classes">
<fileset dir="${maven.build.dir}/classes">
</fileset>
</copy>
<copy
todir="${org.apache.jetspeed.deploy.war.dir}/${org.apache.jetspeed.portlet.app.name}/">
<fileset dir="${maven.war.src}">
</fileset>
</copy>
</goal>
<preGoal name="hotdeploy">
<attainGoal name= "java:compile"/>
</preGoal>
</project>
1.1
jakarta-jetspeed-2/applications/perl/src/webapp/WEB-INF/portlet.xml
Index: portlet.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2004 The Apache Software Foundation
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 License for the specific language governing permissions and
limitations under the License.
-->
<portlet-app id="perl" version="1.0">
<portlet id="perl-demo">
<init-param>
<name>PerlScript</name>
<value>perl-demo.cgi</value>
</init-param>
<init-param>
<name>ScriptPath</name>
<value>cgi-bin</value>
</init-param>
<init-param>
<name>DemoMode</name>
<value>off</value>
</init-param>
<portlet-name>perl-demo</portlet-name>
<display-name>Perl demo Portlet</display-name>
<portlet-class>org.apache.jetspeed.portlets.perl.PerlPortlet</portlet-class>
<expiration-cache>-1</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<portlet-info>
<title>Perl Portlet</title>
<short-title>Perl Portlet Demo</short-title>
</portlet-info>
</portlet>
<portlet id="perl-demo2">
<init-param>
<name>PerlScript</name>
<value>perl-demo-2.cgi</value>
</init-param>
<init-param>
<name>ScriptPath</name>
<value>cgi-bin</value>
</init-param>
<init-param>
<name>DemoMode</name>
<value>on</value>
</init-param>
<portlet-name>perl-demo2</portlet-name>
<display-name>Perl demo2 Portlet</display-name>
<portlet-class>org.apache.jetspeed.portlets.perl.PerlPortlet</portlet-class>
<expiration-cache>-1</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<portlet-info>
<title>Perl Portlet</title>
<short-title>Perl Portlet Demo</short-title>
</portlet-info>
</portlet>
</portlet-app>
1.1
jakarta-jetspeed-2/applications/perl/src/webapp/WEB-INF/jetspeed-portlet.xml
Index: jetspeed-portlet.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2004 The Apache Software Foundation
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 License for the specific language governing permissions and
limitations under the License.
-->
<portlet-app id="perl" version="1.0"
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
xmlns:js="http://portals.apache.org/jetspeed"
xmlns:dc="http://www.purl.org/dc">
<dc:title>Perl Portlets</dc:title>
<dc:title xml:lang="en">Perl Portlets</dc:title>
<dc:creator>J2 Team</dc:creator>
<portlet>
<portlet-name>perl-demo</portlet-name>
<dc:title>perl Demo Portlet</dc:title>
<dc:creator>J2 Team</dc:creator>
</portlet>
<portlet>
<portlet-name>perl-demo2</portlet-name>
<dc:title>perl Demo2 Portlet</dc:title>
<dc:creator>J2 Team</dc:creator>
</portlet>
</portlet-app>
1.1 jakarta-jetspeed-2/applications/perl/src/webapp/WEB-INF/web.xml
Index: web.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<!--
Copyright 2004 The Apache Software Foundation
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 License for the specific language governing permissions and
limitations under the License.
-->
<web-app>
<display-name>Perl Portlets</display-name>
<description>Perl Portlets Running Perlscripts in a frame</description>
</web-app>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]