You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(157) |
Nov
(121) |
Dec
(19) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(34) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <rga...@us...> - 2002-10-21 20:53:48
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/css
In directory usw-pr-cvs1:/tmp/cvs-serv18569
Added Files:
common.css page.css
Log Message:
Added skin to forrest
--- NEW FILE: common.css ---
html body, body div, body p, body th, body td, body li, body dl, body dd, input, select, textarea {
font-family: Arial, Helvetica, sans-serif;
}
p, ul, ol, dl {
margin-top: .67em;
margin-bottom: .67em;
}
table { width: 100%; font-size: 11px; }
caption {
text-align: center;
font-size: 16px;
text-weight: bold;
color: black;
background-color: #EEEEFF;}
th { text-align: center; text-weight: bold; background-color: #EEEEFF;}
td { font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;}
th.body-table {
background-color: #BBBBFF;
}
td.body-table {
background-color: #EEEEFF;
vertical-align: top;
}
form {
margin-top: 0;
margin-bottom: 0;
}
body {
background-color: white;
color: black;
font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;
margin: 0px;
padding: 10px;
}
p {
text-align: justify;
}
div {
margin: 0px;
padding: 0px;
}
h1, h2, h3, h4, h5, h6 {
page-break-after: avoid;
color: black;
font-family: Verdana, Arial, sans-serif;
font-weight: bold;
padding: 0px;
margin: 0px;
margin-left: 40px;
}
h1 {
border: 1px solid #003366;
font-size: 18pt;
padding: 2px;
margin-bottom: 10px;
text-align: center;
background-color: #EEEEFF;
margin-left: 0px;
}
h2 {
font-size: 16pt;
}
h3 {
font-size: 14pt;
color: #000033;
}
h4 {
font-size: 12pt;
color: #000066;
}
h5 {
font-size: 11pt;
font-style: italic;
text-align: center;
color: #333399;
margin-left: 0px;
}
h6 {
font-size: 10pt;
text-align: center;
font-weight: normal;
color: #3333CC;
margin-left: 0px;
}
a, a:visited {
color: #336699;
}
a:hover, a:active {
color: #003366;;
}
#breadcrumbs {
border-top: 1px solid #003366;
border-bottom: 1px solid #003366;
margin-top: 10px;
margin-bottom: 20px;
padding-top: 0px;
padding-bottom: 2px;
padding-left: 10px;
font-size: 10pt;
font-weight: bold;
}
#menu {
border: 1px solid #003366;
width: 175px;
}
#menu h4 {
margin: 0px;
padding-left: 5px;
padding-top: 2px;
padding-bottom: 2px;
color: black;
text-align: left;
font-style: normal;
font-size: 10pt;
background-color: #EEEEFF;
}
#submenu h4 {
margin: 0px;
padding-left: 5px;
padding-top: 2px;
padding-bottom: 2px;
color: black;
text-align: left;
font-style: normal;
font-size: 10pt;
background-color: #EEEEFF;
}
#submenu ul {
margin-top: 5px;
margin-bottom: 5px;
}
#authors {
font-size: 10px;
text-align: right;
}
#footer {
border-top: 1px solid #003366;
margin-top: 20px;
padding: 3px;
text-align: center;
font-size: 9pt;
font-style: italic;
}
#metric {
background-color: #EEEEFF;
border-top: 1px solid #003366;
}
a.breadcrumbs, a.breadcrumbs:visited, a.menu, a.menu:visited {
font-size: 10pt;
font-weight: bold;
text-decoration: none;
}
a.breadcrumbs:hover, a.breadcrumbs:active, a.menu:hover, a.menu:active {
text-decoration: underline;
}
.section {
margin-left: 40px;
}
.code {
font-family: Courier, Courier New, monospace;
padding: 4px;
border: 1px solid #003366;
}
.code, pre {
font-size: 11px;
}
.section .code {
margin-left: -40px;
}
.section .section .code {
margin-left: -80px;
}
.fixed {
font-family: Courier, Courier New, monospace;
}
@media print {
body td {
font-family: Times New Roman, Zurich Bt, serif;
font-size: 10pt;
}
#menu h4 {
margin-left: 0px;
}
.code {
page-break-inside: avoid;
}
p ul {
page-break-inside: avoid;
}
.section .code {
margin-left: 0px;
}
#menu {
display: none;
width: 0px;
}
#contents div {
margin: 0px;
}
}
.content { padding: 5px 5px 5px 10px; }
.frame { width: 95%; margin: 5px 20px 5px 20px; font-size: 11px; }
.frame .content { margin: 0px; }
.note { border: solid 1px #A0C9F5; background-color: #f0f0ff; }
.note .label { background-color: #A0C9F5; color: #ffffff; }
.warning { border: solid 1px #D00000; background-color: #fff0f0; }
.warning .label { background-color: #D00000; color: #ffffff; }
.fixme { border: solid 1px #C6C650; background-color: #FAF9C3; }
.fixme .label { background-color: #C6C650; color: #ffffff; }
--- NEW FILE: page.css ---
body { background-color: #FFFFFF; margin: 0px 0px 0px 0px; font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif}
form { margin: 0px; padding: 0px; border: 0px; }
ul,ol { margin: 10px 5px 10px 40px; padding: 0px; }
li { margin: 2px 0px 2px 0px; }
dl { margin: 10px 5px 10px 20px; padding: 0px; }
dt { font-weight: bold; margin: 5px 0px 0px 0px; }
table { border: 0px; width: 100%; }
td { font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif }
img { border: 0px; }
pre { padding: 10px 10px 10px 10px; margin-bottom: 0px }
a:link { color: #0F3660 }
a:visited { color: #880000 }
a:active { font-weight: bold }
a:hover { color: #880000; }
.path { font-size: 10px; background-color: #CFDCED; border-bottom-color: #4A6D8C; border-bottom-style: solid; border-bottom-width: 2px; padding: 2px; }
.path .current { font-weight: bold; }
.top { background-color: #294563; }
.top img { margin: 5px; }
.topline { background-color: #4C6C8F; }
.navbar { background-color: #CFDCED; color: #4C6C8F; font-weight: bold; border-bottom-color: #4A6D8C; border-bottom-style: solid; border-bottom-width: 1px; padding: 2px;}
.search { font-size: 13px; color: #ffffff; margin-right: 10px; padding: 10px 5px 3px 5px; background-color: #4A6D8C; }
.tabs { font-size: 12px; background-color: #294563; padding: 2px 7px 5px 7px; }
.tabs .tab { background-color: #CFDCED; padding: 4px 6px 4px 6px;}
.tabs .current { background-color: #4C6C8F; font-weight: bold; padding: 5px 6px 6px 6px; ; color: #FFFFFF}
.copyright { text-align: center; font-size: 10px; background-color: #CFDCED; border-top-color: #4A6D8C; border-top-style: solid; border-top-width: 1px; padding: 2px; }
.menu { background-color: #4C6C8F; margin: 0px; padding: 3px 8px 5px 3px;}
.menu a:link { color: #FFFFFF }
.menu a:visited { color: #FFFFFF }
.menu a:active { font-weight: bold }
.menu a:hover { color: #880000; }
.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
.menu li .chapter { list-style-image: url('images/chapter.gif'); font-weight: bold }
.menu li .open { list-style-image: url('images/chapter_open.gif'); font-weight: bold }
.menu li .page { list-style-image: url('images/page.gif') }
.menu li .current { list-style-image: url('images/current.gif'); color: #FFD700; font-weight: bold; }
.content { padding: 5px 5px 5px 10px; }
.frame { width: 100%; margin: 5px 20px 5px 20px; font-size: 11px; }
.frame .content { margin: 0px; }
.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
.note .label { background-color: #7099C5; color: #ffffff; }
.warning { border: solid 1px #D00000; background-color: #fff0f0; }
.warning .label { background-color: #D00000; color: #ffffff; }
.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
.fixme .label { background-color: #C6C600; color: #ffffff; }
.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
table.table { width: 100%; font-size: 11px; background-color: #7099C5; color: #ffffff; }
.table caption { text-align: left; text-weight: bold; color: black; }
.table th { text-align: center; text-weight: bold; }
.table td { background-color: #f0f0ff; color: black; }
.dida { font-size: 9px; }
.figure {}
.icon {}
.highlight { background-color: yellow; }
.minitoc {font-size: 8pt; margin: 5px 5px 5px 40px;}
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/images In directory usw-pr-cvs1:/tmp/cvs-serv18160 Added Files: add.jpg remove.jpg update.jpg favicon.ico ant_logo_medium.gif built-with-cocoon.gif centipede-logo-small.gif chapter.gif chapter_open.gif current.gif krysalis-logo-small.gif note.gif page.gif printer.gif singlepage.gif void.gif Log Message: Added skin to forrest --- NEW FILE: add.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: remove.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: update.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: favicon.ico --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant_logo_medium.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: built-with-cocoon.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: centipede-logo-small.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: chapter.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: chapter_open.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: current.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: krysalis-logo-small.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: note.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: page.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: printer.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: singlepage.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: void.gif --- (This appears to be a binary file; contents omitted.) |
|
From: <rga...@us...> - 2002-10-21 20:53:09
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/xslt/html In directory usw-pr-cvs1:/tmp/cvs-serv17822 Added Files: book2menu.xsl document2html.xsl site2xhtml.xsl Log Message: Added skin to forrest --- NEW FILE: book2menu.xsl --- <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:param name="resource"/> <xsl:template match="book"> <menu> <xsl:apply-templates/> </menu> </xsl:template> <xsl:template match="project"> </xsl:template> <!-- <xsl:template match="menu[position()=1]"> <xsl:apply-templates/> </xsl:template> --> <xsl:template match="menu"> <div id="submenu"> <h4><xsl:value-of select="@label"/></h4> <ul> <xsl:apply-templates/> </ul> </div> </xsl:template> <xsl:template match="menu-item"> <li> <xsl:if test="not(@type) or @type!='hidden'"> <xsl:choose> <xsl:when test="@href=$resource"> <xsl:value-of select="@label"/> </xsl:when> <xsl:otherwise> <a href="{@href}"><xsl:value-of select="@label"/></a> </xsl:otherwise> </xsl:choose> </xsl:if> </li> </xsl:template> <xsl:template match="external"> <xsl:if test="not(@type) or @type!='hidden'"> <li> <a href="{@href}"><xsl:value-of select="@label"/></a> </li> </xsl:if> </xsl:template> <xsl:template match="node()|@*" priority="-1"/> </xsl:stylesheet> --- NEW FILE: document2html.xsl --- <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <!-- ====================================================================== --> <!-- document section --> <!-- ====================================================================== --> <xsl:template match="/"> <!-- checks if this is the included document to avoid neverending loop --> <xsl:if test="not(book)"> <document> <xsl:choose> <xsl:when test="document/header/title"> <title><xsl:value-of select="document/header/title"/></title> </xsl:when> <xsl:otherwise> <title>NO TITLE</title> </xsl:otherwise> </xsl:choose> <body> <xsl:apply-templates/> <xsl:if test="/document/header/authors"> <div id="authors"> <xsl:for-each select="/document/header/authors/person"> <xsl:choose> <xsl:when test="position()=1">by </xsl:when> <xsl:otherwise>, </xsl:otherwise> </xsl:choose> <xsl:value-of select="@name" /> </xsl:for-each> </div> </xsl:if> </body> </document> </xsl:if> <xsl:if test="book"> <xsl:apply-templates/> </xsl:if> </xsl:template> <!-- ====================================================================== --> <!-- header section --> <!-- ====================================================================== --> <xsl:template match="header"> <!-- ignore on general document --> </xsl:template> <!-- ====================================================================== --> <!-- body section --> <!-- ====================================================================== --> <xsl:template match="section"> <xsl:variable name = "level" select = "count(ancestor::section)+1" /> <xsl:choose> <xsl:when test="$level=1"> <h2><xsl:value-of select="@title"/></h2> </xsl:when> <xsl:when test="$level=2"> <h3><xsl:value-of select="@title"/></h3> </xsl:when> <xsl:when test="$level=3"> <h4><xsl:value-of select="@title"/></h4> </xsl:when> <xsl:otherwise> <h5><xsl:value-of select="@title"/></h5> </xsl:otherwise> </xsl:choose> <div class="section"><xsl:apply-templates/></div> </xsl:template> <!-- ====================================================================== --> <!-- footer section --> <!-- ====================================================================== --> <xsl:template match="footer"> <!-- ignore on general documents --> </xsl:template> <!-- ====================================================================== --> <!-- paragraph section --> <!-- ====================================================================== --> <xsl:template match="p"> <p><xsl:apply-templates/></p> </xsl:template> <xsl:template match="note"> <p><i><xsl:apply-templates/></i></p> </xsl:template> <xsl:template match="source"> <div class="code"><pre><xsl:apply-templates/></pre></div> </xsl:template> <xsl:template match="fixme | note | warning"> <div class="frame {local-name()}"> <div class="label"> <xsl:choose> <xsl:when test="local-name() = 'note'">Note</xsl:when> <xsl:when test="local-name() = 'warning'">Warning</xsl:when> <xsl:otherwise> Fixme (<xsl:value-of select="@author" />) </xsl:otherwise> </xsl:choose> </div> <div class="content"> <xsl:apply-templates /> </div> </div> </xsl:template> <!-- ====================================================================== --> <!-- list section --> <!-- ====================================================================== --> <xsl:template match="ul|ol|dl"> <blockquote> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </blockquote> </xsl:template> <xsl:template match="li"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="sl"> <ul> <xsl:apply-templates/> </ul> </xsl:template> <xsl:template match="dt"> <li> <strong><xsl:value-of select="."/></strong> <xsl:text> - </xsl:text> <xsl:apply-templates select="dd"/> </li> </xsl:template> <!-- ====================================================================== --> <!-- table section --> <!-- ====================================================================== --> <xsl:template match="table"> <table class="body-table"> <caption><xsl:value-of select="caption"/></caption> <xsl:apply-templates/> </table> </xsl:template> <xsl:template match="tr"> <tr class="body-table"><xsl:apply-templates/></tr> </xsl:template> <xsl:template match="th"> <th class="body-table" colspan="{@colspan}" rowspan="{@rowspan}"> <b><xsl:apply-templates/></b>  </th> </xsl:template> <xsl:template match="td"> <td class="body-table" colspan="{@colspan}" rowspan="{@rowspan}"> <xsl:apply-templates/>  </td> </xsl:template> <xsl:template match="tn"> <tn class="body-table" colspan="{@colspan}" rowspan="{@rowspan}">   </tn> </xsl:template> <xsl:template match="caption"> <!-- ignore since already used --> </xsl:template> <!-- ====================================================================== --> <!-- markup section --> <!-- ====================================================================== --> <xsl:template match="strong"> <b><xsl:apply-templates/></b> </xsl:template> <xsl:template match="em"> <i><xsl:apply-templates/></i> </xsl:template> <xsl:template match="code"> <span class="fixed"><xsl:apply-templates/></span> </xsl:template> <xsl:template match="sup"> <sup><xsl:apply-templates/></sup> </xsl:template> <xsl:template match="sub"> <sub><xsl:apply-templates/></sub> </xsl:template> <!-- ====================================================================== --> <!-- images section --> <!-- ====================================================================== --> <xsl:template match="figure"> <p> <xsl:choose> <xsl:when test="string(@width) and string(@height)"> <img src="{@src}" alt="{@alt}" width="{@width}" height="{@height}"/> </xsl:when> <xsl:otherwise> <img src="{@src}" alt="{@alt}"/> </xsl:otherwise> </xsl:choose> </p> </xsl:template> <xsl:template match="img"> <img src="{@src}" alt="{@alt}"/> </xsl:template> <xsl:template match="icon"> <img src="{@src}" alt="{@alt}"/> </xsl:template> <!-- ====================================================================== --> <!-- links section --> <!-- ====================================================================== --> <xsl:template match="link"> <a href="{@href}"><xsl:apply-templates/></a> </xsl:template> <xsl:template match="connect"> <xsl:apply-templates/> </xsl:template> <xsl:template match="jump"> <a href="{@href}#{@anchor}"><xsl:apply-templates/></a> </xsl:template> <xsl:template match="fork"> <a href="{@href}" target="_blank"><xsl:apply-templates/></a> </xsl:template> <xsl:template match="anchor"> <a name="{@id}"><xsl:comment>anchor</xsl:comment></a> </xsl:template> <!-- ====================================================================== --> <!-- specials section --> <!-- ====================================================================== --> <xsl:template match="br"> <br/> </xsl:template> </xsl:stylesheet> --- NEW FILE: site2xhtml.xsl --- <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <head> <title><xsl:value-of select="/site/document/title"/></title> <link rel="stylesheet" type="text/css" href="skin/common.css" /> </head> <body> <!-- header --> <div id="header"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td id="jakartaLogoTD" valign="middle" align="left"><a href="@group-logo.href@"><img id="jakartaLogo" src="@group-logo.src@" border="0"/></a></td> <td id="projectLogoTD" valign="middle" align="right"><a href="@project-logo.href@"><img id="projectLogo" src="@project-logo.src@" border="0"/></a></td> </tr> </table></div> <!-- end header --> <!-- breadcrumb trail (javascript-generated) --> <div id="breadcrumbs"> <a href="@link1.href@" class="menu">@link1@ ></a> <a href="@link2.href@" class="menu">@link2@ ></a> <a href="@link3.href@" class="menu">@link3@</a> <script language="JavaScript1.2" type="text/javascript"> <!-- function sentenceCase(str) { var lower = str.toLowerCase(); return lower.substr(0,1).toUpperCase() + lower.substr(1); } function getDirsAsArray() { var trail = document.location.pathname.split("/"); var lastdir = (trail[trail.length-1].indexOf(".html") != -1)? trail.length-2 : trail.length-1; var urlprefix = "/avalon/"; var postfix = " >"; for(var i = 1; i <= lastdir; i++) { document.writeln('<a href=' + urlprefix + trail[i] + ' class="menu">' + sentenceCase(trail[i]) + '</a>'+postfix); urlprefix += trail[i] + "/"; if(i == lastdir-1) postfix = ":"; } } getDirsAsArray(); // --> </script> </div> <!-- end breadcrumb trail --> <!-- main section of page --> <div id="main"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top"> <!-- menu --> <div id="menu"> <xsl:copy-of select="/site/menu/node()|@*"/> </div> <!-- end menu column --> </td> <!-- spacer --> <td width="10"> </td> <td valign="top" width="100%"> <!-- contents column --> <!-- contents --> <div id="title"><h1><xsl:value-of select="/site/document/title"/></h1></div> <div id="contents"> <xsl:copy-of select="/site/document/body/node()|@*"/> </div> <!-- end contents column --> <script language="JavaScript"> <![CDATA[<!-- document.write("last modified: " + document.lastModified); // -->]]> </script> </td> </tr> </table></div> <!-- end main section of page --> <!-- footer --> <div id="footer"> Copyright ©@year@ @vendor@. All Rights Reserved. </div> <a href="http://jakarta.apache.org/ant/"><img align="right" src="skin/images/ant_logo_medium.gif" alt="Ant Logo" border="0"/></a> <a href="http://xml.apache.org/cocoon/"><img align="right" src="skin/images/built-with-cocoon.gif" alt="Cocoon Logo" border="0"/></a> <a href="http://www.krysalis.org/centipede/"><img align="right" src="skin/images/centipede-logo-small.gif" alt="Krysalis Centipede Logo" border="0"/></a> <a href="http://sourceforge.net/projects/csms"><img src="http://sourceforge.net/sflogo.php?&group_id=65029&type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"/></a> <!-- end footer --> </body> </html> </xsl:template> </xsl:stylesheet> |
|
From: <rga...@us...> - 2002-10-21 20:52:47
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/xslt/fo In directory usw-pr-cvs1:/tmp/cvs-serv17366 Added Files: document2fo.xsl Log Message: Added skin to forrest --- NEW FILE: document2fo.xsl --- <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0"> <xsl:output method="xml"/> <xsl:template match="/"> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="first-page" page-height="11in" page-width="8.5in" margin-top="1in" margin-bottom="1in" margin-left="1.25in" margin-right="1in"> <fo:region-body margin-top="0.5in" margin-bottom=".5in"/> <fo:region-after region-name="first-footer" extent=".5in" display-align="before"/> </fo:simple-page-master> <fo:simple-page-master master-name="even-page" page-height="11in" page-width="8.5in" margin-top="1in" margin-bottom="1in" margin-left="1.25in" margin-right="1in"> <fo:region-before region-name="even-header" extent="0.5in" border-bottom="0.5pt solid"/> <fo:region-body margin-top="0.5in" margin-bottom=".5in"/> <fo:region-after region-name="even-footer" extent=".5in" display-align="before"/> </fo:simple-page-master> <fo:simple-page-master master-name="odd-page" page-height="11in" page-width="8.5in" margin-top="1in" margin-bottom="1in" margin-left="1.25in" margin-right="1in"> <fo:region-before region-name="odd-header" extent="0.5in" border-bottom="0.5pt solid"/> <fo:region-body margin-top="0.5in" margin-bottom=".5in"/> <fo:region-after region-name="odd-footer" extent=".5in" display-align="before"/> </fo:simple-page-master> <fo:page-sequence-master master-name="book"> <fo:repeatable-page-master-alternatives> <fo:conditional-page-master-reference page-position="first" master-reference="first-page"/> <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd-page"/> <fo:conditional-page-master-reference odd-or-even="even" master-reference="even-page"/> </fo:repeatable-page-master-alternatives> </fo:page-sequence-master> </fo:layout-master-set> <fo:page-sequence master-reference="book"> <xsl:apply-templates/> </fo:page-sequence> </fo:root> </xsl:template> <xsl:template match="document"> <fo:title><xsl:value-of select="header/title"/></fo:title> <fo:static-content flow-name="first-footer"> <fo:block border-top="0.25pt solid" padding-before="6pt" text-align="center"> <xsl:apply-templates select="footer"/> </fo:block> <fo:block text-align="start"> Page <fo:page-number/> </fo:block> </fo:static-content> <fo:static-content flow-name="even-header"> <fo:block text-align="end" font-style="italic"> <xsl:value-of select="header/title"/> </fo:block> </fo:static-content> <fo:static-content flow-name="even-footer"> <fo:block border-top="0.25pt solid" padding-before="6pt" text-align="center"> <xsl:apply-templates select="footer"/> </fo:block> <fo:block text-align="end"> Page <fo:page-number/> </fo:block> </fo:static-content> <fo:static-content flow-name="odd-header"> <fo:block text-align="start" font-style="italic"> <xsl:value-of select="header/title"/> </fo:block> </fo:static-content> <fo:static-content flow-name="odd-footer"> <fo:block border-top="0.25pt solid" padding-before="6pt" text-align="center"> <xsl:apply-templates select="footer"/> </fo:block> <fo:block text-align="start"> Page <fo:page-number/> </fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <fo:block padding-before="24pt" padding-after="24pt" font-size="24pt" font-weight="bold"> <xsl:value-of select="header/title"/> </fo:block> <fo:block text-align="justify" padding-before="18pt" padding-after="18pt"> <xsl:apply-templates/> </fo:block> </fo:flow> </xsl:template> <xsl:template match="abstract"> <fo:block font-size="12pt" text-align="center" space-before="20pt" space-after="25pt" width="7.5in" font-family="serif" font-style="italic"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="notice"> <fo:block font-size="10pt" text-align="left" space-before="20pt" width="7.5in" font-family="serif" border-top="0.25pt solid" border-bottom="0.25pt solid" padding-before="6pt" padding-after="6pt"> NOTICE: <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="section"> <xsl:param name="level">0</xsl:param> <xsl:variable name="size" select="16-(number($level)*2)"/> <fo:block font-family="serif" font-size="{$size}pt" font-weight="bold" space-before="12pt"> <xsl:number format="1.1.1.1.1.1.1" count="section" level="multiple"/> <xsl:text> </xsl:text> <xsl:value-of select="title"/> </fo:block> <xsl:apply-templates> <xsl:with-param name="level" select="number($level)+1"/> </xsl:apply-templates> </xsl:template> <xsl:template match="title"> <!-- do nothing as titles are handled in their parent templates --> </xsl:template> <xsl:template match="subtitle"> <xsl:param name="level">0</xsl:param> <xsl:variable name="size" select="16-(number($level)*1.5)"/> <fo:block font-weight="bold" font-size="{$size}pt"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="p"> <fo:block space-before="4pt" space-after="4pt" font-family="serif"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="source"> <fo:block font-family="monospace" font-size="10pt" background-color="#f0f0f0" white-space-collapse="false" text-align="start"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="ol|ul"> <fo:list-block provisional-distance-between-starts="18pt" provisional-label-separation="3pt" text-align="start"> <xsl:apply-templates/> </fo:list-block> </xsl:template> <xsl:template match="ol/li"> <fo:list-item> <fo:list-item-label end-indent="label-end()"> <fo:block> <xsl:number format="1."/> </fo:block> </fo:list-item-label> <fo:list-item-body start-indent="body-start()"> <fo:block> <xsl:apply-templates/> </fo:block> </fo:list-item-body> </fo:list-item> </xsl:template> <xsl:template match="ul/li"> <fo:list-item> <fo:list-item-label end-indent="label-end()"> <fo:block>•</fo:block> </fo:list-item-label> <fo:list-item-body start-indent="body-start()"> <fo:block> <xsl:apply-templates/> </fo:block> </fo:list-item-body> </fo:list-item> </xsl:template> <xsl:template match="dl"> <fo:list-block provisional-distance-between-starts="18pt" provisional-label-separation="3pt" text-align="start"> <xsl:apply-templates/> </fo:list-block> </xsl:template> <xsl:template match="dt"> <fo:list-item> <fo:list-item-label end-indent="label-end()"> <fo:block></fo:block> </fo:list-item-label> <fo:list-item-body start-indent="body-start()"> <fo:block font-weight="bold"> <xsl:apply-templates/> </fo:block> </fo:list-item-body> </fo:list-item> </xsl:template> <xsl:template match="dd"> <fo:list-item> <fo:list-item-label end-indent="label-end()"> <fo:block></fo:block> </fo:list-item-label> <fo:list-item-body start-indent="body-start()"> <fo:block> <xsl:apply-templates/> </fo:block> </fo:list-item-body> </fo:list-item> </xsl:template> <xsl:template match="strong"> <fo:inline font-weight="bold"><xsl:apply-templates/></fo:inline> </xsl:template> <xsl:template match="em"> <fo:inline font-style="italic"><xsl:apply-templates/></fo:inline> </xsl:template> <xsl:template match="code"> <fo:inline font-family="monospace"><xsl:apply-templates/></fo:inline> </xsl:template> <xsl:template match="warning"> <fo:block margin-left="0.25in" margin-right="0.25in" font-weight="bold" font-size="10pt" font-family="serif" space-before="10pt" border-before-style="solid" border-start-style="solid" border-end-style="solid" border-color="#D00000" background-color="#D00000" color="#ffffff"> Warning: <xsl:value-of select="title"/> </fo:block> <fo:block margin-left="0.25in" margin-right="0.25in" font-family="serif" font-size="8pt" border-after-style="solid" border-start-style="solid" border-end-style="solid" border-color="#D00000" background-color="#fff0f0" padding-start="3pt" padding-end="3pt" padding-before="3pt" padding-after="3pt" space-after="10pt"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="note"> <fo:block margin-left="0.25in" margin-right="0.25in" font-weight="bold" font-size="10pt" color="#ffffff" font-family="serif" space-before="10pt" border-before-style="solid" border-start-style="solid" border-end-style="solid" border-color="#A0C9F5" background-color="#A0C9F5"> Note: <xsl:value-of select="title"/> </fo:block> <fo:block margin-left="0.25in" margin-right="0.25in" font-family="serif" font-size="8pt" space-after="10pt" border-after-style="solid" border-start-style="solid" border-end-style="solid" border-color="#A0C9F5" background-color="#F0F0FF" padding-start="3pt" padding-end="3pt" padding-before="3pt" padding-after="3pt"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="fixme"> <fo:block margin-left="0.25in" margin-right="0.25in" font-weight="bold" font-size="10pt" color="#FFFFFF" font-family="serif" space-before="10pt" border-before-style="solid" border-start-style="solid" border-end-style="solid" border-color="#C6C650" background-color="#C6C650"> FIXME (<xsl:value-of select="@author"/>): <xsl:value-of select="title"/> </fo:block> <fo:block margin-left="0.25in" margin-right="0.25in" font-family="serif" font-size="8pt" space-after="10pt" border-after-style="solid" border-start-style="solid" border-end-style="solid" border-color="#C6C650" background-color="#FFF0F0" padding-start="3pt" padding-end="3pt" padding-before="3pt" padding-after="3pt"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="link"> <fo:basic-link external-destination="{@href}"><xsl:apply-templates/></fo:basic-link> </xsl:template> <xsl:template match="figure"> <!-- FIXME: Images are not found at the moment --> <fo:external-graphic src="build/work/resources/{@src}"/> <!-- alt text and credits need inserting --> </xsl:if> </xsl:template> <xsl:template match="table"> <!-- FIXME: Apache FOP must have column widths specified at present, this section can be removed when this limitation is removed from Fop. Unfortunately, this means that each column is a fixed width, but at least the table displays! --> <xsl:variable name="max-number-columns"> <xsl:for-each select="tr"> <xsl:sort select="count(td|th)" data-type="number" order="descending"/> <xsl:if test="position() = 1"> <xsl:value-of select="count(td|th)"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="column-width"> <xsl:value-of select="6.25 div number($max-number-columns)"/>in </xsl:variable> <fo:table> <fo:table-column> <xsl:attribute name="column-width"> <xsl:value-of select="$column-width"/> </xsl:attribute> <xsl:attribute name="number-columns-repeated"> <xsl:value-of select="number($max-number-columns)"/> </xsl:attribute> </fo:table-column> <!-- End of hack for Fop support (if removing this hack, remember you need the <fo:table> element) --> <fo:table-body font-size="10pt" font-family="sans-serif"> <xsl:apply-templates select="tr"/> </fo:table-body> </fo:table> <!-- FIXME: Apache Fop does not support the caption element yet. This hack will display the table caption accordingly. --> <xsl:if test="caption"> <fo:block text-align="center" font-weight="bold"> Table <xsl:text> </xsl:text> <xsl:number count="table" level="multiple"/> <xsl:text>: </xsl:text> <xsl:value-of select="caption"/> </fo:block> </xsl:if> </xsl:template> <xsl:template match="tr"> <fo:table-row> <xsl:apply-templates/> </fo:table-row> </xsl:template> <xsl:template match="th"> <fo:table-cell padding-before="4pt" padding-after="4pt" padding-start="4pt" padding-end="4pt" background-color="#A0C9F5"> <xsl:attribute name="number-columns-spanned"> <xsl:value-of select="@colspan"/> </xsl:attribute> <xsl:attribute name="number-rows-spanned"> <xsl:value-of select="@rowspan"/> </xsl:attribute> <fo:block text-align="center"> <xsl:apply-templates/> </fo:block> </fo:table-cell> </xsl:template> <xsl:template match="td"> <fo:table-cell padding-before="4pt" padding-after="4pt" padding-start="4pt" padding-end="4pt" border="1pt solid #A0C9F5"> <xsl:attribute name="number-columns-spanned"> <xsl:value-of select="@colspan"/> </xsl:attribute> <xsl:attribute name="number-rows-spanned"> <xsl:value-of select="@rowspan"/> </xsl:attribute> <fo:block> <xsl:apply-templates/> </fo:block> </fo:table-cell> </xsl:template> <xsl:template match="legal"> <fo:inline font-size="8pt"> <xsl:apply-templates/> </fo:inline> </xsl:template> <!-- ====================================================================== --> <!-- Local Extensions section --> <!-- ====================================================================== --> <xsl:template match="citation"> <fo:inline> [<xsl:value-of select="@def"/>] </fo:inline> </xsl:template> </xsl:stylesheet> |
|
From: <rga...@us...> - 2002-10-21 20:45:57
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/xslt/html In directory usw-pr-cvs1:/tmp/cvs-serv10623/html Log Message: Directory /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/xslt/html added to the repository |
|
From: <rga...@us...> - 2002-10-21 20:45:40
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/xslt/fo In directory usw-pr-cvs1:/tmp/cvs-serv10325/fo Log Message: Directory /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/xslt/fo added to the repository |
|
From: <rga...@us...> - 2002-10-21 20:45:22
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/xslt In directory usw-pr-cvs1:/tmp/cvs-serv9995/xslt Log Message: Directory /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/xslt added to the repository |
|
From: <rga...@us...> - 2002-10-21 20:40:07
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/images In directory usw-pr-cvs1:/tmp/cvs-serv4161/images Log Message: Directory /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/images added to the repository |
|
From: <rga...@us...> - 2002-10-21 20:39:37
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/css In directory usw-pr-cvs1:/tmp/cvs-serv3628/css Log Message: Directory /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site/css added to the repository |
|
From: <rga...@us...> - 2002-10-21 20:39:13
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site In directory usw-pr-cvs1:/tmp/cvs-serv3162/csms-site Log Message: Directory /cvsroot/csms/csms-core/src/documentation/override/forrest/skins/csms-site added to the repository |
|
From: <rga...@us...> - 2002-10-21 20:38:38
|
Update of /cvsroot/csms/csms-core/src/documentation/override/forrest/skins In directory usw-pr-cvs1:/tmp/cvs-serv2563/skins Log Message: Directory /cvsroot/csms/csms-core/src/documentation/override/forrest/skins added to the repository |
|
From: <rga...@us...> - 2002-10-21 20:08:58
|
Update of /cvsroot/csms/csms-core/src/documentation/override/checkstyle
In directory usw-pr-cvs1:/tmp/cvs-serv8125
Added Files:
book.xml
Log Message:
no message
--- NEW FILE: book.xml ---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//APACHE//DTD Cocoon Documentation Book V1.0//EN" "dtd/book-cocoon-v10.dtd">
<book software="Krysalis Centipede"
title="Krysalis Centipede Smoke Test"
copyright="@year@ Krysalis Project"
xmlns:xlink="http://www.w3.org/1999/xlink">
<menu label="Community">
<menu-item label="Project Management" href="http://sourceforge.net/projects/csms"/>
</menu>
<menu label="Docs">
<menu-item label="Introduction" href="index.html"/>
</menu>
<menu label="Code">
<menu-item label="Javadocs" href="javadocs/"/>
<menu-item label="Java Source Ref" href="javasrc/"/>
<menu-item label="Code Style Checks" href="checkstyle/index.html"/>
<menu-item label="Dependencies" href="jdepend/index.html"/>
<menu-item label="Unit tests" href="junit/"/>
</menu>>
</book>
|
|
From: <rga...@us...> - 2002-10-21 20:07:22
|
Update of /cvsroot/csms/csms-core/src/documentation/override/checkstyle In directory usw-pr-cvs1:/tmp/cvs-serv6549/checkstyle Log Message: Directory /cvsroot/csms/csms-core/src/documentation/override/checkstyle added to the repository |
|
From: <rga...@us...> - 2002-10-21 19:57:40
|
Update of /cvsroot/csms/csms-core
In directory usw-pr-cvs1:/tmp/cvs-serv27489
Modified Files:
centibuild.xml
Log Message:
Adding JDepend Metrics to site
Index: centibuild.xml
===================================================================
RCS file: /cvsroot/csms/csms-core/centibuild.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** centibuild.xml 18 Oct 2002 21:21:30 -0000 1.3
--- centibuild.xml 21 Oct 2002 19:57:37 -0000 1.4
***************
*** 37,41 ****
<importcent name="centipede"/>
<importcent name="antidote"/>
! <importcent name="checkstyle"/>
<importcent name="forrest"/>
<importcent name="gump"/>
--- 37,42 ----
<importcent name="centipede"/>
<importcent name="antidote"/>
! <importcent name="checkstyle"/>
! <importcent name="jdepend"/>
<importcent name="forrest"/>
<importcent name="gump"/>
***************
*** 93,97 ****
<target name="code" depends="compile,test,package"/>
! <target name="metrics" depends="checkstyle, report"/>
<target name="docs" depends="javasrc, javadocs, forrest.docs"/>
--- 94,98 ----
<target name="code" depends="compile,test,package"/>
! <target name="metrics" depends="checkstyle, report, jdepend-xdoc"/>
<target name="docs" depends="javasrc, javadocs, forrest.docs"/>
|
|
From: <rga...@us...> - 2002-10-21 19:57:10
|
Update of /cvsroot/csms/csms-core/src/documentation/xdocs
In directory usw-pr-cvs1:/tmp/cvs-serv26920
Modified Files:
book.xml
Log Message:
Adding JDepend Metrics to site
Index: book.xml
===================================================================
RCS file: /cvsroot/csms/csms-core/src/documentation/xdocs/book.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** book.xml 18 Oct 2002 14:57:28 -0000 1.2
--- book.xml 21 Oct 2002 19:57:07 -0000 1.3
***************
*** 18,21 ****
--- 18,22 ----
<menu-item label="Java Source Ref" href="javasrc/"/>
<menu-item label="Code Style Checks" href="checkstyle/index.html"/>
+ <menu-item label="Dependencies" href="jdepend/index.html"/>
<menu-item label="Unit tests" href="junit/"/>
</menu>>
|
|
From: <rga...@us...> - 2002-10-21 19:55:38
|
Update of /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring
In directory usw-pr-cvs1:/tmp/cvs-serv25165
Modified Files:
Events.java
Log Message:
Refactoring
Index: Events.java
===================================================================
RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring/Events.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Events.java 21 Oct 2002 12:01:14 -0000 1.2
--- Events.java 21 Oct 2002 19:55:34 -0000 1.3
***************
*** 56,62 ****
* affect the fantasy game.
*
! *@author rgardler
! *@created 21 October 2002
! *@see org.fanfoot.scoring.Event
*/
public class Events {
--- 56,62 ----
* affect the fantasy game.
*
! *@author rgardler
! *@created 21 October 2002
! *@see org.fanfoot.scoring.Event
*/
public class Events {
***************
*** 86,91 ****
* Creates a new instance of Events
*
! *@param strUID a unique identifier for this set of events, must
! * be application unique
*/
public Events(String strUID) {
--- 86,91 ----
* Creates a new instance of Events
*
! *@param strUID a unique identifier for this set of events, must be
! * application unique
*/
public Events(String strUID) {
***************
*** 98,102 ****
* Get the collection of events
*
! *@return the collection of events
*/
public List getEvents() {
--- 98,102 ----
* Get the collection of events
*
! *@return the collection of events
*/
public List getEvents() {
***************
*** 108,113 ****
* Get the event at the given index
*
! *@param idx the index number of the event required
! *@return the collection of events
*/
public Event getEvent(int idx) {
--- 108,113 ----
* Get the event at the given index
*
! *@param idx the index number of the event required
! *@return the collection of events
*/
public Event getEvent(int idx) {
***************
*** 119,126 ****
* Add the supplied event to the Events list.
*
! *@param evt The event to add
*/
public void add(Event evt) {
! if (!this.types.contains(evt.getType())) {
this.types.add(evt.getType());
}
--- 119,126 ----
* Add the supplied event to the Events list.
*
! *@param evt The event to add
*/
public void add(Event evt) {
! if(!this.types.contains(evt.getType())) {
this.types.add(evt.getType());
}
***************
*** 133,137 ****
* Get the number of events in this collection.
*
! *@return int number of events in collection
*/
public int size() {
--- 133,137 ----
* Get the number of events in this collection.
*
! *@return int number of events in collection
*/
public int size() {
***************
*** 143,152 ****
* Add all the supplied events to this Events collection.
*
! *@param evts the events to add
*/
public void addAll(Events evts) {
Iterator iter = evts.getEvents().iterator();
! while (iter.hasNext()) {
this.add((Event) iter.next());
}
--- 143,152 ----
* Add all the supplied events to this Events collection.
*
! *@param evts the events to add
*/
public void addAll(Events evts) {
Iterator iter = evts.getEvents().iterator();
! while(iter.hasNext()) {
this.add((Event) iter.next());
}
***************
*** 161,166 ****
* requireing validation.
*
! *@param evts the events to add
! *@param conf the vonfiguration for these events
*/
public void addAll(Events evts, EventParserConfiguration conf) {
--- 161,166 ----
* requireing validation.
*
! *@param evts the events to add
! *@param conf the vonfiguration for these events
*/
public void addAll(Events evts, EventParserConfiguration conf) {
***************
*** 168,175 ****
Event evt;
! while (iter.hasNext()) {
evt = (Event) iter.next();
! if (!contains(evt, conf)) {
this.add(evt);
}
--- 168,175 ----
Event evt;
! while(iter.hasNext()) {
evt = (Event) iter.next();
! if(!contains(evt, conf)) {
this.add(evt);
}
***************
*** 183,190 ****
* configuration file.
*
! *@param evt the event to check for
! *@param conf the event parser configuration
! *@return true if the events collection contains an identical
! * event allready
*/
public boolean contains(Event evt, EventParserConfiguration conf) {
--- 183,190 ----
* configuration file.
*
! *@param evt the event to check for
! *@param conf the event parser configuration
! *@return true if the events collection contains an identical event
! * allready
*/
public boolean contains(Event evt, EventParserConfiguration conf) {
***************
*** 198,205 ****
String strPartName;
! while (events.hasNext() & !contains) {
parts = conf.getDuplicateDetectionParts(evt.getType());
! if (parts.hasNext()) {
partsAreEqual = true;
} else {
--- 198,205 ----
String strPartName;
! while(events.hasNext() & !contains) {
parts = conf.getDuplicateDetectionParts(evt.getType());
! if(parts.hasNext()) {
partsAreEqual = true;
} else {
***************
*** 208,212 ****
existingEvt = (Event) events.next();
! while (parts.hasNext()) {
strPartName = (String) parts.next();
partsAreEqual = arePartsEqual(evt.getPart(strPartName),
--- 208,212 ----
existingEvt = (Event) events.next();
! while(parts.hasNext()) {
strPartName = (String) parts.next();
partsAreEqual = arePartsEqual(evt.getPart(strPartName),
***************
*** 225,231 ****
* Test to see if the two supplied part values are equal
*
! *@param partValue1 the first part value
! *@param partValue2 the second part value
! *@return true if the parts are equal
*/
protected boolean arePartsEqual(String partValue1, String partValue2) {
--- 225,231 ----
* Test to see if the two supplied part values are equal
*
! *@param partValue1 the first part value
! *@param partValue2 the second part value
! *@return true if the parts are equal
*/
protected boolean arePartsEqual(String partValue1, String partValue2) {
***************
*** 237,241 ****
* Get the names of all event types present
*
! *@return Enumeration of all event types
*/
public Enumeration getTypes() {
--- 237,241 ----
* Get the names of all event types present
*
! *@return Enumeration of all event types
*/
public Enumeration getTypes() {
***************
*** 247,252 ****
* Get all events in the collection of the indicated type.
*
! *@param strType the type of event requried
! *@return an ArrayList of all events of the supplied type
*/
public ArrayList getEventsByType(String strType) {
--- 247,252 ----
* Get all events in the collection of the indicated type.
*
! *@param strType the type of event requried
! *@return an ArrayList of all events of the supplied type
*/
public ArrayList getEventsByType(String strType) {
***************
*** 256,263 ****
Iterator li = events.iterator();
! while (li.hasNext()) {
evt = (Event) li.next();
! if (evt.getType().equals(strType)) {
result.add(evt);
}
--- 256,263 ----
Iterator li = events.iterator();
! while(li.hasNext()) {
evt = (Event) li.next();
! if(evt.getType().equals(strType)) {
result.add(evt);
}
***************
*** 271,275 ****
* Getter for property UID.
*
! *@return Value of property UID.
*/
public String getUID() {
--- 271,275 ----
* Getter for property UID.
*
! *@return Value of property UID.
*/
public String getUID() {
***************
*** 281,285 ****
* Setter for property UID.
*
! *@param uid New value of property UID.
*/
public void setUID(String uid) {
--- 281,285 ----
* Setter for property UID.
*
! *@param uid New value of property UID.
*/
public void setUID(String uid) {
***************
*** 291,295 ****
* Getter for property srcData.
*
! *@return Value of property srcData.
*/
public String getSrcData() {
--- 291,295 ----
* Getter for property srcData.
*
! *@return Value of property srcData.
*/
public String getSrcData() {
***************
*** 301,305 ****
* Setter for property srcData.
*
! *@param srcData New value of property srcData.
*/
public void setSrcData(String srcData) {
--- 301,305 ----
* Setter for property srcData.
*
! *@param srcData New value of property srcData.
*/
public void setSrcData(String srcData) {
***************
*** 311,317 ****
* Return an XML DOM representation of this event
*
! *@return Document XML DOM
! * representation of this event
! *@throws ParserConfigurationException if there is a problem with
* the XML parser
*/
--- 311,316 ----
* Return an XML DOM representation of this event
*
! *@return Document XML DOM representation of this event
! *@throws ParserConfigurationException if there is a problem with
* the XML parser
*/
***************
*** 329,346 ****
root.appendChild(elem);
! Enumeration evtTypes = this.getTypes();
! // all types of events
! String strType;
! // type of events currently being processed
! ArrayList typeEvts;
! // all events of a certain type
! Event evt;
! // event currently being processed
! while (evtTypes.hasMoreElements()) {
strType = (String) evtTypes.nextElement();
typeEvts = this.getEventsByType(strType);
! for (int i = 0; i < typeEvts.size(); i++) {
evt = (Event) typeEvts.get(i);
evt.appendXMLTo(doc);
--- 328,341 ----
root.appendChild(elem);
! Enumeration evtTypes = this.getTypes();// all types of events
! String strType;// type of events currently being processed
! ArrayList typeEvts;// all events of a certain type
! Event evt;// event currently being processed
! while(evtTypes.hasMoreElements()) {
strType = (String) evtTypes.nextElement();
typeEvts = this.getEventsByType(strType);
! for(int i = 0; i < typeEvts.size(); i++) {
evt = (Event) typeEvts.get(i);
evt.appendXMLTo(doc);
|
|
From: <rga...@us...> - 2002-10-21 19:55:13
|
Update of /cvsroot/csms/csms-core/src/java/org/fanfoot/gui In directory usw-pr-cvs1:/tmp/cvs-serv24855 Removed Files: ControlCentre.form Log Message: Removed netbeans specific file --- ControlCentre.form DELETED --- |
|
From: <rga...@us...> - 2002-10-21 19:54:15
|
Update of /cvsroot/csms/csms-core/src/java/org/fanfoot/gui
In directory usw-pr-cvs1:/tmp/cvs-serv23650
Modified Files:
ControlCentre.java
Log Message:
Refactoring
Index: ControlCentre.java
===================================================================
RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/gui/ControlCentre.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ControlCentre.java 21 Oct 2002 12:01:14 -0000 1.2
--- ControlCentre.java 21 Oct 2002 19:54:12 -0000 1.3
***************
*** 70,75 ****
/**
! *@author rgardler
! *@created 21 October 2002
*/
public class ControlCentre extends JFrame implements EventParserListener {
--- 70,75 ----
/**
! *@author rgardler
! *@created 21 October 2002
*/
public class ControlCentre extends JFrame implements EventParserListener {
***************
*** 140,149 ****
* file.
*
! *@exception FileNotFoundException Description of the Exception
! *@exception IOException Description of the Exception
! *@throws FileNotFoundException if the default configuration
! * file cannot be found
! *@throws IOException if there is a problem reading
! * the properties file
*/
public ControlCentre() throws FileNotFoundException, IOException {
--- 140,149 ----
* file.
*
! *@exception FileNotFoundException Description of the Exception
! *@exception IOException Description of the Exception
! *@throws FileNotFoundException if the default configuration file
! * cannot be found
! *@throws IOException if there is a problem reading the properties
! * file
*/
public ControlCentre() throws FileNotFoundException, IOException {
***************
*** 198,227 ****
getContentPane().add(tabpneEvents, java.awt.BorderLayout.NORTH);
! mnuFile.setMnemonic('F');
! mnuFile.setText("File");
! mnuItemParseFile.setMnemonic('F');
! mnuItemParseFile.setText("Parse File");
! mnuItemParseFile.addActionListener(
! new java.awt.event.ActionListener() {
! public void actionPerformed(java.awt.event.ActionEvent evt) {
! mnuItemParseFileActionPerformed(evt);
! }
! });
! mnuFile.add(mnuItemParseFile);
! mnuitemParseURL.setText("Parse URL");
! mnuitemParseURL.setToolTipText("Load an URL and parse scores from it");
! mnuitemParseURL.addActionListener(
new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
! mnuitemParseURLActionPerformed(evt);
}
});
! mnuFile.add(mnuitemParseURL);
- mnubarMain.add(mnuFile);
mnuConfig.setMnemonic('C');
mnuConfig.setText("Configuration");
--- 198,239 ----
getContentPane().add(tabpneEvents, java.awt.BorderLayout.NORTH);
! initMenus();
! setJMenuBar(mnubarMain);
! pack();
! }
!
!
! /** Initialise the menus */
! private void initMenus() {
! initFileMenu();
! mnubarMain.add(mnuFile);
! initConfigMenu();
! mnubarMain.add(mnuConfig);
! initDebugMenu();
! mnubarMain.add(mnuDebug);
! }
!
!
! /** Initialise the debug menu */
! private void initDebugMenu() {
! mnuDebug.setMnemonic('D');
! mnuDebug.setText("Debug");
! parseBBCTExt1.setMnemonic('1');
! parseBBCTExt1.setText("Parse BBC Test 1");
! parseBBCTExt1.addActionListener(
new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
! parseBBCTExt1ActionPerformed(evt);
}
});
! mnuDebug.add(parseBBCTExt1);
! }
+ /** Initialise the config menu */
+ private void initConfigMenu() {
mnuConfig.setMnemonic('C');
mnuConfig.setText("Configuration");
***************
*** 238,271 ****
mnuConfig.add(setPaths);
- mnubarMain.add(mnuConfig);
! mnuDebug.setMnemonic('D');
! mnuDebug.setText("Debug");
! parseBBCTExt1.setMnemonic('1');
! parseBBCTExt1.setText("Parse BBC Test 1");
! parseBBCTExt1.addActionListener(
new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
! parseBBCTExt1ActionPerformed(evt);
}
});
! mnuDebug.add(parseBBCTExt1);
!
! mnubarMain.add(mnuDebug);
! setJMenuBar(mnubarMain);
! pack();
}
- //GEN-END:initComponents
-
/**
* Parse URL menu item has been selected
*
! *@param evt the event causing this action to take place
*/
private void mnuitemParseURLActionPerformed(java.awt.event.ActionEvent evt) {
--- 250,288 ----
mnuConfig.add(setPaths);
+ }
! /** Initialise the file menu */
! private void initFileMenu() {
! mnuFile.setMnemonic('F');
! mnuFile.setText("File");
! mnuItemParseFile.setMnemonic('F');
! mnuItemParseFile.setText("Parse File");
! mnuItemParseFile.addActionListener(
new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
! mnuItemParseFileActionPerformed(evt);
}
});
! mnuFile.add(mnuItemParseFile);
! mnuitemParseURL.setText("Parse URL");
! mnuitemParseURL.setToolTipText("Load an URL and parse scores from it");
! mnuitemParseURL.addActionListener(
! new java.awt.event.ActionListener() {
! public void actionPerformed(java.awt.event.ActionEvent evt) {
! mnuitemParseURLActionPerformed(evt);
! }
! });
! mnuFile.add(mnuitemParseURL);
}
/**
* Parse URL menu item has been selected
*
! *@param evt the event causing this action to take place
*/
private void mnuitemParseURLActionPerformed(java.awt.event.ActionEvent evt) {
***************
*** 282,286 ****
* Set Paths configuration item is selected
*
! *@param evt that caused this action to be performed
*/
private void setPathsActionPerformed(java.awt.event.ActionEvent evt) {
--- 299,303 ----
* Set Paths configuration item is selected
*
! *@param evt that caused this action to be performed
*/
private void setPathsActionPerformed(java.awt.event.ActionEvent evt) {
***************
*** 302,306 ****
* Parse BBC text commentary action is to be performed
*
! *@param evt the event causing this action to be performed
*/
private void parseBBCTExt1ActionPerformed(java.awt.event.ActionEvent evt) {
--- 319,323 ----
* Parse BBC text commentary action is to be performed
*
! *@param evt the event causing this action to be performed
*/
private void parseBBCTExt1ActionPerformed(java.awt.event.ActionEvent evt) {
***************
*** 324,328 ****
* Parse a file action to be performed.
*
! *@param evt the event that caused this action to be performed
*/
private void mnuItemParseFileActionPerformed(java.awt.event.ActionEvent evt) {
--- 341,345 ----
* Parse a file action to be performed.
*
! *@param evt the event that caused this action to be performed
*/
private void mnuItemParseFileActionPerformed(java.awt.event.ActionEvent evt) {
***************
*** 365,369 ****
* configuration. Scores are displayed in the GUI.
*
! *@param url the url to load
*/
private void generateScores(URL url) {
--- 382,386 ----
* configuration. Scores are displayed in the GUI.
*
! *@param url the url to load
*/
private void generateScores(URL url) {
***************
*** 403,407 ****
* Exit the Application
*
! *@param evt Description of the Parameter
*/
private void exitForm(java.awt.event.WindowEvent evt) {
--- 420,424 ----
* Exit the Application
*
! *@param evt Description of the Parameter
*/
private void exitForm(java.awt.event.WindowEvent evt) {
***************
*** 414,418 ****
/**
! *@param args the command line arguments
*/
public static void main(String args[]) {
--- 431,435 ----
/**
! *@param args the command line arguments
*/
public static void main(String args[]) {
***************
*** 430,491 ****
* to the tabbed pane displaying events.
*
! *@param evts the events to display
*/
private void populateEventTables(Events evts) {
- Enumeration evtTypes = evts.getTypes();
- // all types of events
- String strType;
- // type of events currently being processed
- ArrayList typeEvts;
- // all events of a certain type
- Event evt;
- // event currently being processed
- Enumeration enuPartNames;
- // part names of current event
- Vector columnNames;
- // table column names
- Vector row;
- // current table row
- Vector evtRows;
- // table rows for a specific event
- String strPartName;
- // name of the part being processed
- DefaultTableModel data;
- // data model for the events table
- JTable jtable;
- // the table of events
- JScrollPane scrPane;
- // the scroll pane for the table
logger.entering("org.fanfoot.gui", "populateEventTables(evts)");
tabpneEvents.removeAll();
! javax.swing.JEditorPane htmlEditorPane = new javax.swing.JEditorPane();
! htmlEditorPane.setContentType("text/html");
! tabpneEvents.add("Summary", htmlEditorPane);
! try {
! XMLTreePanel xmlTree = new XMLTreePanel();
! xmlTree.setDocument(evts.toXMLDoc());
! scrPane = new JScrollPane();
! scrPane.setViewportView(xmlTree);
! tabpneEvents.add("Events", scrPane);
! } catch(ParserConfigurationException pce) {
! // FIXME Tell the user of this error
! logger.log(Level.SEVERE, "XML Parser configuration error", pce);
}
! try {
! scores = new Scores(evts, scoringConfig);
! } catch(ScoringConfigurationException sce) {
! logger.log(Level.WARNING, "Unable to calculate scores", sce);
}
! XMLTreePanel xmlTree = new XMLTreePanel();
! xmlTree.setDocument(scores.getScoresDocument());
! scrPane = new JScrollPane();
! scrPane.setViewportView(xmlTree);
! tabpneEvents.add("Scores", scrPane);
Document docScores2HTML = null;
--- 447,539 ----
* to the tabbed pane displaying events.
*
! *@param evts the events to display
*/
private void populateEventTables(Events evts) {
logger.entering("org.fanfoot.gui", "populateEventTables(evts)");
tabpneEvents.removeAll();
+ addSummaryPane();
+ addEventsPane(evts);
+ addScoresPane(evts);
+ summaryPane.setText(createScoreSummary());
+ addEventPanes(evts);
! this.pack();
! logger.exiting("org.fanfoot.gui", "populateEventTables(evts)");
! }
!
!
! /**
! * Add individual panes to report each event type to the tabbed
! * pane.
! *
! *@param evts the events to display
! */
! private void addEventPanes(Events evts) {
! Enumeration evtTypes = evts.getTypes();// all types of events
! String strType;// type of events currently being processed
! ArrayList typeEvts;// all events of a certain type
! Vector columnNames;// table column names
! Vector evtRows;// table rows for a specific event
! DefaultTableModel data;// data model for the events table
! JTable jtable;// the table of event
!
! while(evtTypes.hasMoreElements()) {
! strType = (String) evtTypes.nextElement();
! typeEvts = evts.getEventsByType(strType);
! columnNames = new Vector();
! evtRows = new Vector();
!
! logger.finest("Processing events of type " + strType);
!
! for(int i = 0; i < typeEvts.size(); i++) {
! evtRows.add(getPartValues((Event) typeEvts.get(i), columnNames));
! }
!
! data = new DefaultTableModel(evtRows, columnNames);
! jtable = new JTable(data);
!
! JScrollPane scrPane = new JScrollPane();
! scrPane.setViewportView(jtable);
! tabpneEvents.addTab(strType, null, scrPane,
! "Display events of type " + strType);
}
+ }
!
! /**
! * Create a vector of the part values for the supplied event
! *
! *@param evt the event to process
! *@param columnNames the names of the columns we currently know
! * exist in events of this type any new column names discovered
! * will be added to this parameter
! *@return The parts value
! */
! private Vector getPartValues(Event evt, Vector columnNames) {
! Enumeration enuPartNames;// part names of the event
! String strPartName;// name of the part being processed
! Vector results = new Vector();
! enuPartNames = evt.getPartNames();
! while(enuPartNames.hasMoreElements()) {
! strPartName = (String) enuPartNames.nextElement();
! if(!columnNames.contains(strPartName)) {
! columnNames.add(strPartName);
! }
! results.add(evt.getPart(strPartName));
}
+ return results;
+ }
!
! /**
! * Create a summary of the scores and return it as a string
! *
! *@return Description of the Return Value
! */
! private String createScoreSummary() {
! String strSummary = "Unable to generate summary";
Document docScores2HTML = null;
***************
*** 497,501 ****
logger.log(Level.WARNING,
"Unable to load XSL to convert scores doc to HTML.", e);
! htmlEditorPane.setText("<h2>Error Parsing Scores</h2><p>" + e + "</p>");
}
--- 545,549 ----
logger.log(Level.WARNING,
"Unable to load XSL to convert scores doc to HTML.", e);
! strSummary = "<h2>Error Parsing Scores</h2><p>" + e + "</p>";
}
***************
*** 503,554 ****
Document htmlScores = XMLUtils.transform(scores.getScoresDocument(),
docScores2HTML);
! String strHTML = XMLUtils.xmlToString(htmlScores);
! logger.finest("HTML representation of scores is " + strHTML);
!
! htmlEditorPane.setText(strHTML);
} catch(Exception e) {
logger.log(Level.WARNING,
"Unable to convert scores document to HTML.", e);
! htmlEditorPane.setText("<h2>Error Parsing Scores</h2><p>" + e + "</p>");
}
- logger.finest("Event Types = " + evtTypes.toString());
! while(evtTypes.hasMoreElements()) {
! strType = (String) evtTypes.nextElement();
! typeEvts = evts.getEventsByType(strType);
! columnNames = new Vector();
! evtRows = new Vector();
- logger.finest("Processing events of type " + strType);
! for(int i = 0; i < typeEvts.size(); i++) {
! evt = (Event) typeEvts.get(i);
! row = new Vector();
! enuPartNames = evt.getPartNames();
! while(enuPartNames.hasMoreElements()) {
! strPartName = (String) enuPartNames.nextElement();
! if(!columnNames.contains(strPartName)) {
! columnNames.add(strPartName);
! logger.finest("Added column name " + strPartName);
! }
! row.add(evt.getPart(strPartName));
! logger.finest("Added column data " + evt.getPart(strPartName));
! }
! evtRows.add(row);
! }
- data = new DefaultTableModel(evtRows, columnNames);
- jtable = new JTable(data);
! scrPane = new JScrollPane();
! scrPane.setViewportView(jtable);
! tabpneEvents.addTab(strType, null, scrPane,
! "Display events of type " + strType);
! }
! this.pack();
! logger.exiting("org.fanfoot.gui", "populateEventTables(evts)");
}
--- 551,610 ----
Document htmlScores = XMLUtils.transform(scores.getScoresDocument(),
docScores2HTML);
! strSummary = XMLUtils.xmlToString(htmlScores);
! logger.finest("Summary of scores is " + strSummary);
} catch(Exception e) {
logger.log(Level.WARNING,
"Unable to convert scores document to HTML.", e);
! summaryPane.setText("<h2>Error Parsing Scores</h2><p>" + e + "</p>");
}
+ return strSummary;
+ }
! /** Add an HTML summary pane to the tabed pane */
! private void addSummaryPane() {
! summaryPane = new javax.swing.JEditorPane();
! summaryPane.setContentType("text/html");
! tabpneEvents.add("Summary", summaryPane);
! }
! /**
! * Add an XMLTree editor pane for the events
! *
! *@param evts The events to dispaly in the events pane
! */
! private void addEventsPane(Events evts) {
! JScrollPane scrPane = new JScrollPane();
! try {
! XMLTreePanel xmlTree = new XMLTreePanel();
! xmlTree.setDocument(evts.toXMLDoc());
! scrPane.setViewportView(xmlTree);
! tabpneEvents.add("Events", scrPane);
! } catch(ParserConfigurationException pce) {
! // FIXME Tell the user of this error
! logger.log(Level.SEVERE, "XML Parser configuration error", pce);
! }
! }
! /**
! * Add an XMLTree editor for the scores.
! *
! *@param evts the events from which to generate the scores
! */
! private void addScoresPane(Events evts) {
! JScrollPane scrPane = new JScrollPane();
! try {
! scores = new Scores(evts, scoringConfig);
! } catch(ScoringConfigurationException sce) {
! logger.log(Level.WARNING, "Unable to calculate scores", sce);
! }
! XMLTreePanel xmlTree = new XMLTreePanel();
! xmlTree.setDocument(scores.getScoresDocument());
! scrPane.setViewportView(xmlTree);
! tabpneEvents.add("Scores", scrPane);
}
***************
*** 557,561 ****
* Loaded Commentay file.
*
! *@param e Description of the Parameter
*/
public void retrievedCommentary(EventObject e) {
--- 613,617 ----
* Loaded Commentay file.
*
! *@param e Description of the Parameter
*/
public void retrievedCommentary(EventObject e) {
***************
*** 568,572 ****
/** the main menubar */
private javax.swing.JMenuBar mnubarMain;
! /** the parse BBC text menu item (used for debugging) */
private javax.swing.JMenuItem parseBBCTExt1;
/**
--- 624,628 ----
/** the main menubar */
private javax.swing.JMenuBar mnubarMain;
! /** the parse BBC text menu item (used for debugging) */
private javax.swing.JMenuItem parseBBCTExt1;
/**
***************
*** 580,592 ****
*/
private javax.swing.JTabbedPane tabpneEvents;
/** The menu item to parse a local commentary file */
private javax.swing.JMenuItem mnuItemParseFile;
/** the menu item to parse a remote commentary file */
private javax.swing.JMenuItem mnuitemParseURL;
! /** the configuration menu */
private javax.swing.JMenu mnuConfig;
! /** the file menu */
private javax.swing.JMenu mnuFile;
- // End of variables declaration//GEN-END:variables
}
--- 636,649 ----
*/
private javax.swing.JTabbedPane tabpneEvents;
+ /** The pane for displaying summary details */
+ javax.swing.JEditorPane summaryPane;
/** The menu item to parse a local commentary file */
private javax.swing.JMenuItem mnuItemParseFile;
/** the menu item to parse a remote commentary file */
private javax.swing.JMenuItem mnuitemParseURL;
! /** the configuration menu */
private javax.swing.JMenu mnuConfig;
! /** the file menu */
private javax.swing.JMenu mnuFile;
}
|
|
From: <rga...@us...> - 2002-10-21 18:10:04
|
Update of /cvsroot/csms/csms-core/legal
In directory usw-pr-cvs1:/tmp/cvs-serv6812
Added Files:
LICENSE.csms.html
Removed Files:
license
Log Message:
Added full MPL1.1 license
--- NEW FILE: LICENSE.csms.html ---
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.5 [en]C-NSCP (Win95; U) [Netscape]">
<title>Mozilla Public License version 1.1</title></head>
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
<center><b><font size="+2">MOZILLA PUBLIC LICENSE</font></b>
<br><b>Version 1.1</b>
<p>
</p><hr width="20%"></center>
<p><b>1. Definitions.</b>
</p><ul><b>1.0.1. "Commercial Use" </b>means distribution or otherwise making
the Covered Code available to a third party.
<p><b>1.1. ''Contributor''</b> means each entity that creates or contributes
to the creation of Modifications.
</p><p><b>1.2. ''Contributor Version''</b> means the combination of the Original
Code, prior Modifications used by a Contributor, and the Modifications
made by that particular Contributor.
</p><p><b>1.3. ''Covered Code''</b> means the Original Code or Modifications
or the combination of the Original Code and Modifications, in each case
including portions thereof<b>.</b>
</p><p><b>1.4. ''Electronic Distribution Mechanism''</b> means a mechanism
generally accepted in the software development community for the electronic
transfer of data.
</p><p><b>1.5. ''Executable''</b> means Covered Code in any form other than
Source Code.
</p><p><b>1.6. ''Initial Developer''</b> means the individual or entity identified
as the Initial Developer in the Source Code notice required by <b>Exhibit
A</b>.
</p><p><b>1.7. ''Larger Work''</b> means a work which combines Covered Code
or portions thereof with code not governed by the terms of this License.
</p><p><b>1.8. ''License''</b> means this document.
</p><p><b>1.8.1. "Licensable"</b> means having the right to grant, to the maximum
extent possible, whether at the time of the initial grant or subsequently
acquired, any and all of the rights conveyed herein.
</p><p><b>1.9. ''Modifications''</b> means any addition to or deletion from
the substance or structure of either the Original Code or any previous
Modifications. When Covered Code is released as a series of files, a Modification
is:
</p><ul><b>A.</b> Any addition to or deletion from the contents of a file containing
Original Code or previous Modifications.
<p><b>B.</b> Any new file that contains any part of the Original Code or
previous Modifications.
<br> </p></ul>
<b>1.10. ''Original Code''</b> means Source Code of computer software code
which is described in the Source Code notice required by <b>Exhibit A</b>
as Original Code, and which, at the time of its release under this License
is not already Covered Code governed by this License.
<p><b>1.10.1. "Patent Claims"</b> means any patent claim(s), now owned
or hereafter acquired, including without limitation, method, process,
and apparatus claims, in any patent Licensable by grantor.
</p><p><b>1.11. ''Source Code''</b> means the preferred form of the Covered
Code for making modifications to it, including all modules it contains,
plus any associated interface definition files, scripts used to control
compilation and installation of an Executable, or source code differential
comparisons against either the Original Code or another well known, available
Covered Code of the Contributor's choice. The Source Code can be in a compressed
or archival form, provided the appropriate decompression or de-archiving
software is widely available for no charge.
</p><p><b>1.12. "You'' (or "Your") </b> means an individual or a legal
entity exercising rights under, and complying with all of the terms of,
this License or a future version of this License issued under Section 6.1.
For legal entities, "You'' includes any entity which controls, is controlled
by, or is under common control with You. For purposes of this definition,
"control'' means (a) the power, direct or indirect, to cause the direction
or management of such entity, whether by contract or otherwise, or (b)
ownership of more than fifty percent (50%) of the outstanding shares or
beneficial ownership of such entity.</p></ul>
<b>2. Source Code License.</b>
<ul><b>2.1. The Initial Developer Grant.</b>
<br>The Initial Developer hereby grants You a world-wide, royalty-free,
non-exclusive license, subject to third party intellectual property claims:
<ul><b>(a)</b> <b> </b>under intellectual property rights (other than
patent or trademark) Licensable by Initial Developer to use, reproduce,
modify, display, perform, sublicense and distribute the Original Code (or
portions thereof) with or without Modifications, and/or as part of a Larger
Work; and
<p><b>(b)</b> under Patents Claims infringed by the making, using or selling
of Original Code, to make, have made, use, practice, sell, and offer for
sale, and/or otherwise dispose of the Original Code (or portions thereof).
</p><ul>
<ul> </ul>
</ul>
<b>(c) </b>the licenses granted in this Section 2.1(a) and (b) are effective
on the date Initial Developer first distributes Original Code under the
terms of this License.
<p><b>(d) </b>Notwithstanding Section 2.1(b) above, no patent license is
granted: 1) for code that You delete from the Original Code; 2) separate
from the Original Code; or 3) for infringements caused by: i) the
modification of the Original Code or ii) the combination of the Original
Code with other software or devices.
<br> </p></ul>
<b>2.2. Contributor Grant.</b>
<br>Subject to third party intellectual property claims, each Contributor
hereby grants You a world-wide, royalty-free, non-exclusive license
<ul>
<br><b>(a)</b> <b> </b>under intellectual property rights (other than
patent or trademark) Licensable by Contributor, to use, reproduce, modify,
display, perform, sublicense and distribute the Modifications created by
such Contributor (or portions thereof) either on an unmodified basis, with
other Modifications, as Covered Code and/or as part of a Larger Work; and
<p><b>(b)</b> under Patent Claims infringed by the making, using, or selling
of Modifications made by that Contributor either alone and/or in<font color="#000000">
combination with its Contributor Version (or portions of such combination),
to make, use, sell, offer for sale, have made, and/or otherwise dispose
of: 1) Modifications made by that Contributor (or portions thereof); and
2) the combination of Modifications made by that Contributor with
its Contributor Version (or portions of such combination).</font>
</p><p><b>(c) </b>the licenses granted in Sections 2.2(a) and 2.2(b) are effective
on the date Contributor first makes Commercial Use of the Covered Code.
</p><p><b>(d) </b> Notwithstanding Section 2.2(b) above, no
patent license is granted: 1) for any code that Contributor has deleted
from the Contributor Version; 2) separate from the Contributor Version;
3) for infringements caused by: i) third party modifications of Contributor
Version or ii) the combination of Modifications made by that Contributor
with other software (except as part of the Contributor Version) or
other devices; or 4) under Patent Claims infringed by Covered Code in the
absence of Modifications made by that Contributor.</p></ul>
</ul>
<p><br><b>3. Distribution Obligations.</b>
</p><ul><b>3.1. Application of License.</b>
<br>The Modifications which You create or to which You contribute are governed
by the terms of this License, including without limitation Section <b>2.2</b>.
The Source Code version of Covered Code may be distributed only under the
terms of this License or a future version of this License released under
Section <b>6.1</b>, and You must include a copy of this License with every
copy of the Source Code You distribute. You may not offer or impose any
terms on any Source Code version that alters or restricts the applicable
version of this License or the recipients' rights hereunder. However, You
may include an additional document offering the additional rights described
in Section <b>3.5</b>.
<p><b>3.2. Availability of Source Code.</b>
<br>Any Modification which You create or to which You contribute must be
made available in Source Code form under the terms of this License either
on the same media as an Executable version or via an accepted Electronic
Distribution Mechanism to anyone to whom you made an Executable version
available; and if made available via Electronic Distribution Mechanism,
must remain available for at least twelve (12) months after the date it
initially became available, or at least six (6) months after a subsequent
version of that particular Modification has been made available to such
recipients. You are responsible for ensuring that the Source Code version
remains available even if the Electronic Distribution Mechanism is maintained
by a third party.
</p><p><b>3.3. Description of Modifications.</b>
<br>You must cause all Covered Code to which You contribute to contain
a file documenting the changes You made to create that Covered Code and
the date of any change. You must include a prominent statement that the
Modification is derived, directly or indirectly, from Original Code provided
by the Initial Developer and including the name of the Initial Developer
in (a) the Source Code, and (b) in any notice in an Executable version
or related documentation in which You describe the origin or ownership
of the Covered Code.
</p><p><b>3.4. Intellectual Property Matters</b>
</p><ul><b>(a) Third Party Claims</b>.
<br>If Contributor has knowledge that a license under a third party's intellectual
property rights is required to exercise the rights granted by such Contributor
under Sections 2.1 or 2.2, Contributor must include a text file with the
Source Code distribution titled "LEGAL'' which describes the claim and
the party making the claim in sufficient detail that a recipient will know
whom to contact. If Contributor obtains such knowledge after the Modification
is made available as described in Section 3.2, Contributor shall promptly
modify the LEGAL file in all copies Contributor makes available thereafter
and shall take other steps (such as notifying appropriate mailing lists
or newsgroups) reasonably calculated to inform those who received the Covered
Code that new knowledge has been obtained.
<p><b>(b) Contributor APIs</b>.
<br>If Contributor's Modifications include an application programming interface
and Contributor has knowledge of patent licenses which are reasonably necessary
to implement that API, Contributor must also include this information in
the LEGAL file.
<br> </p></ul>
<b>(c)
Representations.</b>
<ul>Contributor represents that, except as disclosed pursuant to Section
3.4(a) above, Contributor believes that Contributor's Modifications are
Contributor's original creation(s) and/or Contributor has sufficient rights
to grant the rights conveyed by this License.</ul>
<p><br><b>3.5. Required Notices.</b>
<br>You must duplicate the notice in <b>Exhibit A</b> in each file of the
Source Code. If it is not possible to put such notice in a particular
Source Code file due to its structure, then You must include such notice
in a location (such as a relevant directory) where a user would be likely
to look for such a notice. If You created one or more Modification(s)
You may add your name as a Contributor to the notice described in <b>Exhibit
A</b>. You must also duplicate this License in any documentation
for the Source Code where You describe recipients' rights or ownership
rights relating to Covered Code. You may choose to offer, and to
charge a fee for, warranty, support, indemnity or liability obligations
to one or more recipients of Covered Code. However, You may do so only
on Your own behalf, and not on behalf of the Initial Developer or any Contributor.
You must make it absolutely clear than any such warranty, support, indemnity
or liability obligation is offered by You alone, and You hereby agree to
indemnify the Initial Developer and every Contributor for any liability
incurred by the Initial Developer or such Contributor as a result of warranty,
support, indemnity or liability terms You offer.
</p><p><b>3.6. Distribution of Executable Versions.</b>
<br>You may distribute Covered Code in Executable form only if the requirements
of Section <b>3.1-3.5</b> have been met for that Covered Code, and if You
include a notice stating that the Source Code version of the Covered Code
is available under the terms of this License, including a description of
how and where You have fulfilled the obligations of Section <b>3.2</b>.
The notice must be conspicuously included in any notice in an Executable
version, related documentation or collateral in which You describe recipients'
rights relating to the Covered Code. You may distribute the Executable
version of Covered Code or ownership rights under a license of Your choice,
which may contain terms different from this License, provided that You
are in compliance with the terms of this License and that the license for
the Executable version does not attempt to limit or alter the recipient's
rights in the Source Code version from the rights set forth in this License.
If You distribute the Executable version under a different license You
must make it absolutely clear that any terms which differ from this License
are offered by You alone, not by the Initial Developer or any Contributor.
You hereby agree to indemnify the Initial Developer and every Contributor
for any liability incurred by the Initial Developer or such Contributor
as a result of any such terms You offer.
</p><p><b>3.7. Larger Works.</b>
<br>You may create a Larger Work by combining Covered Code with other code
not governed by the terms of this License and distribute the Larger Work
as a single product. In such a case, You must make sure the requirements
of this License are fulfilled for the Covered Code.</p></ul>
<b>4. Inability to Comply Due to Statute or Regulation.</b>
<ul>If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Code due to statute,
judicial order, or regulation then You must: (a) comply with the terms
of this License to the maximum extent possible; and (b) describe the limitations
and the code they affect. Such description must be included in the LEGAL
file described in Section <b>3.4</b> and must be included with all distributions
of the Source Code. Except to the extent prohibited by statute or regulation,
such description must be sufficiently detailed for a recipient of ordinary
skill to be able to understand it.</ul>
<b>5. Application of this License.</b>
<ul>This License applies to code to which the Initial Developer has attached
the notice in <b>Exhibit A</b> and to related Covered Code.</ul>
<b>6. Versions of the License.</b>
<ul><b>6.1. New Versions</b>.
<br>Netscape Communications Corporation (''Netscape'') may publish revised
and/or new versions of the License from time to time. Each version will
be given a distinguishing version number.
<p><b>6.2. Effect of New Versions</b>.
<br>Once Covered Code has been published under a particular version of
the License, You may always continue to use it under the terms of that
version. You may also choose to use such Covered Code under the terms of
any subsequent version of the License published by Netscape. No one other
than Netscape has the right to modify the terms applicable to Covered Code
created under this License.
</p><p><b>6.3. Derivative Works</b>.
<br>If You create or use a modified version of this License (which you
may only do in order to apply it to code which is not already Covered Code
governed by this License), You must (a) rename Your license so that the
phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", ''NPL''
or any confusingly similar phrase do not appear in your license (except
to note that your license differs from this License) and (b) otherwise
make it clear that Your version of the license contains terms which differ
from the Mozilla Public License and Netscape Public License. (Filling in
the name of the Initial Developer, Original Code or Contributor in the
notice described in <b>Exhibit A</b> shall not of themselves be deemed
to be modifications of this License.)</p></ul>
<b>7. DISCLAIMER OF WARRANTY.</b>
<ul>COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT
FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY
AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE
PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER
CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION.
THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.</ul>
<b>8. TERMINATION.</b>
<ul><b>8.1. </b>This License and the rights granted hereunder will
terminate automatically if You fail to comply with terms herein and fail
to cure such breach within 30 days of becoming aware of the breach. All
sublicenses to the Covered Code which are properly granted shall survive
any termination of this License. Provisions which, by their nature, must
remain in effect beyond the termination of this License shall survive.
<p><b>8.2. </b>If You initiate litigation by asserting a patent infringement
claim (excluding declatory judgment actions) against Initial Developer
or a Contributor (the Initial Developer or Contributor against whom You
file such action is referred to as "Participant") alleging that:
</p><p><b>(a) </b>such Participant's Contributor Version directly or
indirectly infringes any patent, then any and all rights granted by such
Participant to You under Sections 2.1 and/or 2.2 of this License shall,
upon 60 days notice from Participant terminate prospectively, unless if
within 60 days after receipt of notice You either: (i) agree in writing
to pay Participant a mutually agreeable reasonable royalty for Your past
and future use of Modifications made by such Participant, or (ii) withdraw
Your litigation claim with respect to the Contributor Version against such
Participant. If within 60 days of notice, a reasonable royalty and
payment arrangement are not mutually agreed upon in writing by the parties
or the litigation claim is not withdrawn, the rights granted by Participant
to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration
of the 60 day notice period specified above.
</p><p><b>(b)</b> any software, hardware, or device, other than such
Participant's Contributor Version, directly or indirectly infringes any
patent, then any rights granted to You by such Participant under Sections
2.1(b) and 2.2(b) are revoked effective as of the date You first made,
used, sold, distributed, or had made, Modifications made by that Participant.
</p><p><b>8.3. </b>If You assert a patent infringement claim against
Participant alleging that such Participant's Contributor Version directly
or indirectly infringes any patent where such claim is resolved (such as
by license or settlement) prior to the initiation of patent infringement
litigation, then the reasonable value of the licenses granted by such Participant
under Sections 2.1 or 2.2 shall be taken into account in determining the
amount or value of any payment or license.
</p><p><b>8.4.</b> In the event of termination under Sections 8.1 or
8.2 above, all end user license agreements (excluding distributors
and resellers) which have been validly granted by You or any distributor
hereunder prior to termination shall survive termination.</p></ul>
<b>9. LIMITATION OF LIABILITY.</b>
<ul>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER,
ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER
OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE
OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN
IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.
THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR
PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE
LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION
AND LIMITATION MAY NOT APPLY TO YOU.</ul>
<b>10. U.S. GOVERNMENT END USERS.</b>
<ul>The Covered Code is a ''commercial item,'' as that term is defined
in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software''
and ''commercial computer software documentation,'' as such terms are used
in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and
48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
End Users acquire Covered Code with only those rights set forth herein.</ul>
<b>11. MISCELLANEOUS.</b>
<ul>This License represents the complete agreement concerning subject matter
hereof. If any provision of this License is held to be unenforceable, such
provision shall be reformed only to the extent necessary to make it enforceable.
This License shall be governed by California law provisions (except to
the extent applicable law, if any, provides otherwise), excluding its conflict-of-law
provisions. With respect to disputes in which at least one party is a citizen
of, or an entity chartered or registered to do business in the United States
of America, any litigation relating to this License shall be subject to
the jurisdiction of the Federal Courts of the Northern District of California,
with venue lying in Santa Clara County, California, with the losing party
responsible for costs, including without limitation, court costs and reasonable
attorneys' fees and expenses. The application of the United Nations Convention
on Contracts for the International Sale of Goods is expressly excluded.
Any law or regulation which provides that the language of a contract shall
be construed against the drafter shall not apply to this License.</ul>
<b>12. RESPONSIBILITY FOR CLAIMS.</b>
<ul>As between Initial Developer and the Contributors, each party is responsible
for claims and damages arising, directly or indirectly, out of its utilization
of rights under this License and You agree to work with Initial Developer
and Contributors to distribute such responsibility on an equitable basis.
Nothing herein is intended or shall be deemed to constitute any admission
of liability.</ul>
<b>13. MULTIPLE-LICENSED CODE.</b>
<ul>Initial Developer may designate portions of the Covered Code as “Multiple-Licensed”.
“Multiple-Licensed” means that the Initial Developer permits you to utilize
portions of the Covered Code under Your choice of the MPL or the alternative
licenses, if any, specified by the Initial Developer in the file described
in Exhibit A.</ul>
<p><br><b>EXHIBIT A -Mozilla Public License.</b>
</p><ul>``The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
<br>http://www.mozilla.org/MPL/
<p>Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF
<br>ANY KIND, either express or implied. See the License for the specific
language governing rights and
<br>limitations under the License.
</p><p>The Original Code is Community Sports Management System.
</p><p>The Initial Developer of the Original Code is We know What you Want.net
Portions created by
<br> The Initial Developer are Copyright (C) 2002
All Rights
<br>Reserved.
</p><p>Contributor(s):
<ul>
<li>Ross Gardler - ross [at] saafe.org</li>
<li>Mike Lever - mikel [at] fanfoot.com</li>
<li>Stuart Gardler - stuart [at] wkwyw.net</li>
</p>
</p><p>[NOTE: The text of this Exhibit A may differ slightly from the text
of the notices in the Source Code files of the Original Code. You should
use the text of this Exhibit A rather than the text found in the Original
Code Source Code for Your Modifications.]
</p><p>
</p></ul></body></html>
--- license DELETED ---
|
|
From: <rga...@us...> - 2002-10-21 17:02:55
|
Update of /cvsroot/csms/csms-core/src/documentation In directory usw-pr-cvs1:/tmp/cvs-serv13259 Modified Files: constitution.txt Log Message: Fixed incorrect project title Index: constitution.txt =================================================================== RCS file: /cvsroot/csms/csms-core/src/documentation/constitution.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** constitution.txt 21 Oct 2002 14:22:42 -0000 1.1 --- constitution.txt 21 Oct 2002 17:02:51 -0000 1.2 *************** *** 9,16 **** ------------------------------------------------------------ ! This document defines the guidelines of the Community Sports Management Project ! (CSMS). It includes definitions of the various categories of membership, ! who is able to vote, how conflicts are resolved by voting, and the procedures ! to follow for proposing and making changes to the codebase of the Project. This is a living document. Changes can be made by the Project Management --- 9,17 ---- ------------------------------------------------------------ ! This document defines the guidelines of the Community Sports ! Management Systems project (CSMS). It includes definitions of ! the various categories of membership, who is able to vote, how ! conflicts are resolved by voting, and the procedures to follow ! for proposing and making changes to the codebase of the Project. This is a living document. Changes can be made by the Project Management |
|
From: <rga...@us...> - 2002-10-21 14:22:45
|
Update of /cvsroot/csms/csms-core/src/documentation
In directory usw-pr-cvs1:/tmp/cvs-serv3338
Added Files:
constitution.txt
Log Message:
Initial import
--- NEW FILE: constitution.txt ---
Community Sports Management System Project Constitution
-----------------------------------------------
Project Conststitution
------------------------------------------------------------
Inspired by the Krysalis Community constitution,
which in turn is inspired by the xml.apache.org constitution.
(Apache Software Foundation - all rights reserved)
------------------------------------------------------------
This document defines the guidelines of the Community Sports Management Project
(CSMS). It includes definitions of the various categories of membership,
who is able to vote, how conflicts are resolved by voting, and the procedures
to follow for proposing and making changes to the codebase of the Project.
This is a living document. Changes can be made by the Project Management
Committee and must be approved by 2/3 of all Developers.
This document consists of the following sections:
- Our Mission.
- Roles and Responsibilities: defines the recognized roles in the project.
- Decision Making: defines how action items are proposed and voted on.
- Communication: defines how users and developers communicate.
- Source Repositories: define how the Project's source code is organized and
developed.
- Project Management: defines the roles and responsibilities of the Project
Management Committee (PMC).
- Project Management Committee (PMC) Bylaws
===========
Our Mission
===========
Our mission is to build a community and software system to support the
growth and development of sports clubs of all types. We aim to bring these
valuable real world communities together in the virtual world of the Internet.
The objective is to encourage more participation in sports clubs of all types
by all people whether they be players, organisers or supporters.
==========================
Roles and Responsibilities
==========================
The roles and responsibilities that people can assume in the project are
based on merit. Everybody can help no matter what their role. Those who have
been long term or valuable contributors to the project obtain the right to
vote and commit directly to the document and source code repository.
There are five roles within the community, each role brings with it a set of
responsabilities. These roles are not mutually exclusive. The roles are:
- Members
- Content Managers
- Developers
- Committers
- Project Managmement Committee members
Members
-------
Anyone can be a member.
Members are the people who participate in the community. They use the
products of the Project. People in this role aren't contributing code
or documents to the repository, however,they are contributing to the
community by providing valuable feedback and requests for enhancements,
as well as making the community stronger through their support.
This is by far the most important category of people as, without members,
there is no reason for the project or for the community.
Content Managers
----------------
Content Managers also have the responsabilities of Members.
Members who contribute to the data, information and news available to
the community on a frequent basis can be proposed as a Content Manager,
or they may request Content Manager status. Any member can propose any
other member as a Content Manager. Once proposed a vote of the existing
Content Managers is carried out (see below for voting procedures).
A result of at least three positive votes and no negative votes will
result in the creation of a new Content Manager.
Content Managers are able to edit materials posted by other members
(normally only the poster can edit their own materials). They also have
the ability to create new sections within the community to support new
sports, teams and interests. As such, the Content Managers are answerable
to the Members and must endeavour to ensure the community facilities
available are what the members require,
At times, Content Managers may go inactive for a variety of reasons. A Content
Manager that has been inactive for 4 months or more may lose his or her status
as a Content Manager. However, they will always be contacted via their last
known email address before Content Manager status is removed.
Developers
----------
Anyone can be a developer.
Developers are the people contribute to the project by writing code
and documentation patches or contribute positively to the project products
in other ways. A developer's contribution is always recognized. In source
code, all developers who contribute to a source file may add their name to
the list of authors for that file. In documentation, they may similarly add
their name to the authors list for any document they contribute to.
These credits will be reproduced in all source code distributions of the
software and in all documentation.
Committers
----------
Developers who give frequent and valuable contributions to a subproject of
the CSMS project can have their status promoted to that of a "Committer" for
that subproject.
A Committer has write access to the source code repository and
gains voting rights allowing them to affect the future of the subproject.
In order for a Developer to become a Committer, another Committer can
nominate that Developer or the Developer can ask for it. Once a Developer is
nominated, all of the Committers for a subproject will vote. If there are at
least 3 positive votes and no negative votes, the Developer is converted
into a Committer and given write access to the source code repository for
that subproject.
At times, Committers may go inactive for a variety of reasons. A Committer
that has been inactive for 6 months or more may lose his or her status as a
Committer. However, they will always be contacted via their last known email
address before commiter status is removed.
Committers have the right to add their details to the license under which
all proucts of the project are released.
Project Management Committee (PMC) Member
-----------------------------------------
Committers who frequently participate with valuable contributions may have
their status promoted to that of a "Project Management Committee Member".
This committee is the official managing body of the CSMS Project
and is responsible for setting overall project direction. On Sourceforge
(sourceforge.net) they are called admins. In order to become a Member of the
PMC, someone on the PMC must nominate the Committer. The individual may
then be approved with a 3/4 majority of the PMC.
The PMC has the right to secure the health of the community, and has the
power to exclude any developer, content manager or member from the community
as an extreme measure if he/she endangers the mission of the Project. All
exclusions must be passed with a 3/4 majority vote. No vetoes are permmmitted
on such votes.
===============
Decision Making
===============
All Members, Developers and Content Managers are encouraged to participate in
decisions, but the decision itself is made by those that have Committer
status in the Project. In other words, the Project is a "Minimum Threshold
Meritocracy".
Any person, whether a member or not, may vote on any issue or action item.
However, the only binding votes are those cast by a Committer. If the vote
is about a change to the source code or documentation and the primary
author is a Developer and not a Commiter, the primary author of what is
being changed may also cast a binding vote on that issue.
The act of voting carries certain obligations. Voting members are not only
stating their opinion, they are also agreeing to help do the work.
Each vote can be made in one of three flavors:
+1 - "Yes," "Agree," or "the action should be performed." On some issues
this is only binding if the voter has tested the action on their own
system(s).
+/-0 - "Abstain," "no opinion". If, as a commiter, you are unable to
commit to helping bring the results of the vote to fruition you should
abstain rather than cast a +1. The use of +0 can indicate your
preference in the event of a tied vote. In this instance a +0 vote is
taken as meaning "+1 but I can;t help". A 0 or -0 vote is treated as
"no opinion".
-1 - "No." On issues where consensus is required, this vote counts as a
veto. All vetos must contain an explanation of why the veto is appropriate.
Vetos with no explanation are void. No veto can be overruled. If you
disagree with the veto, you should lobby the person who cast the veto.
Voters intending to veto an action item should make their opinions known to
the group immediately so that the problem can be remedied as early as
possible.
An action requiring consensus approval must receive at least 3 binding +1
votes and no binding vetos.
An action requiring majority approval must
receive at least 3 binding +1 votes and more +1 votes than -1 votes.
All other action items are considered to have lazy approval until somebody
votes -1, after which point they are decided by either consensus or
majority vote, depending on the type of action item.
Action Items
============
All decisions revolve around "Action Items." Action Items consist of the
following:
- Long Term Plans
- Short Term Plans
- Release Plan
- Release Testing
- Showstoppers
- Product Changes
- Appointement of a new Content Manager
- Appointment of a new Committer
- Appointment of a new PMC member
- Removal of Cotent Manager Status
- Removal of Committer Status
- Removal of PMC Membership
- Exclusion of a member
Long Term Plans
---------------
Long term plans are simply announcements that group members are working on
particular issues related to the Project. These are not voted on, but
Developers who do not agree with a particular plan, or think that an
alternative plan would be better, are obligated to inform the group of their
feelings by applying (and explaining) a veto.
Short Term Plans
----------------
Short term plans are announcements that a developer is working on a
particular set of documentation or code files with the implication that
other developers should avoid them or try to coordinate their changes.
These are not voted on, but Developers who do not agree with a particular
plan, or think that an alternative plan would be better, are obligated to
inform the group of their feelings by applying (and explaining) a veto.
Release Plan
------------
A release plan is used to keep all Developers aware of when a release is
desired, who will be the release manager, when the repository will be frozen
to create a release, and other assorted information to keep Developers from
tripping over each other. Lazy majority decides each issue in a release
plan.
Release Testing
---------------
After a new release is built, it must be tested before being released to
the public. Majority approval is required before the release can be made.
Showstoppers
------------
Showstoppers are issues that require a fix be in place before the next
public release. They are listed in the status file in order to focus special
attention on these problems. An issue becomes a showstopper when it is
listed as such in the status file and remains so by lazy consensus.
Product Changes
---------------
Changes to the products of the Project, including code and documentation,
will appear as action items in the status file. All product changes to the
currently active repository are subject to lazy consensus.
Appointement of a new Content Manager
-------------------------------------
Members who contribute to the data, information and news available to
the community on a frequent basis can be proposed as a Content Manager,
or they may request Content Manager status. Any member can propose any
other member as a Content Manager. Once proposed a vote of the existing
Content Managers is carried out (see below for voting procedures).
A result of at least three positive votes and no negative votes will
result in the creation of a new Content Manager.
Appointment of a new Committer
------------------------------
A Committer can nominate any Developer as a new Committer or a Developer
may ask for a vote on their acceptance as a Committer. Once a Developer is
nominated, all of the Committers for a subproject will vote. If there are at
least 3 positive votes and no negative votes, the Developer is converted
into a Committer and given write access to the source code repository for
that subproject.
Removal of Content Manager Status
---------------------------------
If a Content Manager has been inactive for 4 months or more any other
Content Manager can request the removal of Content Manager status from that
person. No vote is taken until an attempt to contact the Content Manager
at their last known email address and a further 4 weeks have past. If the
Content Manager respondes, agreeing that they are no longer active then no
vote is required. However, if no response is recieved, or if a request is
to retain their status a vote is taken. A result of 3 or more positive votes
and no negative votes will result in the removal of Content Manager status.
Removal of Commiter Status
---------------------------
If a Committer has been inactive for 6 months or more any other
Committer can request the removal of Committer status from that
person. No vote is taken until an attempt to contact the Committer
at their last known email address and a further 4 weeks have past. If the
Committer respondes, agreeing that they are no longer active then no
vote is required. However, if no response is recieved, or if a request is
to retain their status a vote is taken. A result of 3 or more positive votes
and no negative votes will result in the removal of Committer status.
Removal of Commiter status does not mean that credits in source code and license
files is removed. These credits cannot be removed under any circumstances.
Appointment of a new PMC member
-------------------------------
The existing PMC can nominate any Committer as a new PMC Member. New members
are accepted on a 3/4 majority. There are no veto cotes in this cote.
Removal of PMC Membership
-------------------------
Any member of the community has the right to request a member of the PMC be
removed. Such a vote will go to all members and no veto is allowed. A majority
of 3/4 is required to remove a PMC member.
Exclusion of a Member
---------------------
The PMC has the right to secure the health of the community, and has the
power to exclude any developer, content manager or member from the community
as an extreme measure if he/she endangers the mission of the Project. All
exclusions must be passed with a 3/4 majority vote. No vetoes are permmmitted
on such votes.
=============
Communication
=============
The project obtains its strength from the communication of its members. In
order for members to easily communicate with each other, the project has a
variety of mailing lists. These lists, with the exception of the
announcement lists, are not moderated and anybody is more than welcome to
join them. However, you must be subscribed to post to a list.
To reduce the bandwidth demands on everyone, mail should not contain
attachments and be in plain text. It is recommended that you place
interesting material either within the body of the message or provide a URL
for retrieval. If you do not have public space available for sharing of large
data files please post a request for assistance on the relavent mailing list.
Someone in the community will assist.
The Project's lists fall into the following categories:
Announcement Lists
------------------
Announcement lists are very low traffic designed to communicate important
information, such as final releases of a subproject's code, to a wide
audience.
User Lists
----------
User lists are for users of a product to converse about such things as
configuration and operating of the products of the project.
Developer Lists
---------------
Developer lists are for the developers of the project. On these lists
suggestions and comments for code changes are discussed and action items are
raised and voted on. For the developer community, these lists are the very
center of the project where all the "action" is.
Commit Lists
------------
The commit lists are where all cvs code commit messages are sent. All
committers are required to subscribe to this list so that they can stay
aware of changes to the repository.
===================
Source Repositories
===================
The project's codebase is maintained in shared information repositories
using CVS on sourceforge.net. Only Committers have write access
to these repositories. Everyone has read access via anonymous CVS.
Coding Conventions
------------------
Java Language source code in the repository is recommended to be
written in conformance to the Code Conventions for the Java
Programming Language as published by Sun
(http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html).
License
-------
All source code committed to the Project's repositories must be covered by
the most recent version of The Mozilla Public License at the time of the
contribution. Binary files can, as an alternative, contain a copyright
and license that allows redistribution under the same conditions as the
Mozilla Public License.
Status Files
------------
Each of the project's active source code repositories contain a file named
status.xml which is used to keep track of the agenda and plans for work within
that repository. The status file includes information about release plans, a
summary of code changes committed since the last release,
Branches
--------
Groups are allowed to create a branch for release cycles, etc. They are
expected to merge completely back with the main branch as soon as their
release cycle is complete.
Changes
-------
Simple patches to fix bugs can be committed then reviewed. With a
commit-then-review process, the Committer is trusted to have a high degree
of confidence in the change.
Doubtful changes, new features, and large scale overhauls need to be
discussed before committing them into the repository. Any change that
affects the semantics of an existing API function, the size of the program,
configuration data formats, or other major areas must receive consensus
approval before being committed.
Related changes should be committed as a group, or very closely together.
Half complete projects should never be committed to the main branch of a
development repository. All code changes must be successfully compiled on
the developer's platform before being committed.
The current source code tree for a subproject should be capable of complete
compilation at all times. However, it is sometimes impossible for a
developer on one platform to avoid breaking some other platform when a
change is committed. If it is anticipated that a given change will break the
build on some other platform, the committer must indicate that in the commit
message.
A committed change must be reversed if it is vetoed by one of the voting
members and the veto conditions cannot be immediately satisfied by the
equivalent of a "bug fix" commit. The veto must be rescinded before the
change can be included in any public release.
Patches
-------
When a specific change to a product is proposed for discussion or voting on
the appropriate development mailing list, it should be presented in the form
of input to the patch command. The patch must be inserted in the patch
tracking system for consideration by the committers.
The patch should be created by using the diff -u command from the original
software file(s) to the modified software file(s). For example:
diff -u Main.java.orig Main.java >> patchfile.txt
or
cvs diff -u Main.java >> patchfile.txt
All patches necessary to address an action item should be concatencated
within a single patch message. If later modification to the patch proves
necessary, the entire new patch should be posted and not just the difference
between the two patches.
=========================================
Project Management Committee (PMC) Bylaws
=========================================
The Project Management Committee (PMC) was formed by the CSMS
founders in October 2002. This Committee consists of 3 founding members,
one of whom is the founding Chairman.
The term of the Chairman is one year. There is no term limit for members.
Roles
-----
The PMC is responsible for the strategic direction and success of the
CSMS project. This governing body is expected to ensure the
project's welfare and guide its overall direction. The PMC may not
necessarily participate in the day-to-day coding but is involved in the
overall development plans, the alleviation of any bottlenecks, the
resolution of conflicts, and the overall technical success of the project.
Meetings
--------
The PMC do not meet regularly. However, they are expected to be in close
communitation on a regular basis.
Formal meetings may be called by any PMC member and all members are expected
to make all reasonable efforts to attend. These formal meetings are to discuss
issues, determine strategic direction, and forward progress. These meetings
may take place online, via teleconference, or via other means deemed effective
by the PMC.
The PMC has an annual meeting at which time a new Chairman is elected.
The old Chairman maintains membership status with no extra privileges.
Membership
----------
PMC members may resign at any time. The Chairman may resign as Chairman at
any time without resigning membership to the PMC.
|
|
From: <rga...@us...> - 2002-10-21 12:01:19
|
Update of /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring In directory usw-pr-cvs1:/tmp/cvs-serv22682/src/java/org/fanfoot/scoring Modified Files: Event.java EventParser.java EventParserConfiguration.java EventParserConfigurationException.java EventParserListener.java EventPattern.java Events.java Scores.java ScoringConfiguration.java ScoringConfigurationException.java Log Message: Various code stule fixes Index: Event.java =================================================================== RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring/Event.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Event.java 20 Oct 2002 20:50:21 -0000 1.3 --- Event.java 21 Oct 2002 12:01:14 -0000 1.4 *************** *** 1,35 **** ! /* ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** */ ! /* ! * Event.java * ! * Created on 20 September 2002, 21:59 */ package org.fanfoot.scoring; --- 1,36 ---- ! /* ! * ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** ! */ /* ! * Event.java * ! * Created on 20 September 2002, 21:59 */ package org.fanfoot.scoring; *************** *** 45,244 **** /** ! * An event in a live game that may have an impact on the fantasy game ! * @author rgardler */ public class Event { ! /** Holds value of property src which indicates ! * where this event record came from. */ ! private String src = ""; ! /** Holds value of property type. */ ! private String type = ""; ! ! /** The parts describing this event */ ! Hashtable parts = new Hashtable(); ! /** Holds value of property uid. */ ! private String uid = ""; ! ! /** Where to write log entries to */ ! final Logger logger = Logger.getLogger("org.fanfoot.scoring"); ! ! /** Creates a new instance of Event of the type indicated ! * @param strType the type of this event ! *this event belongs to. From this a unique event identifier will be ! *created. ! */ ! public Event(String strType) { ! this.setType(strType); ! } ! /** Getter for property src. ! * @return Value of property src. ! * ! */ ! public String getSrc() { ! return this.src; ! } ! /** Setter for property src. ! * @param src New value of property src. ! * ! */ ! public void setSrc(String src) { ! this.src = src; ! } - /** Getter for property type. - * @return Value of property type. - * - */ - public String getType() { - return this.type; - } ! /** Setter for property type. ! * @param type New value of property type. ! * ! */ ! public void setType(String type) { ! this.type = type; ! } - /** - * Get the part of the event named. - * @param strPart name of the part required - * @return value of the part requested - */ - public String getPart(String strPart) { - return (String) parts.get(strPart); - } ! /** ! * Add the named part and value to the collection of parts. ! * @param strName name of the part, nulls are converted to an empty string ! * @param strValue value of the part ! */ ! public void putPart(String strName, String strValue) { ! if (strValue == null) ! strValue = ""; ! parts.put(strName, strValue); ! } ! ! /** ! * Get all the parts for this event. ! * @return Hashtable containing all the parts, indexed by part name ! */ ! public Hashtable getParts() { ! return this.parts; ! } ! ! /** ! * Get all part names for this event. ! * @return the part names present in this event ! */ ! public Enumeration getPartNames() { ! return parts.keys(); ! } ! ! ! /** Return an XML DOM representation of this event ! * @return Document XML DOM representation of this event ! * @throws ParserConfigurationException if there is a ! * problem with the XML Parser ! */ ! public Document toXMLDoc() throws ParserConfigurationException { ! logger.entering("org.fanfoot.scoring.Event", "toXMLDoc()"); ! ! Document doc = XMLUtils.createXMLDoc(); ! appendXMLTo(doc); ! ! logger.finest("Root element of document is named " ! + doc.getDocumentElement().getNodeName()); ! logger.exiting("org.fanfoot.scoring.Event", "toXMLDoc()"); ! return doc; ! } ! ! /** Append this event as a DOM node to the supplied XMl Docmuent. ! * @param doc the document to append to ! */ ! public void appendXMLTo(Document doc) { ! Element root = doc.createElement("event"); ! if (doc.getDocumentElement() == null) { ! doc.appendChild(root); ! } else { ! doc.getDocumentElement().appendChild(root); ! } ! ! root.appendChild(getUIDElement(doc)); ! root.appendChild(getTypeElement(doc)); ! root.appendChild(getSourceElement(doc)); - Enumeration enuPartNames = this.getPartNames(); - Element elem; - Text text; - String strPartName; - String strPartValue; - while (enuPartNames.hasMoreElements()) { - strPartName = (String)enuPartNames.nextElement(); - strPartValue = this.getPart(strPartName); - elem = doc.createElement(strPartName); - if (strPartValue != "") { - text = doc.createTextNode(strPartValue); - elem.appendChild(text); - } - root.appendChild(elem); - } - } ! /** Get the UID XML ELement ! * @param doc the document this element will be a part of ! * @return Element representing the UID of this event ! */ ! protected Element getUIDElement(Document doc) { ! Element elem = doc.createElement("uid"); ! Text text = doc.createTextNode(this.getUID()); ! elem.appendChild(text); ! return elem; } ! /** Get the type XML ELement ! * @param doc the document this element will be a part of ! * @return Element representing the type of this event ! */ ! protected Element getTypeElement(Document doc) { ! Element elem = doc.createElement("type"); ! Text text = doc.createTextNode(this.getType()); ! elem.appendChild(text); ! return elem; } ! /** Get the source XML ELement ! * @param doc the document this element will be a part of ! * @return Element representing the source of this event ! */ ! protected Element getSourceElement(Document doc) { ! Element elem = doc.createElement("src"); ! Text text = doc.createTextNode(this.getSrc()); elem.appendChild(text); ! return elem; ! } ! ! ! /** Getter for property UID. ! * @return Value of property UID. ! * ! */ ! public String getUID() { ! return this.uid; ! } ! ! /** Setter for property UID. ! * @param uid New value of property UID. ! * ! */ ! public void setUID(String uid) { ! this.uid = uid; } ! } --- 46,290 ---- /** ! * An event in a live game that may have an impact on the fantasy ! * game ! * ! *@author rgardler ! *@created 21 October 2002 */ public class Event { ! /** ! * Holds value of property src which indicates where this event ! * record came from. ! */ ! private String src = ""; ! /** Holds value of property type. */ ! private String type = ""; ! /** The parts describing this event */ ! Hashtable parts = new Hashtable(); ! /** Holds value of property uid. */ ! private String uid = ""; ! /** Where to write log entries to */ ! final Logger logger = Logger.getLogger("org.fanfoot.scoring"); ! /** ! * Creates a new instance of Event of the type indicated ! * ! *@param strType the type of this event this event belongs to. ! * From this a unique event identifier will be created. ! */ ! public Event(String strType) { ! this.setType(strType); ! } ! /** ! * Getter for property src. ! * ! *@return Value of property src. ! */ ! public String getSrc() { ! return this.src; ! } ! /** ! * Setter for property src. ! * ! *@param src New value of property src. ! */ ! public void setSrc(String src) { ! this.src = src; ! } ! ! ! /** ! * Getter for property type. ! * ! *@return Value of property type. ! */ ! public String getType() { ! return this.type; ! } ! ! ! /** ! * Setter for property type. ! * ! *@param type New value of property type. ! */ ! public void setType(String type) { ! this.type = type; ! } ! ! ! /** ! * Get the part of the event named. ! * ! *@param strPart name of the part required ! *@return value of the part requested ! */ ! public String getPart(String strPart) { ! return (String) parts.get(strPart); ! } ! ! ! /** ! * Add the named part and value to the collection of parts. ! * ! *@param strName name of the part, nulls are converted to an ! * empty string ! *@param strValue value of the part ! */ ! public void putPart(String strName, String strValue) { ! if (strValue == null) { ! strValue = ""; } + parts.put(strName, strValue); + } ! ! /** ! * Get all the parts for this event. ! * ! *@return Hashtable containing all the parts, indexed by part ! * name ! */ ! public Hashtable getParts() { ! return this.parts; ! } ! ! ! /** ! * Get all part names for this event. ! * ! *@return the part names present in this event ! */ ! public Enumeration getPartNames() { ! return parts.keys(); ! } ! ! ! /** ! * Return an XML DOM representation of this event ! * ! *@return Document XML DOM ! * representation of this event ! *@throws ParserConfigurationException if there is a problem with ! * the XML Parser ! */ ! public Document toXMLDoc() throws ParserConfigurationException { ! logger.entering("org.fanfoot.scoring.Event", "toXMLDoc()"); ! ! Document doc = XMLUtils.createXMLDoc(); ! appendXMLTo(doc); ! ! logger.finest("Root element of document is named " ! + doc.getDocumentElement().getNodeName()); ! logger.exiting("org.fanfoot.scoring.Event", "toXMLDoc()"); ! return doc; ! } ! ! ! /** ! * Append this event as a DOM node to the supplied XMl Docmuent. ! * ! *@param doc the document to append to ! */ ! public void appendXMLTo(Document doc) { ! Element root = doc.createElement("event"); ! if (doc.getDocumentElement() == null) { ! doc.appendChild(root); ! } else { ! doc.getDocumentElement().appendChild(root); } ! root.appendChild(getUIDElement(doc)); ! root.appendChild(getTypeElement(doc)); ! root.appendChild(getSourceElement(doc)); ! ! Enumeration enuPartNames = this.getPartNames(); ! Element elem; ! Text text; ! String strPartName; ! String strPartValue; ! while (enuPartNames.hasMoreElements()) { ! strPartName = (String) enuPartNames.nextElement(); ! strPartValue = this.getPart(strPartName); ! elem = doc.createElement(strPartName); ! if (strPartValue != "") { ! text = doc.createTextNode(strPartValue); elem.appendChild(text); ! } ! root.appendChild(elem); } ! } ! ! ! /** ! * Get the UID XML ELement ! * ! *@param doc the document this element will be a part of ! *@return Element representing the UID of this event ! */ ! protected Element getUIDElement(Document doc) { ! Element elem = doc.createElement("uid"); ! Text text = doc.createTextNode(this.getUID()); ! elem.appendChild(text); ! return elem; ! } ! ! ! /** ! * Get the type XML ELement ! * ! *@param doc the document this element will be a part of ! *@return Element representing the type of this event ! */ ! protected Element getTypeElement(Document doc) { ! Element elem = doc.createElement("type"); ! Text text = doc.createTextNode(this.getType()); ! elem.appendChild(text); ! return elem; ! } ! ! ! /** ! * Get the source XML ELement ! * ! *@param doc the document this element will be a part of ! *@return Element representing the source of this event ! */ ! protected Element getSourceElement(Document doc) { ! Element elem = doc.createElement("src"); ! Text text = doc.createTextNode(this.getSrc()); ! elem.appendChild(text); ! return elem; ! } ! ! ! /** ! * Getter for property UID. ! * ! *@return Value of property UID. ! */ ! public String getUID() { ! return this.uid; ! } ! ! ! /** ! * Setter for property UID. ! * ! *@param uid New value of property UID. ! */ ! public void setUID(String uid) { ! this.uid = uid; ! } ! } + Index: EventParser.java =================================================================== RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring/EventParser.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EventParser.java 18 Oct 2002 14:56:45 -0000 1.1 --- EventParser.java 21 Oct 2002 12:01:14 -0000 1.2 *************** *** 1,35 **** ! /* ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** */ ! /* ! * EventParser.java * ! * Created on 21 September 2002, 11:51 */ package org.fanfoot.scoring; --- 1,36 ---- ! /* ! * ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** ! */ /* ! * EventParser.java * ! * Created on 21 September 2002, 11:51 */ package org.fanfoot.scoring; *************** *** 52,309 **** import org.w3c.dom.Document; - /** ! * Parsers a file looking for events that may be important in a fantasy game. ! * Creates a set of Event objects from a given commentary/statistics file. ! * @author rgardler */ public class EventParser { ! /** Holds value of property conf. */ ! private EventParserConfiguration conf; ! final Logger logger = Logger.getLogger("org.fanfoot.scoring"); ! private Vector listeners = new Vector(); // list of Listeners ! private Document docCommentary = null; // the original commentary document ! ! /** Creates a new instance of EventParser ! */ ! public EventParser() { ! super(); ! } - /** Creates a new instance of EventParser - * @param strURL the url of the configuration file for this parser - * @throws EventParserConfigurationException - */ - public EventParser(String strURL) throws EventParserConfigurationException { - super(); - conf = new EventParserConfiguration(strURL); - } ! /** ! * Parse the supplied resource ! * @param strURL the URL of the resource to parse ! * @param strType the type of resource this is (this corresponds ! * to the sourceType element of the matcher element in the config file ! * @return Events found in the resource ! */ ! public Events parse(String strURL, String strType) ! throws MalformedURLException, IOException, ! EventParserConfigurationException { ! URL url = new URL(strURL); ! return parse(url, strType); ! } - /** - * Parse the supplied file - * @param file the file to parse - * @param strType the type of resource this is (this corresponds - * to the sourceType element of the matcher element in the config file - * @return Events found in the resource - */ - public Events parse(File file, String strType) throws IOException, - EventParserConfigurationException { - return parse(file.toURL(), strType); - } ! /** ! * Parse the supplied resource ! * @param url the URL of the resource to parse ! * @param strType the type of resource this is (this corresponds ! * to the sourceType element of the matcher element in the config file ! * @return Events found in the resource ! */ ! public Events parse(URL url, String strType) throws MalformedURLException, ! IOException, ! EventParserConfigurationException { ! docCommentary = XMLUtils.loadTidiedHTML(url); ! this.notifyRetrievedCommentary(); ! ! StringBuffer sbData = new StringBuffer(); ! XMLUtils.appendAllText(docCommentary.getDocumentElement(), sbData); - String strData = sbData.toString(); - logger.finest("Live Data: " + strData); ! ArrayList patterns = conf.getPatternsForType(strType); ! Events evtsResult = new Events(); ! String strEventsUID = parseEventsUID(strData, strType); ! evtsResult.setUID(strEventsUID); ! logger.info("UID for these events is: " + strEventsUID); - Events evtsCurrent; - EventPattern p; ! logger.info("Start processing " + patterns.size() + ! " event patterns."); - for (int i = 0; i < patterns.size(); i++) { - p = (EventPattern) patterns.get(i); - evtsCurrent = processEvents(p, strData); ! if (evtsCurrent != null) { ! evtsResult.addAll(evtsCurrent, this.conf); ! } ! } ! return evtsResult; ! } ! /** ! * Extract all events matched by the supplied pattern in ! * the supplied textual data. ! * @param p Pattern matching the event ! * @param strData the data to look for events in ! * @return Events matched by the pattern ! */ ! private Events processEvents(EventPattern p, String strData) { ! logger.entering("org.fanfoot.scoring.EventParser", ! "processEvents(eventPattern, strData)"); ! Events evts = new Events(); ! Matcher m = p.getRegexPattern().matcher(strData); ! String strPartValue; ! String strPartName; ! logger.finest("Looking for matches of type " + p.getType() + " (RE=" + ! p.getRegexPattern().pattern() + ")"); ! while (m.find()) { ! logger.fine("Matched event in: " + m.group()); ! Event evt = new Event(p.getType()); ! // Extract the event parts and store them in the event object ! logger.finest("There are " + m.groupCount() + ! " groups in the match"); ! for (int i = 1; i <= m.groupCount(); i++) { ! strPartValue = m.group(i).trim(); ! strPartName = p.getPartName(i); ! evt.putPart(strPartName, strPartValue); ! logger.finest("Set " + strPartName + " to " + strPartValue + ! " (part #" + i + ")"); ! } - logger.fine("Added event of type " + p.getType()); - evts.add(evt); - } ! logger.exiting("org.fanfoot.scoring.EventParser", ! "processEvents(eventPattern, strData)"); ! return evts; ! } ! /** Create a Unique Identifier for a set of Events held in the ! * supplied game data string. This is done by matching the ! * Regular Expression ! * in the UID child element of the events root element in the parser ! * configuration file. ! * @param strData the game data ! * @para, strType the type of data supplied ! * @returns String UID for this set of events ! * @throws EventParserConfigurationException ! */ ! public String parseEventsUID(String strData, String strType) ! throws EventParserConfigurationException { ! StringBuffer sb = new StringBuffer(); ! Matcher m; ! logger.entering("org.fanfoot.scoring.EventParser", ! "parseEventUID(strData, strType"); ! // get the UID element ! EventPattern uidPattern = this.conf.getEventsUIDPattern(strType); ! m = uidPattern.getRegexPattern().matcher(strData); ! logger.finest("UID pattern is " + ! uidPattern.getRegexPattern().pattern()); ! // get the UID parts ! while (m.find()) { ! // Extract the UID parts and build the UID ! for (int i = 1; i <= m.groupCount(); i++) { ! sb.append('_'); ! sb.append(m.group(i).trim()); ! } ! } ! logger.exiting("org.fanfoot.scoring.EventParser", ! "parseEventUID(strData, strType"); ! // concatenate the parts ! return sb.toString(); } ! /** Getter for property conf. ! * @return Value of property conf. ! * ! */ ! public EventParserConfiguration getConfiguration() { ! return this.conf; ! } ! /** Setter for property conf. ! * @param conf New value of property conf. ! * ! */ ! public void setConfiguration(EventParserConfiguration conf) { ! this.conf = conf; ! } - /** Load the configuration file indicated. - * @param strConf URL from which to load configuration file - * - */ - public void loadConfiguration(String strConf) - throws EventParserConfigurationException { - EventParserConfiguration conf = new EventParserConfiguration(strConf); - setConfiguration(conf); - } ! public synchronized void addListener(EventParserListener epl) { ! Vector v = (Vector) listeners.clone(); ! v.addElement(epl); ! listeners = v; ! } ! public synchronized void removeListener(EventParserListener epl) { ! Vector v = (Vector) listeners.clone(); ! v.removeElement(epl); ! listeners = v; } ! protected void notifyRetrievedCommentary() { ! logger.entering("org.fanfoot.scoring.EventParser", "notifyRetrievedCommentary()"); ! Vector l; ! EventObject e = new EventObject(this); ! l = listeners; // Atomic assignment ! EventParserListener epl = null; ! for (int i = 0; i < l.size(); i++) { ! epl = (EventParserListener) l.elementAt(i); ! epl.retrievedCommentary(e); ! } ! logger.entering("org.fanfoot.scoring.EventParser", "notifyRetrievedCommentary()"); } ! ! /** ! * Return the source code of the currently loaded commentary. ! * @return string containing the source code for the current commentary ! */ ! public String getCommentarySource() { ! String strCommentary; ! try { ! strCommentary = XMLUtils.xmlToString(docCommentary); ! } catch (javax.xml.transform.TransformerConfigurationException tce) { ! logger.log(Level.WARNING, "Unable to convert commentary document to string", tce); ! strCommentary = "ERROR: Unable to convert commentary document to a string du to a Transformer Configuration problem"; ! } catch (javax.xml.transform.TransformerException te) { ! logger.log(Level.WARNING, "Unable to convert commentary document to string", te); ! strCommentary = "ERROR: Unable to convert commentary document to a string du to a Transformer problem"; ! } ! return strCommentary; } } --- 53,379 ---- import org.w3c.dom.Document; /** ! * Parsers a file looking for events that may be important in a ! * fantasy game. Creates a set of Event objects from a given ! * commentary/statistics file. ! * ! *@author rgardler ! *@created 21 October 2002 */ public class EventParser { ! /** Holds value of property conf. */ ! private EventParserConfiguration conf; ! /** WHere to write log info */ ! final Logger logger = Logger.getLogger("org.fanfoot.scoring"); ! /** The listeners to this parser */ ! private Vector listeners = new Vector(); ! /** The commentary document to parse */ ! private Document docCommentary = null; ! // the original commentary document ! /** Creates a new instance of EventParser */ ! public EventParser() { ! super(); ! } ! /** ! * Creates a new instance of EventParser ! * ! *@param strURL the url of the configuration file for this parser ! *@exception EventParserConfigurationException Description of the ! * Exception ! *@throws EventParserConfigurationException ! */ ! public EventParser(String strURL) throws EventParserConfigurationException { ! super(); ! conf = new EventParserConfiguration(strURL); ! } ! /** ! * Parse the supplied resource ! * ! *@param strURL the URL of the resource to parse ! *@param strType the type of resource this is (this corresponds to ! * the sourceType element of the matcher element in the config ! * file ! *@return Events found in the resource ! *@exception MalformedURLException Description of the Exception ! *@exception IOException Description of the Exception ! *@exception EventParserConfigurationException Description of the ! * Exception ! */ ! public Events parse(String strURL, String strType) ! throws MalformedURLException, IOException, ! EventParserConfigurationException { ! URL url = new URL(strURL); ! return parse(url, strType); ! } ! /** ! * Parse the supplied file ! * ! *@param file the file to parse ! *@param strType the type of resource this is (this corresponds to ! * the sourceType element of the matcher element in the config ! * file ! *@return Events found in the resource ! *@exception IOException Description of the Exception ! *@exception EventParserConfigurationException Description of the ! * Exception ! */ ! public Events parse(File file, String strType) throws IOException, ! EventParserConfigurationException { ! return parse(file.toURL(), strType); ! } ! /** ! * Parse the supplied resource ! * ! *@param url the URL of the resource to parse ! *@param strType the type of resource this is (this corresponds to ! * the sourceType element of the matcher element in the config ! * file ! *@return Events found in the resource ! *@exception MalformedURLException Description of the Exception ! *@exception IOException Description of the Exception ! *@exception EventParserConfigurationException Description of the ! * Exception ! */ ! public Events parse(URL url, String strType) throws MalformedURLException, ! IOException, ! EventParserConfigurationException { ! docCommentary = XMLUtils.loadTidiedHTML(url); ! this.notifyRetrievedCommentary(); ! StringBuffer sbData = new StringBuffer(); ! XMLUtils.appendAllText(docCommentary.getDocumentElement(), sbData); ! String strData = sbData.toString(); ! logger.finest("Live Data: " + strData); ! ArrayList patterns = conf.getPatternsForType(strType); ! Events evtsResult = new Events(); ! String strEventsUID = parseEventsUID(strData, strType); ! evtsResult.setUID(strEventsUID); ! logger.info("UID for these events is: " + strEventsUID); ! Events evtsCurrent; ! EventPattern p; ! logger.info("Start processing " + patterns.size() ! + " event patterns."); + for(int i = 0; i < patterns.size(); i++) { + p = (EventPattern) patterns.get(i); + evtsCurrent = processEvents(p, strData); ! if(evtsCurrent != null) { ! evtsResult.addAll(evtsCurrent, this.conf); ! } ! } ! return evtsResult; ! } ! /** ! * Extract all events matched by the supplied pattern in the ! * supplied textual data. ! * ! *@param p Pattern matching the event ! *@param strData the data to look for events in ! *@return Events matched by the pattern ! */ ! private Events processEvents(EventPattern p, String strData) { ! logger.entering("org.fanfoot.scoring.EventParser", ! "processEvents(eventPattern, strData)"); ! Events evts = new Events(); ! Matcher m = p.getRegexPattern().matcher(strData); ! String strPartValue; ! String strPartName; ! logger.finest("Looking for matches of type " + p.getType() + " (RE=" ! + p.getRegexPattern().pattern() + ")"); ! while(m.find()) { ! logger.fine("Matched event in: " + m.group()); ! Event evt = new Event(p.getType()); ! // Extract the event parts and store them in the event object ! logger.finest("There are " + m.groupCount() ! + " groups in the match"); ! for(int i = 1; i <= m.groupCount(); i++) { ! strPartValue = m.group(i).trim(); ! strPartName = p.getPartName(i); ! evt.putPart(strPartName, strPartValue); ! logger.finest("Set " + strPartName + " to " + strPartValue ! + " (part #" + i + ")"); ! } ! logger.fine("Added event of type " + p.getType()); ! evts.add(evt); } ! logger.exiting("org.fanfoot.scoring.EventParser", ! "processEvents(eventPattern, strData)"); ! return evts; ! } ! /** ! * Create a Unique Identifier for a set of Events held in the ! * supplied game data string. This is done by matching the Regular ! * Expression in the UID child element of the events root element ! * in the parser configuration file. ! * ! *@param strData the game data ! *@param strType the type of data supplied ! *@return String UID for this set of events ! *@throws EventParserConfigurationException when the event UDI ! * cannot be generated ! */ ! public String parseEventsUID(String strData, String strType) ! throws EventParserConfigurationException { ! StringBuffer sb = new StringBuffer(); ! Matcher m; ! logger.entering("org.fanfoot.scoring.EventParser", ! "parseEventUID(strData, strType"); ! ! // get the UID element ! EventPattern uidPattern = this.conf.getEventsUIDPattern(strType); ! m = uidPattern.getRegexPattern().matcher(strData); ! logger.finest("UID pattern is " ! + uidPattern.getRegexPattern().pattern()); ! ! // get the UID parts ! while(m.find()) { ! // Extract the UID parts and build the UID ! for(int i = 1; i <= m.groupCount(); i++) { ! sb.append('_'); ! sb.append(m.group(i).trim()); ! } } ! logger.exiting("org.fanfoot.scoring.EventParser", ! "parseEventUID(strData, strType"); ! // concatenate the parts ! return sb.toString(); ! } ! ! ! /** ! * Getter for property conf. ! * ! *@return Value of property conf. ! */ ! public EventParserConfiguration getConfiguration() { ! return this.conf; ! } ! ! ! /** ! * Setter for property conf. ! * ! *@param conf New value of property conf. ! */ ! public void setConfiguration(EventParserConfiguration conf) { ! this.conf = conf; ! } ! ! ! /** ! * Load the configuration file indicated. ! * ! *@param strConf URL from which to load configuration file ! *@exception EventParserConfigurationException Description of the ! * Exception ! */ ! public void loadConfiguration(String strConf) ! throws EventParserConfigurationException { ! EventParserConfiguration conf = new EventParserConfiguration(strConf); ! setConfiguration(conf); ! } ! ! ! /** ! * Add a listener to this parser ! * ! *@param epl the listener to add ! */ ! public synchronized void addListener(EventParserListener epl) { ! Vector v = (Vector) listeners.clone(); ! v.addElement(epl); ! listeners = v; ! } ! ! ! /** ! * Remove a listener to this parser ! * ! *@param epl the listener to remove ! */ ! public synchronized void removeListener(EventParserListener epl) { ! Vector v = (Vector) listeners.clone(); ! v.removeElement(epl); ! listeners = v; ! } ! ! ! /** Notify all listeners when the commentary has been retrieved */ ! protected void notifyRetrievedCommentary() { ! logger.entering("org.fanfoot.scoring.EventParser", ! "notifyRetrievedCommentary()"); ! Vector l; ! EventObject e = new EventObject(this); ! l = listeners; ! // Atomic assignment ! ! EventParserListener epl = null; ! for(int i = 0; i < l.size(); i++) { ! epl = (EventParserListener) l.elementAt(i); ! epl.retrievedCommentary(e); } ! logger.entering("org.fanfoot.scoring.EventParser", ! "notifyRetrievedCommentary()"); ! } ! ! ! /** ! * Return the source code of the currently loaded commentary. ! * ! *@return string containing the source code for the current ! * commentary ! */ ! public String getCommentarySource() { ! String strCommentary; ! try { ! strCommentary = XMLUtils.xmlToString(docCommentary); ! } catch(javax.xml.transform.TransformerConfigurationException tce) { ! logger.log(Level.WARNING, ! "Unable to convert commentary document to string", tce); ! strCommentary = "ERROR: Unable to convert commentary document to " ! + "a string due to a Transformer Configuration problem"; ! } catch(javax.xml.transform.TransformerException te) { ! logger.log(Level.WARNING, ! "Unable to convert commentary document to string", te); ! strCommentary = "ERROR: Unable to convert commentary document to " ! + "a string du to a Transformer problem"; } + return strCommentary; + } } + Index: EventParserConfiguration.java =================================================================== RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring/EventParserConfiguration.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EventParserConfiguration.java 18 Oct 2002 14:56:45 -0000 1.1 --- EventParserConfiguration.java 21 Oct 2002 12:01:14 -0000 1.2 *************** *** 1,35 **** ! /* ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** */ ! /* ! * EventParserConfiguration.java * ! * Created on 21 September 2002, 11:27 */ package org.fanfoot.scoring; --- 1,36 ---- ! /* ! * ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** ! */ /* ! * EventParserConfiguration.java * ! * Created on 21 September 2002, 11:27 */ package org.fanfoot.scoring; *************** *** 56,177 **** import org.xml.sax.SAXException; - /** ! * Reads an XML configuration file and builds a set of ! * Regular Expressions that are used to extract information from ! * a commentary/statistics resource. * ! * @author rgardler */ public class EventParserConfiguration { - Document confDocument; - final Logger logger = Logger.getLogger("org.fanfoot.scoring"); ! /** ! * Creates a new instance of EventParserConfiguration ! * using the indicated configuration file ! * @param strURL the URL of the configuration file to use ! */ ! public EventParserConfiguration(String strURL) ! throws EventParserConfigurationException { ! super(); - try { - loadConfigFile(strURL); - } catch (Exception e) { - logger.log(Level.WARNING, - "Problem loading parser config file " + strURL, e); - throw new EventParserConfigurationException( - "Problem loading parser config file " + strURL + " " + e); - } - } ! /** ! * Read the comfiguration file indicated. ! * @param strURL the URL of the cofiguration file ! */ ! private void loadConfigFile(String strURL) ! throws ParserConfigurationException, DOMException, ! SAXException, IOException { ! confDocument = XMLUtils.parseXML(strURL); } - /** - * Get all patterns in the config file for a source of the indicated type. - * @param String strSourceType Name indicating the value of the - * sourceType element of the requiered Patterns - * @returns an arraylist of the patterns. Patterns are represented as - * java.util.regex.Patterns - */ - public ArrayList getPatternsForType(String strSourceType) { - NodeList ndl = confDocument.getElementsByTagName("pattern"); ! // iterate over all the tags keeping only those that have a child ! // sourceType element with the value strSourceType ! ArrayList patterns = new ArrayList(); ! Node node; - for (int i = 0; i < ndl.getLength(); i++) { - node = ndl.item(i); ! JXPathContext context = JXPathContext.newContext(node); ! if (context.getValue("/sourceType").equals(strSourceType)) { ! if (node.getParentNode().getNodeName().equals("event")) { ! patterns.add(new EventPattern(node)); ! } ! } ! } ! return patterns; ! } ! ! /** Get an Iterator of part names that are used to identify duplicate ! * events of the given type. If no duplicateDetection element exists then ! * an empty iterator will be returned. ! * @param strType the type we are considering ! */ ! public java.util.Iterator getDuplicateDetectionParts(String strType) { ! JXPathContext context = JXPathContext.newContext(confDocument); ! java.util.Iterator it = context.iterate("/events/event[@type='" + strType + "']/duplicateDetection/part/@name"); ! return it; ! } ! /** ! * Get the pattern for extracting the UID of the Events group ! * this configuration file is for. ! * @param strSourceType the source type we want to use ! * @return the event pattern for the UID ! * @throws EventParserConfigurationException ! * @refactor Precompile the XPath statements to improve speed ! */ ! public EventPattern getEventsUIDPattern(String strSourceType) ! throws EventParserConfigurationException { ! String strXPathStatement = "/events/UID/pattern"; ! EventPattern pattern = null; ! Node node = null; ! logger.finest("Node name of conf document element " + ! confDocument.getDocumentElement().getNodeName()); ! try { ! node = XPathAPI.selectSingleNode(confDocument.getDocumentElement(), ! strXPathStatement); ! } catch (Exception e) { ! throw new EventParserConfigurationException( ! "Problem finding events UID pattern", e); } ! if (node != null) { ! pattern = new EventPattern(node); ! logger.finest("Node name returned by XPath statement (" + ! strXPathStatement + ") is " + node.getNodeName()); ! } else { ! logger.finest("No node returned by XPath statement (" + ! strXPathStatement + ")"); ! } ! return pattern; } } --- 57,211 ---- import org.xml.sax.SAXException; /** ! * Reads an XML configuration file and builds a set of Regular ! * Expressions that are used to extract information from a ! * commentary/statistics resource. * ! *@author rgardler ! *@created 21 October 2002 */ public class EventParserConfiguration { ! /** The configuartion document */ ! Document confDocument; ! /** WHere to write log information */ ! final Logger logger = Logger.getLogger("org.fanfoot.scoring"); ! /** ! * Creates a new instance of EventParserConfiguration using the ! * indicated configuration file ! * ! *@param strURL the URL of the configuration file to use ! *@exception EventParserConfigurationException Description of the ! * Exception ! */ ! public EventParserConfiguration(String strURL) ! throws EventParserConfigurationException { ! super(); ! ! try { ! loadConfigFile(strURL); ! } catch(Exception e) { ! logger.log(Level.WARNING, ! "Problem loading parser config file " + strURL, e); ! throw new EventParserConfigurationException( ! "Problem loading parser config file " + strURL + " " + e); } + } ! /** ! * Read the comfiguration file indicated. ! * ! *@param strURL the URL of the cofiguration file ! *@exception ParserConfigurationException Description of the ! * Exception ! *@exception DOMException Description of the Exception ! *@exception SAXException Description of the Exception ! *@exception IOException Description of the Exception ! */ ! private void loadConfigFile(String strURL) ! throws ParserConfigurationException, DOMException, ! SAXException, IOException { ! confDocument = XMLUtils.parseXML(strURL); ! } ! /** ! * Get all patterns in the config file for a source of the ! * indicated type. ! * ! *@param strSourceType Description of the Parameter ! *@return an arraylist of the patterns. Patterns are represented as ! * java.util.regex.Patterns ! */ ! public ArrayList getPatternsForType(String strSourceType) { ! NodeList ndl = confDocument.getElementsByTagName("pattern"); ! // iterate over all the tags keeping only those that have a child ! // sourceType element with the value strSourceType ! ArrayList patterns = new ArrayList(); ! Node node; ! for(int i = 0; i < ndl.getLength(); i++) { ! node = ndl.item(i); ! JXPathContext context = JXPathContext.newContext(node); ! if(context.getValue("/sourceType").equals(strSourceType)) { ! if(node.getParentNode().getNodeName().equals("event")) { ! patterns.add(new EventPattern(node)); } + } + } ! return patterns; ! } ! ! /** ! * Get an Iterator of part names that are used to identify ! * duplicate events of the given type. If no duplicateDetection ! * element exists then an empty iterator will be returned. ! * ! *@param strType the type we are considering ! *@return The duplicateDetectionParts value ! */ ! public java.util.Iterator getDuplicateDetectionParts(String strType) { ! ! JXPathContext context = JXPathContext.newContext(confDocument); ! java.util.Iterator it = context.iterate( ! "/events/event[@type='" + strType ! + "']/duplicateDetection/part/@name"); ! ! return it; ! } ! ! ! /** ! * Get the pattern for extracting the UID of the Events group this ! * configuration file is for. ! * ! *@param strSourceType the source type we want to use ! *@return the event pattern for the UID ! *@throws EventParserConfigurationException if unable to build the ! * UID pattern ! *@refactor Precompile the XPath statements to improve speed ! */ ! public EventPattern getEventsUIDPattern(String strSourceType) ! throws EventParserConfigurationException { ! ! String strXPathStatement = "/events/UID/pattern"; ! EventPattern pattern = null; ! Node node = null; ! logger.finest( ! "Node name of conf document element " ! + confDocument.getDocumentElement().getNodeName()); ! ! try { ! node = XPathAPI.selectSingleNode(confDocument.getDocumentElement(), ! strXPathStatement); ! } catch(Exception e) { ! throw new EventParserConfigurationException( ! "Problem finding events UID pattern", ! e); } + + if(node != null) { + pattern = new EventPattern(node); + logger.finest( + "Node name returned by XPath statement (" + + strXPathStatement + ") is " + node.getNodeName()); + } else { + logger.finest( + "No node returned by XPath statement (" + + strXPathStatement + ")"); + } + + return pattern; + } } + Index: EventParserConfigurationException.java =================================================================== RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring/EventParserConfigurationException.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EventParserConfigurationException.java 18 Oct 2002 14:56:45 -0000 1.1 --- EventParserConfigurationException.java 21 Oct 2002 12:01:14 -0000 1.2 *************** *** 1,69 **** ! /* ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** */ ! /* ! * EventParserConfigurationError.java * ! * Created on 21 September 2002, 11:41 */ package org.fanfoot.scoring; /** ! * ! * @author rgardler */ public class EventParserConfigurationException extends java.lang.Exception { - - Exception root = null; - - /** - * Creates a new instance of <code>EventParserConfigurationError</code> without detail message. - */ - public EventParserConfigurationException() { - } ! /** ! * Constructs an instance of <code>EventParserConfigurationError</code> with the specified detail message. ! * @param msg the detail message. ! */ ! public EventParserConfigurationException(String msg) { ! super(msg); ! } ! ! /** ! * Constructs an instance of <code>EventParserConfigurationError</code> ! * with the specified detail message ! * and the root exception supplied ! * @param msg the detail message. ! */ ! public EventParserConfigurationException(String msg, Exception e) { ! super(msg); ! root = e; ! } } --- 1,79 ---- ! /* ! * ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** ! */ /* ! * EventParserConfigurationError.java * ! * Created on 21 September 2002, 11:41 */ package org.fanfoot.scoring; /** ! *@author rgardler ! *@created 21 October 2002 */ public class EventParserConfigurationException extends java.lang.Exception { ! /** Root exception to this one */ ! Exception root = null; ! ! ! /** ! * Creates a new instance of <code>EventParserConfigurationError</code> ! * without detail message. ! */ ! public EventParserConfigurationException() { } ! ! ! /** ! * Constructs an instance of <code>EventParserConfigurationError</code> ! * with the specified detail message. ! * ! *@param msg the detail message. ! */ ! public EventParserConfigurationException(String msg) { ! super(msg); ! } ! ! ! /** ! * Constructs an instance of <code>EventParserConfigurationError</code> ! * with the specified detail message and the root exception ! * supplied ! * ! *@param msg the detail message. ! *@param e Description of the Parameter ! */ ! public EventParserConfigurationException(String msg, Exception e) { ! super(msg); ! root = e; ! } } + Index: EventParserListener.java =================================================================== RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring/EventParserListener.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EventParserListener.java 18 Oct 2002 14:56:45 -0000 1.1 --- EventParserListener.java 21 Oct 2002 12:01:14 -0000 1.2 *************** *** 1,37 **** ! /* ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** */ ! /* ! * EventParserListener.java * ! * Created on 06 October 2002, 10:00 */ - package org.fanfoot.scoring; --- 1,37 ---- ! /* ! * ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** ! */ /* ! * EventParserListener.java * ! * Created on 06 October 2002, 10:00 */ package org.fanfoot.scoring; *************** *** 40,54 **** /** ! * A listener to events generated by EventParser. ! * @see org.fanfoot.scoring.EventParser ! * @author rgardler */ ! public abstract interface EventParserListener extends EventListener { ! ! /** ! * Loaded Commentay file. ! */ ! public abstract void retrievedCommentary(EventObject e); ! } --- 40,58 ---- /** ! * A listener to events generated by EventParser. ! * ! *@author rgardler ! *@created 21 October 2002 ! *@see org.fanfoot.scoring.EventParser */ ! public abstract interface EventParserListener ! extends EventListener { ! /** ! * Loaded Commentay file. ! * ! *@param e Description of the Parameter ! */ ! void retrievedCommentary(EventObject e); } + Index: EventPattern.java =================================================================== RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring/EventPattern.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EventPattern.java 18 Oct 2002 14:56:45 -0000 1.1 --- EventPattern.java 21 Oct 2002 12:01:14 -0000 1.2 *************** *** 1,181 **** ! /* ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** */ ! /* ! * Pattern.java * ! * Created on 21 September 2002, 16:57 */ package... [truncated message content] |
|
From: <rga...@us...> - 2002-10-21 12:01:18
|
Update of /cvsroot/csms/csms-core/legal In directory usw-pr-cvs1:/tmp/cvs-serv22682/legal Modified Files: source.header.notice Log Message: Various code stule fixes Index: source.header.notice =================================================================== RCS file: /cvsroot/csms/csms-core/legal/source.header.notice,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** source.header.notice 17 Oct 2002 16:53:48 -0000 1.1.1.1 --- source.header.notice 21 Oct 2002 12:01:13 -0000 1.2 *************** *** 1,28 **** ! /* ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** */ --- 1,30 ---- ! /* ! * ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ! * for the specific language governing rights and limitations under the ! * License. * ! * The Original Code is Community Sports Management System. * ! * The Initial Developer of the Original Code is ! * We know What you Want.net * ! * Portions created by the Initial Developer are Copyright (C) 2002 ! * the Initial Developer. All Rights Reserved. * ! * Contributor(s): * ! * Ross Gardler <ross [at] saafe.org> ! * Mike Lever <mikel [at] fanfoot.com> ! * Stuart Gardler <stuart [at] wkwyw.net> * ! * ***** END LICENSE BLOCK ***** ! */ |
|
From: <rga...@us...> - 2002-10-21 12:01:17
|
Update of /cvsroot/csms/csms-core/src/java/org/fanfoot/gui In directory usw-pr-cvs1:/tmp/cvs-serv22682/src/java/org/fanfoot/gui Modified Files: ControlCentre.java Log Message: Various code stule fixes Index: ControlCentre.java =================================================================== RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/gui/ControlCentre.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ControlCentre.java 18 Oct 2002 14:56:45 -0000 1.1 --- ControlCentre.java 21 Oct 2002 12:01:14 -0000 1.2 *************** *** 1,37 **** ! /* ***** BEGIN LICENSE BLOCK ***** ! * Version: MPL 1.1 * ! * The contents of this file are subject to the Mozilla Public License Version ! * 1.1 (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.mozilla.org/MPL/ * ! * Software distributed under the License is distributed on an "AS IS" basis, ! * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License [...970 lines suppressed...] ! * configuration files ! */ ! private javax.swing.JMenuItem setPaths; ! /** ! * The tabbed pane for displaying the events once extracted from a ! * commentary ! */ ! private javax.swing.JTabbedPane tabpneEvents; ! /** The menu item to parse a local commentary file */ ! private javax.swing.JMenuItem mnuItemParseFile; ! /** the menu item to parse a remote commentary file */ ! private javax.swing.JMenuItem mnuitemParseURL; ! /** the configuration menu */ ! private javax.swing.JMenu mnuConfig; ! /** the file menu */ ! private javax.swing.JMenu mnuFile; ! // End of variables declaration//GEN-END:variables ! } + |
|
From: <rga...@us...> - 2002-10-20 22:06:09
|
Update of /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring
In directory usw-pr-cvs1:/tmp/cvs-serv24366
Modified Files:
ScoringConfigurationException.java
Log Message:
Fixing checkstyle errors
Index: ScoringConfigurationException.java
===================================================================
RCS file: /cvsroot/csms/csms-core/src/java/org/fanfoot/scoring/ScoringConfigurationException.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ScoringConfigurationException.java 18 Oct 2002 14:56:45 -0000 1.1
--- ScoringConfigurationException.java 20 Oct 2002 22:06:06 -0000 1.2
***************
*** 42,49 ****
public class ScoringConfigurationException extends java.lang.Exception {
Exception root = null;
/**
! * Creates a new instance of <code>ScoringConfigurationException</code> without detail message.
*/
public ScoringConfigurationException() {
--- 42,51 ----
public class ScoringConfigurationException extends java.lang.Exception {
+ /** The root exception leading to this one*/
Exception root = null;
/**
! * Creates a new instance of
! * <code>ScoringConfigurationException</code> without detail message.
*/
public ScoringConfigurationException() {
***************
*** 52,56 ****
/**
! * Constructs an instance of <code>ScoringConfigurationException</code> with the specified detail message.
* @param msg the detail message.
*/
--- 54,60 ----
/**
! * Constructs an instance of
! * <code>ScoringConfigurationException</code>
! * with the specified detail message.
* @param msg the detail message.
*/
***************
*** 65,68 ****
--- 69,73 ----
* and the root exception supplied
* @param msg the detail message.
+ * @param e the root exception
*/
public ScoringConfigurationException(String msg, Exception e) {
|