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>&nbsp;</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>&nbsp;</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]

Reply via email to