[CVS spice] Componenthaus has continued development at sourceforge so no need to keep the old version about

pdonald-yCVjj/[email protected] 19 Jun 2004 14:39:19 -0000
Newsgroups gmane.comp.java.spice.cvs
Message-ID <[email protected]>
<html>
<head>
<style><!--
  body {background-color:#ffffff;}
  .file {border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;}
  .pathname {font-family:monospace; float:right;}
  .fileheader {margin-bottom:.5em;}
  .diff {margin:0;}
  .tasklist {padding:4px;border:1px dashed #000000;margin-top:1em;}
  .tasklist ul {margin-top:0;margin-bottom:0;}
  tr.alt {background-color:#eeeeee}
  #added {background-color:#ddffdd;}
  #addedchars {background-color:#99ff99;font-weight:bolder;}
  tr.alt #added {background-color:#ccf7cc;}
  #removed {background-color:#ffdddd;}
  #removedchars {background-color:#ff9999;font-weight:bolder;}
  tr.alt #removed {background-color:#f7cccc;}
  #info {color:#888888;}
  #context {background-color:#eeeeee;}
  td {padding-left:.3em;padding-right:.3em;}
  tr.head {border-bottom-width:1px;border-bottom-style:solid;}
  tr.head td {padding:0;padding-top:.2em;}
  .task {background-color:#ffff00;}
  .comment {padding:4px;border:1px dashed #000000;background-color:#ffffdd}
  .error {color:red;}
  hr {border-width:0px;height:2px;background:black;}
--></style>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head"><td colspan="4">Commit in <b><tt>spice/sandbox/repository/componenthaus</tt></b><span id="info"> on MAIN</span></td></tr>
<tr><td><tt><a href="#file1"><span id="removed">.cvsignore</span></a></tt></td><td></td><td align="right" id="removed">-3</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt><a href="#file2"><span id="removed">maven.xml</span></a></tt></td><td></td><td align="right" id="removed">-2</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr><td><tt><a href="#file3"><span id="removed">project.properties</span></a></tt></td><td></td><td align="right" id="removed">-11</td><td nowrap="nowrap">1.5 removed</td></tr>
<tr class="alt"><td><tt><a href="#file4"><span id="removed">project.xml</span></a></tt></td><td></td><td align="right" id="removed">-210</td><td nowrap="nowrap">1.12 removed</td></tr>
<tr><td><tt><a href="#file5"><span id="removed">todo.txt</span></a></tt></td><td></td><td align="right" id="removed">-59</td><td nowrap="nowrap">1.14 removed</td></tr>
<tr class="alt"><td><tt>lib/<span id="removed">jta-1.0.1B.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;/<span id="removed">lucene-1.3-rc2.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;/<span id="removed">spring-1.0M1.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;/<span id="removed">spring-1.0M2.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>sample/sqlexecutor/<a href="#file10"><span id="removed">build.xml</span></a></tt></td><td></td><td align="right" id="removed">-88</td><td nowrap="nowrap">1.5 removed</td></tr>
<tr><td><tt>sample/sqlexecutor/lib/<span id="removed">mockobjects-core-0.09.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<span id="removed">mockobjects-jdk1.4-0.09.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>sample/sqlexecutor/src/java/net/sf/componentfarm/sqlexecutor/api/<a href="#file13"><span id="removed">ResultSetHandler.java</span></a></tt></td><td></td><td align="right" id="removed">-8</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file14"><span id="removed">SqlExecutor.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file15"><span id="removed">SqlUtil.java</span></a></tt></td><td></td><td align="right" id="removed">-54</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>sample/sqlexecutor/src/java/net/sf/componentfarm/sqlexecutor/impl/<a href="#file16"><span id="removed">ConnectionFactory.java</span></a></tt></td><td></td><td align="right" id="removed">-18</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file17"><span id="removed">CountingResultSetHandler.java</span></a></tt></td><td></td><td align="right" id="removed">-20</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file18"><span id="removed">SqlExecutorImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-39</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr><td><tt>src/java/org/componenthaus/ant/<a href="#file19"><span id="removed">ClassAbbreviator.java</span></a></tt></td><td></td><td align="right" id="removed">-23</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file20"><span id="removed">ClassAbbreviatorImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-189</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file21"><span id="removed">ComponentMetadataTask.java</span></a></tt></td><td></td><td align="right" id="removed">-186</td><td nowrap="nowrap">1.4 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file22"><span id="removed">DirectoryDoesNotExistBuildException.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file23"><span id="removed">IOBuildException.java</span></a></tt></td><td></td><td align="right" id="removed">-11</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file24"><span id="removed">JavadocFormatter.java</span></a></tt></td><td></td><td align="right" id="removed">-5</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file25"><span id="removed">JavadocFormatterImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-87</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file26"><span id="removed">LineIndenter.java</span></a></tt></td><td></td><td align="right" id="removed">-5</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file27"><span id="removed">LineIndenterImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-46</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file28"><span id="removed">NoInterfacesSpecifiedBuildException.java</span></a></tt></td><td></td><td align="right" id="removed">-9</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file29"><span id="removed">NoJavadocBuildException.java</span></a></tt></td><td></td><td align="right" id="removed">-17</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file30"><span id="removed">NoSuchJavaSourceFileBuildException.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file31"><span id="removed">NotAClassException.java</span></a></tt></td><td></td><td align="right" id="removed">-15</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file32"><span id="removed">NotADirectoryBuildException.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file33"><span id="removed">NotAPublicInterfaceBuildException.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file34"><span id="removed">NotPublicException.java</span></a></tt></td><td></td><td align="right" id="removed">-14</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file35"><span id="removed">ParameterNotSpecifiedBuildException.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>src/java/org/componenthaus/ant/metadata/<a href="#file36"><span id="removed">ComponentMetadata.java</span></a></tt></td><td></td><td align="right" id="removed">-70</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file37"><span id="removed">InterfaceMetadata.java</span></a></tt></td><td></td><td align="right" id="removed">-70</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr class="alt"><td><tt>src/java/org/componenthaus/prevayler/<a href="#file38"><span id="removed">PrevaylerBean.java</span></a></tt></td><td></td><td align="right" id="removed">-26</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>src/java/org/componenthaus/repository/api/<a href="#file39"><span id="removed">Component.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file40"><span id="removed">ComponentRepository.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file41"><span id="removed">Downloadable.java</span></a></tt></td><td></td><td align="right" id="removed">-7</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file42"><span id="removed">RepositoryImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-47</td><td nowrap="nowrap">1.6 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file43"><span id="removed">Service.java</span></a></tt></td><td></td><td align="right" id="removed">-18</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>src/java/org/componenthaus/repository/impl/<a href="#file44"><span id="removed">CategoryFactory.java</span></a></tt></td><td></td><td align="right" id="removed">-4</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file45"><span id="removed">ComponentFactory.java</span></a></tt></td><td></td><td align="right" id="removed">-11</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file46"><span id="removed">ComponentImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-37</td><td nowrap="nowrap">1.4 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file47"><span id="removed">ServiceImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-101</td><td nowrap="nowrap">1.4 removed</td></tr>
<tr class="alt"><td><tt>src/java/org/componenthaus/repository/services/<a href="#file48"><span id="removed">CommandRegistry.java</span></a></tt></td><td></td><td align="right" id="removed">-11</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file49"><span id="removed">CommandRegistryImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file50"><span id="removed">RegisterDownloadableComponentCommand.java</span></a></tt></td><td></td><td align="right" id="removed">-24</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file51"><span id="removed">SubmitComponentCommand.java</span></a></tt></td><td></td><td align="right" id="removed">-22</td><td nowrap="nowrap">1.4 removed</td></tr>
<tr class="alt"><td><tt>src/java/org/componenthaus/search/<a href="#file52"><span id="removed">AddComponentMonitor.java</span></a></tt></td><td></td><td align="right" id="removed">-20</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file53"><span id="removed">LuceneSearchService.java</span></a></tt></td><td></td><td align="right" id="removed">-78</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file54"><span id="removed">SearchService.java</span></a></tt></td><td></td><td align="right" id="removed">-23</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>src/java/org/componenthaus/spring/<a href="#file55"><span id="removed">AbstractPicoApplicationContext.java</span></a></tt></td><td></td><td align="right" id="removed">-197</td><td nowrap="nowrap">1.6 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file56"><span id="removed">PicoApplicationContext.java</span></a></tt></td><td></td><td align="right" id="removed">-144</td><td nowrap="nowrap">1.9 removed</td></tr>
<tr><td><tt>src/java/org/componenthaus/usecases/common/<a href="#file57"><span id="removed">MissingRequestParameterServletException.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/java/org/componenthaus/usecases/downloadcomponent/<a href="#file58"><span id="removed">DownloadComponentController.java</span></a></tt></td><td></td><td align="right" id="removed">-50</td><td nowrap="nowrap">1.5 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file59"><span id="removed">NoSuchDownloadableServletException.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/java/org/componenthaus/usecases/listcomponents/<a href="#file60"><span id="removed">ListComponentsController.java</span></a></tt></td><td></td><td align="right" id="removed">-25</td><td nowrap="nowrap">1.4 removed</td></tr>
<tr><td><tt>src/java/org/componenthaus/usecases/searchcomponents/<a href="#file61"><span id="removed">SearchComponentsController.java</span></a></tt></td><td></td><td align="right" id="removed">-135</td><td nowrap="nowrap">1.6 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file62"><span id="removed">SearchServiceFailedServletException.java</span></a></tt></td><td></td><td align="right" id="removed">-9</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>src/java/org/componenthaus/usecases/showcomponent/<a href="#file63"><span id="removed">ShowComponentController.java</span></a></tt></td><td></td><td align="right" id="removed">-23</td><td nowrap="nowrap">1.5 removed</td></tr>
<tr class="alt"><td><tt>src/java/org/componenthaus/usecases/submitcomponent/<a href="#file64"><span id="removed">CarSubmissionManager.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file65"><span id="removed">ComponentSubmissionException.java</span></a></tt></td><td></td><td align="right" id="removed">-7</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file66"><span id="removed">ComponentSubmissionManager.java</span></a></tt></td><td></td><td align="right" id="removed">-9</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file67"><span id="removed">DefaultCarSubmissionManager.java</span></a></tt></td><td></td><td align="right" id="removed">-132</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file68"><span id="removed">DefaultComponentSubmissionManager.java</span></a></tt></td><td></td><td align="right" id="removed">-39</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file69"><span id="removed">IllegalJarNameException.java</span></a></tt></td><td></td><td align="right" id="removed">-14</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file70"><span id="removed">MetadataConverter.java</span></a></tt></td><td></td><td align="right" id="removed">-9</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file71"><span id="removed">MetadataConverterImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-66</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file72"><span id="removed">MissingJarEntryException.java</span></a></tt></td><td></td><td align="right" id="removed">-14</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file73"><span id="removed">NotAMultipartRequestServletException.java</span></a></tt></td><td></td><td align="right" id="removed">-6</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file74"><span id="removed">RequiredMultipartFieldMissingServletException.java</span></a></tt></td><td></td><td align="right" id="removed">-15</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file75"><span id="removed">SubmitComponentController.java</span></a></tt></td><td></td><td align="right" id="removed">-68</td><td nowrap="nowrap">1.9 removed</td></tr>
<tr class="alt"><td><tt>src/java/org/componenthaus/usecases/welcomeuser/<a href="#file76"><span id="removed">WelcomeUserController.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>src/java/org/componenthaus/util/file/<a href="#file77"><span id="removed">FileManager.java</span></a></tt></td><td></td><td align="right" id="removed">-11</td><td nowrap="nowrap">1.5 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file78"><span id="removed">FileManagerImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-36</td><td nowrap="nowrap">1.8 removed</td></tr>
<tr><td><tt>src/maven/<a href="#file79"><span id="removed">plugin.jelly</span></a></tt></td><td></td><td align="right" id="removed">-22</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/ant/<a href="#file80"><span id="removed">ClassAbbreviatorImplTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-145</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file81"><span id="removed">ComponentMetadataTaskTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-325</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file82"><span id="removed">JavadocFormatterImplTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-73</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file83"><span id="removed">LineIndenterImplTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-43</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/ant/metadata/<a href="#file84"><span id="removed">ComponentMetadataTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-59</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file85"><span id="removed">InterfaceMetadataTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-28</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/prevayler/<a href="#file86"><span id="removed">PrevaylerBeanTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-47</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>src/tests/org/componenthaus/repository/api/<a href="#file87"><span id="removed">RepositoryImplTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-53</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/repository/impl/<a href="#file88"><span id="removed">ServiceImplTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-75</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>src/tests/org/componenthaus/repository/services/<a href="#file89"><span id="removed">CommandRegistryImplTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-22</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file90"><span id="removed">RegisterDownloadableComponentCommandTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-21</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file91"><span id="removed">SubmitComponentCommandTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-19</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/search/<a href="#file92"><span id="removed">AddComponentMonitorTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-37</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file93"><span id="removed">LuceneSearchServiceTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-200</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/spring/<a href="#file94"><span id="removed">AbstractPicoApplicationContextTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-262</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file95"><span id="removed">PicoApplicationContextTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-26</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/tests/<a href="#file96"><span id="removed">MockClassAbbreviator.java</span></a></tt></td><td></td><td align="right" id="removed">-33</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file97"><span id="removed">MockComponent.java</span></a></tt></td><td></td><td align="right" id="removed">-54</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file98"><span id="removed">MockComponentRepository.java</span></a></tt></td><td></td><td align="right" id="removed">-89</td><td nowrap="nowrap">1.4 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file99"><span id="removed">MockComponentRepositoryMonitor.java</span></a></tt></td><td></td><td align="right" id="removed">-22</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file100"><span id="removed">MockComponentSubmissionManager.java</span></a></tt></td><td></td><td align="right" id="removed">-21</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file101"><span id="removed">MockMetadataConverterImpl.java</span></a></tt></td><td></td><td align="right" id="removed">-18</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file102"><span id="removed">MockPrevalentSystem.java</span></a></tt></td><td></td><td align="right" id="removed">-13</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file103"><span id="removed">MockPrevayler.java</span></a></tt></td><td></td><td align="right" id="removed">-17</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file104"><span id="removed">MockSearchService.java</span></a></tt></td><td></td><td align="right" id="removed">-75</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>src/tests/org/componenthaus/usecases/downloadcomponent/<a href="#file105"><span id="removed">DownloadComponentControllerTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-71</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/usecases/listcomponents/<a href="#file106"><span id="removed">ListComponentsControllerTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-22</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>src/tests/org/componenthaus/usecases/searchcomponents/<a href="#file107"><span id="removed">SearchComponentsControllerTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-158</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/usecases/showcomponent/<a href="#file108"><span id="removed">ShowComponentControllerTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-28</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>src/tests/org/componenthaus/usecases/submitcomponent/<a href="#file109"><span id="removed">DefaultCarSubmissionManagerTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-59</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file110"><span id="removed">DefaultComponentSubmissionManagerTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-65</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file111"><span id="removed">MetadataConverterImplTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-67</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file112"><span id="removed">MockCommandRegistry.java</span></a></tt></td><td></td><td align="right" id="removed">-67</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file113"><span id="removed">SubmitComponentControllerTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-191</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file114"><span id="removed">TestFiles.java</span></a></tt></td><td></td><td align="right" id="removed">-30</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>src/tests/org/componenthaus/usecases/welcomeuser/<a href="#file115"><span id="removed">WelcomeUserControllerTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/tests/org/componenthaus/util/file/<a href="#file116"><span id="removed">FileManagerImplTestCase.java</span></a></tt></td><td></td><td align="right" id="removed">-24</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file117"><span id="removed">MockFile.java</span></a></tt></td><td></td><td align="right" id="removed">-37</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file118"><span id="removed">MockFileManager.java</span></a></tt></td><td></td><td align="right" id="removed">-21</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>src/tests/testdata/jars/<span id="removed">empty.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<span id="removed">junit.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<span id="removed">justMetadata.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<span id="removed">validComponentSubmission.jar</span></tt></td><td colspan="2" align="center"><small id="info">[binary]</small></td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>src/tests/testdata/poms/<a href="#file123"><span id="removed">PomLoader.java</span></a></tt></td><td></td><td align="right" id="removed">-14</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file124"><span id="removed">picoPom.xml</span></a></tt></td><td></td><td align="right" id="removed">-177</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>src/webapp/WEB-INF/<a href="#file125"><span id="removed">applicationContext.xml</span></a></tt></td><td></td><td align="right" id="removed">-10</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file126"><span id="removed">componenthaus-servlet.xml</span></a></tt></td><td></td><td align="right" id="removed">-125</td><td nowrap="nowrap">1.5 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file127"><span id="removed">web.xml</span></a></tt></td><td></td><td align="right" id="removed">-72</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr class="alt"><td><tt>src/webapp/WEB-INF/classes/<a href="#file128"><span id="removed">log4j.properties</span></a></tt></td><td></td><td align="right" id="removed">-14</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<span id="removed">messages.properties</span></tt></td><td colspan="2" align="center"><small id="info">[empty]</small></td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file130"><span id="removed">views.properties</span></a></tt></td><td></td><td align="right" id="removed">-33</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>src/webapp/WEB-INF/defs/<a href="#file131"><span id="removed">definitions.xml</span></a></tt></td><td></td><td align="right" id="removed">-56</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>src/webapp/WEB-INF/jsp/<a href="#file132"><span id="removed">includes.jsp</span></a></tt></td><td></td><td align="right" id="removed">-3</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file133"><span id="removed">uncaughtException.jsp</span></a></tt></td><td></td><td align="right" id="removed">-58</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file134"><span id="removed">welcome.jsp</span></a></tt></td><td></td><td align="right" id="removed">-4</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>src/webapp/WEB-INF/jsp/layout/<a href="#file135"><span id="removed">rootLayout.jsp</span></a></tt></td><td></td><td align="right" id="removed">-30</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/webapp/WEB-INF/jsp/tiles/<a href="#file136"><span id="removed">header.jsp</span></a></tt></td><td></td><td align="right" id="removed">-26</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr><td><tt>src/webapp/WEB-INF/jsp/usecases/listcomponents/<a href="#file137"><span id="removed">listComponents.jsp</span></a></tt></td><td></td><td align="right" id="removed">-24</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr class="alt"><td><tt>src/webapp/WEB-INF/jsp/usecases/searchcomponents/<a href="#file138"><span id="removed">paging.jsp</span></a></tt></td><td></td><td align="right" id="removed">-18</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file139"><span id="removed">resultLayout.jsp</span></a></tt></td><td></td><td align="right" id="removed">-19</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file140"><span id="removed">searchCriteria.jsp</span></a></tt></td><td></td><td align="right" id="removed">-10</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file141"><span id="removed">searchResults.jsp</span></a></tt></td><td></td><td align="right" id="removed">-24</td><td nowrap="nowrap">1.3 removed</td></tr>
<tr class="alt"><td><tt>src/webapp/WEB-INF/jsp/usecases/showcomponent/<a href="#file142"><span id="removed">showComponent.jsp</span></a></tt></td><td></td><td align="right" id="removed">-19</td><td nowrap="nowrap">1.4 removed</td></tr>
<tr><td><tt>src/webapp/WEB-INF/jsp/usecases/showimplementation/<a href="#file143"><span id="removed">showImplementation.jsp</span></a></tt></td><td></td><td align="right" id="removed">-71</td><td nowrap="nowrap">1.1.1.1 removed</td></tr>
<tr class="alt"><td><tt>src/webapp/WEB-INF/jsp/usecases/submitcomponent/<a href="#file144"><span id="removed">submitComponent.jsp</span></a></tt></td><td></td><td align="right" id="removed">-16</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td><tt>src/webapp/WEB-INF/tld/<a href="#file145"><span id="removed">struts-tiles-1.1.tld</span></a></tt></td><td></td><td align="right" id="removed">-344</td><td nowrap="nowrap">1.1 removed</td></tr>
<tr class="alt"><td><tt>src/webapp/css/<a href="#file146"><span id="removed">styles.css</span></a></tt></td><td></td><td align="right" id="removed">-54</td><td nowrap="nowrap">1.2 removed</td></tr>
<tr><td></td><td></td><td align="right" id="removed">-6781</td><td></td></tr>
</table>
<small id="info">146 removed files</small><br />
<pre class="comment">
Componenthaus has continued development at sourceforge so no need to keep the old version about
</pre>
<hr /><a name="file1" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus<br /></span>
<div class="fileheader" id="removed"><big><b>.cvsignore</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N .cvsignore
--- .cvsignore	23 Sep 2003 08:22:37 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,3 +0,0 @@
</small></pre><pre class="diff" id="removed">-*.log
-build.properties
-target
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file2" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus<br /></span>
<div class="fileheader" id="removed"><big><b>maven.xml</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N maven.xml
--- maven.xml	21 Sep 2003 13:41:56 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;project default="war:war"&gt;
-&lt;/project&gt;
</pre></div>
<hr /><a name="file3" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus<br /></span>
<div class="fileheader" id="removed"><big><b>project.properties</b></big> <small id="info">removed after 1.5</small></div>
<pre class="diff"><small id="info">diff -N project.properties
--- project.properties	10 Nov 2003 20:21:41 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
</small></pre><pre class="diff" id="removed">-maven.repo.remote=http://www.ibiblio.org/maven,http://dist.codehaus.org
-
-maven.compile.source=1.4
-maven.compile.target=1.4
-maven.javadoc.source=1.4
-
-#
-# Fork so we can run with JVM asserts enables
-#
-maven.junit.fork=yes
-maven.junit.jvmargs=-ea
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file4" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus<br /></span>
<div class="fileheader" id="removed"><big><b>project.xml</b></big> <small id="info">removed after 1.12</small></div>
<pre class="diff"><small id="info">diff -N project.xml
--- project.xml	10 Nov 2003 20:21:41 -0000	1.12
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,210 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;?xml version="1.0"?&gt;
-&lt;project&gt;
-    &lt;pomVersion&gt;3&lt;/pomVersion&gt;
-    &lt;name&gt;componenthaus&lt;/name&gt;
-    &lt;id&gt;componenthaus&lt;/id&gt;
-    &lt;currentVersion&gt;0.1&lt;/currentVersion&gt;
-    &lt;inceptionYear&gt;2003&lt;/inceptionYear&gt;
-    &lt;package&gt;org.componenthaus&lt;/package&gt;
-
-    &lt;description&gt;
-        A website and a community centered around  component based development.
-
-        Try it &amp;lt;a href="http://64.4.141.60/componenthaus/welcome.htm"&amp;gt; here &amp;lt;/a&amp;gt;
-    &lt;/description&gt;
-
-    &lt;developers&gt;
-        &lt;developer&gt;
-            &lt;name&gt;Mike Hogan&lt;/name&gt;
-            &lt;id&gt;mikehogan&lt;/id&gt;
-            &lt;email&gt;[email protected]&lt;/email&gt;
-        &lt;/developer&gt;
-    &lt;/developers&gt;
-
-    &lt;dependencies&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;spring&lt;/id&gt;
-            &lt;version&gt;1.0M2&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;struts&lt;/id&gt;
-            &lt;version&gt;1.1&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;servletapi&lt;/id&gt;
-            &lt;version&gt;2.3&lt;/version&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;xstream&lt;/id&gt;
-            &lt;version&gt;0.1&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;ant&lt;/id&gt;
-            &lt;version&gt;1.5.2&lt;/version&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;qdox&lt;/id&gt;
-            &lt;version&gt;1.4-SNAPSHOT&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;picocontainer&lt;/id&gt;
-            &lt;version&gt;1.0-beta-2&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;commons-digester&lt;/id&gt;
-            &lt;version&gt;1.5&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;commons-beanutils&lt;/id&gt;
-            &lt;version&gt;1.6.1&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;commons-logging&lt;/id&gt;
-            &lt;version&gt;1.0.2&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;lucene&lt;/id&gt;
-            &lt;version&gt;1.3-rc2&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;jalopy&lt;/id&gt;
-            &lt;version&gt;1.0b10&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;antlr&lt;/id&gt;
-            &lt;version&gt;2.7.2&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;commons-lang&lt;/id&gt;
-            &lt;version&gt;1.0.1&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;commons-fileupload&lt;/id&gt;
-            &lt;version&gt;1.0&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;log4j&lt;/id&gt;
-            &lt;version&gt;1.2.8&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;oro&lt;/id&gt;
-            &lt;version&gt;2.0.7&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;jta&lt;/id&gt;
-            &lt;version&gt;1.0.1B&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;jstl&lt;/id&gt;
-            &lt;version&gt;1.0.2&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;taglibs&lt;/groupId&gt;
-            &lt;artifactId&gt;standard&lt;/artifactId&gt;
-            &lt;version&gt;1.0.2&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;prevayler&lt;/groupId&gt;
-            &lt;artifactId&gt;prevayler&lt;/artifactId&gt;
-            &lt;version&gt;1.02.001&lt;/version&gt;
-            &lt;properties&gt;
-                &lt;war.bundle&gt;true&lt;/war.bundle&gt;
-            &lt;/properties&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;mockobjects&lt;/groupId&gt;
-            &lt;artifactId&gt;mockobjects-core&lt;/artifactId&gt;
-            &lt;version&gt;0.09&lt;/version&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;mockobjects&lt;/groupId&gt;
-            &lt;artifactId&gt;mockobjects-jdk1.4&lt;/artifactId&gt;
-            &lt;version&gt;0.09&lt;/version&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;mockobjects&lt;/groupId&gt;
-            &lt;artifactId&gt;mockobjects-jdk1.4-j2ee1.3&lt;/artifactId&gt;
-            &lt;version&gt;0.09&lt;/version&gt;
-        &lt;/dependency&gt;
-    &lt;/dependencies&gt;
-
-    &lt;build&gt;
-        &lt;nagEmailAddress&gt;[email protected]&lt;/nagEmailAddress&gt;
-        &lt;sourceDirectory&gt;src/java&lt;/sourceDirectory&gt;
-        &lt;unitTestSourceDirectory&gt;src/tests&lt;/unitTestSourceDirectory&gt;
-        &lt;unitTest&gt;
-            &lt;includes&gt;
-                &lt;include&gt;**/*TestCase.java&lt;/include&gt;
-            &lt;/includes&gt;
-            &lt;resources&gt;
-                &lt;resource&gt;
-                    &lt;directory&gt;${basedir}/src/tests/testdata/jars&lt;/directory&gt;
-                    &lt;includes&gt;
-                        &lt;include&gt;*.jar&lt;/include&gt;
-                    &lt;/includes&gt;
-                &lt;/resource&gt;
-            &lt;/resources&gt;
-        &lt;/unitTest&gt;
-    &lt;/build&gt;
-
-    &lt;reports&gt;
-        &lt;report&gt;maven-jxr-plugin&lt;/report&gt;
-        &lt;report&gt;maven-javadoc-plugin&lt;/report&gt;
-        &lt;report&gt;maven-junit-report-plugin&lt;/report&gt;
-        &lt;report&gt;maven-clover-plugin&lt;/report&gt;
-    &lt;/reports&gt;
-&lt;/project&gt;
</pre></div>
<hr /><a name="file5" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus<br /></span>
<div class="fileheader" id="removed"><big><b>todo.txt</b></big> <small id="info">removed after 1.14</small></div>
<pre class="diff"><small id="info">diff -N todo.txt
--- todo.txt	10 Nov 2003 20:21:41 -0000	1.14
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
</small></pre><pre class="diff" id="removed">- * take version number from maven pom.  No, not the maven pom.  Let the user worry about how to get the version id to the Ant task.
- * take dependency jars from maven pom. No, not the maven pom.  Let the user worry about how to get the author names to the Ant task.
- * Federation
- * Live XPath query/reporting of component model
- * Acceptable UI - gulp!
- * Console on the top of each page, displaying result of last significant action (use monitor and tiles) (similar to cvs console in IDEA).
- * Add Submit date to component
- * Access control (for write actions)
- * Users and user management
- * Rework the component details page.  Yes, link to impls, but display what a user has to do to use the impl
- * JMX integration into the heart of the app
- * Investigate Beanshell integration, for debugging problems while live
- * Fix search query - its only using the first word
- * Restarted prevayler is not loading objects correctly - all the string fields are "gone".
- * Disable multiple submissions of the same component.
- * Structured API Search (Find me all methods taking a java.io.File and returning a java.lang.String, and importing java.sql classes)
- * Consider providing a means of displaying test cases that use a particular service method.  Excellent way to convey purpose and usage of the service method.
- * Include coverage report in component metadata
- * Offline tool to submit CAR files.
- * Have all Exception constructors call super(...)
- * Determine required jars from imports in the component itself (and its impl).  This is because one jar might contain two or more components.  Dependencies traditionally are at the jar to jar level.  But if you use only one component in a jar, you might not need all the dependencies the jar needs. Resolve transitive dependencies in this way also.  Expose as web service (so federated componenthauses can come to the central one to have dependencies resolved).
- * Better to make methods (services) the unit of indexing, searching and presentation?  Or stick with classes?
- * Write a test case to enable ClassAbbreviater to deal with constructors
- * Display service interface fully collapsed, like in IDEA, with clickable buttons to show javadoc.
-
-Done
-
-November 9th
- * If the component is a class, show only its methods, to better convey the service offering.  Rolling this out was hampered by bugs in Qdox (27 and 28). So will retest when bugs are fixed.
- * When QDox bugs 27 and 28 are fixed, test if submission of Plexus FileUtils works.
-
-November 5th
- * Stop including plug-interfaces in the repository as public interfaces.  Allow the submitter decide whats public.
- * Support multiple components in a single source tree (same jar I guess).
- * Allow the service interface to be a class (was limiting to interfaces up to this point, but thats too limiting)
- * Made the presentation a little better looking.  Well, consistent anyway.
-
-November 2nd
- * More test cases for search stuff
-
-October 26th
- * TDD'ed re-write of the submission stuff
- * XStream replaces Betwixt
-
-October 16th
- * aspico integration, so we can have type 3 IoC.  Forget aspico - make a pico-style spring beanfactory.
-
-October 15th
- * Pico plugin done.  Controllers and beans need to be ported to type 3 still.
-
-October 5th
- * fix search engine indexing problem - last component only indexed
- * remove System.out.printlns
- * better search results page
- * Fix pagination links in the search results page.
-
-October 4th
- * Menubar on each page - tiles integration
- * CSS style sheets
</pre></div>
<hr /><a name="file10" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/sample/sqlexecutor<br /></span>
<div class="fileheader" id="removed"><big><b>build.xml</b></big> <small id="info">removed after 1.5</small></div>
<pre class="diff"><small id="info">diff -N build.xml
--- build.xml	5 Nov 2003 19:35:49 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,88 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;project name="sqlexecutor" default="car"&gt;
-    &lt;taskdef name="mkcar" classname="org.componenthaus.ant.ComponentMetadataTask"/&gt;
-
-    &lt;property name="build" value="build"/&gt;
-    &lt;property name="build.classes" value="${build}/classes"/&gt;
-    &lt;property name="build.testclasses" value="${build}/testclasses"/&gt;
-    &lt;property name="build.componenthaus" value="${build}/componenthaus"/&gt;
-    &lt;property name="build.reports" value="${build}/reports"/&gt;
-    &lt;property name="lib" value="lib"/&gt;
-    &lt;property name="src" value="src"/&gt;
-    &lt;property name="src.java" value="${src}/java"/&gt;
-    &lt;property name="src.tests" value="${src}/test"/&gt;
-    &lt;property name="dist" value="dist"/&gt;
-    &lt;property name="projectName" value="sqlexecutor"/&gt;
-    &lt;property name="version" value="0.1"/&gt;
-    &lt;property name="distribution" value="${projectName}-${version}.jar"/&gt;
-    &lt;property name="componenthausSubmission" value="${projectName}-${version}.car"/&gt;
-
-
-    &lt;target name="init"&gt;
-        &lt;mkdir dir="${build.classes}"/&gt;
-        &lt;mkdir dir="${build.testclasses}"/&gt;
-        &lt;mkdir dir="${build.componenthaus}"/&gt;
-        &lt;mkdir dir="${build.reports}"/&gt;
-        &lt;mkdir dir="${dist}"/&gt;
-    &lt;/target&gt;
-
-    &lt;target name="compile" depends="init"&gt;
-        &lt;javac
-            srcdir="${src.java}"
-            destdir="${build.classes}"&gt;
-        &lt;/javac&gt;
-    &lt;/target&gt;
-
-    &lt;target name="jar" depends="compile,test"&gt;
-        &lt;jar destfile="${dist}/${distribution}" basedir="${build.classes}"/&gt;
-    &lt;/target&gt;
-
-    &lt;target name="car" depends="jar"&gt;
-        &lt;mkdir dir="${build.componenthaus}/dist"/&gt;
-        &lt;copy file="${dist}/${distribution}" todir="${build.componenthaus}/dist"/&gt;
-
-        &lt;mkcar
-            sourceDirectory="${src.java}"
-            targetDirectory="${build.componenthaus}"&gt;
-            &lt;interface name="net.sf.componentfarm.sqlexecutor.api.SqlExecutor"/&gt;
-            &lt;interface name="net.sf.componentfarm.sqlexecutor.api.SqlUtil"/&gt;
-        &lt;/mkcar&gt;
-
-        &lt;jar destfile="${dist}/${componenthausSubmission}" basedir="${build.componenthaus}"/&gt;
-    &lt;/target&gt;
-
-    &lt;target name="clean"&gt;
-        &lt;delete dir="${build}"/&gt;
-    &lt;/target&gt;
-
-    &lt;target name="compiletests"&gt;
-        &lt;javac
-            srcdir="${src.tests}"
-            destdir="${build.testclasses}"&gt;
-            &lt;classpath&gt;
-                &lt;pathelement location="${build.classes}"/&gt;
-                &lt;fileset dir="${lib}"&gt;
-                    &lt;include name="**/*.jar"/&gt;
-                &lt;/fileset&gt;
-            &lt;/classpath&gt;
-
-        &lt;/javac&gt;
-    &lt;/target&gt;
-
-    &lt;target name="test" depends="compiletests"&gt;
-        &lt;junit printsummary="yes" haltonfailure="yes"&gt;
-            &lt;classpath&gt;
-                &lt;pathelement location="${build.classes}"/&gt;
-                &lt;pathelement location="${build.testclasses}"/&gt;
-                &lt;fileset dir="${lib}"&gt;
-                    &lt;include name="**/*.jar"/&gt;
-                &lt;/fileset&gt;
-            &lt;/classpath&gt;
-            &lt;batchtest fork="yes" todir="${build.reports}"&gt;
-                &lt;fileset dir="${src.tests}"&gt;
-                    &lt;include name="**/*TestCase.java"/&gt;
-                &lt;/fileset&gt;
-            &lt;/batchtest&gt;
-        &lt;/junit&gt;
-
-    &lt;/target&gt;
-&lt;/project&gt;
</pre></div>
<hr /><a name="file13" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/sample/sqlexecutor/src/java/net/sf/componentfarm/sqlexecutor/api<br /></span>
<div class="fileheader" id="removed"><big><b>ResultSetHandler.java</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N ResultSetHandler.java
--- ResultSetHandler.java	21 Sep 2003 13:41:56 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,8 +0,0 @@
</small></pre><pre class="diff" id="removed">-package net.sf.componentfarm.sqlexecutor.api;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public interface ResultSetHandler {
-    void handleResultSet(ResultSet resultSet) throws SQLException;
-}
</pre></div>
<hr /><a name="file14" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/sample/sqlexecutor/src/java/net/sf/componentfarm/sqlexecutor/api<br /></span>
<div class="fileheader" id="removed"><big><b>SqlExecutor.java</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N SqlExecutor.java
--- SqlExecutor.java	21 Sep 2003 13:41:56 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package net.sf.componentfarm.sqlexecutor.api;
-
-import java.util.Iterator;
-import java.sql.SQLException;
-
-/**
- * Abstracts away the tedious JDBC calls associated with doing SQL work in Java.
- * You pass the sql you want executed, the bind variables for that sql, and a
- * callback to deal with the result set.
- *
- * @version 0.1
- * @author Mike Hogan
- */
-public interface SqlExecutor {
-    int execute(String sql, Iterator bindVariables, ResultSetHandler handler) throws SQLException;
-}
</pre></div>
<hr /><a name="file15" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/sample/sqlexecutor/src/java/net/sf/componentfarm/sqlexecutor/api<br /></span>
<div class="fileheader" id="removed"><big><b>SqlUtil.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N SqlUtil.java
--- SqlUtil.java	5 Nov 2003 19:35:50 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,54 +0,0 @@
</small></pre><pre class="diff" id="removed">-package net.sf.componentfarm.sqlexecutor.api;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.ResultSet;
-import java.sql.Statement;
-
-/**
- * Small utility class that performs common operations
- * involved in using JDBC.
- */
-public class SqlUtil {
-    /**
-     * Close the given Connection, swallowing any SQLException that might be
-     * thrown.  The connection can be null, in which case no action will be taken.
-     */
-    public static void close(Connection connection) {
-        if (connection != null) {
-            try {
-                connection.close();
-            } catch (SQLException e) {
-                //ignore
-            }
-        }
-    }
-
-    /**
-     * Close the given ResultSet, swallowing any SQLException that might be
-     * thrown.  The ResultSet can be null, in which case no action will be taken.
-     */
-    public static void close(ResultSet resultSet) {
-        if (resultSet != null) {
-            try {
-                resultSet.close();
-            } catch (SQLException e) {
-                //ignore
-            }
-        }
-    }
-
-    /**
-     * Close the given Statement, swallowing any SQLException that might be
-     * thrown.  The Statement can be null, in which case no action will be taken.
-     */
-    public static void close(Statement statement) {
-        if (statement != null) {
-            try {
-                statement.close();
-            } catch (SQLException e) {
-                //ignore
-            }
-        }
-    }
-}
</pre></div>
<hr /><a name="file16" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/sample/sqlexecutor/src/java/net/sf/componentfarm/sqlexecutor/impl<br /></span>
<div class="fileheader" id="removed"><big><b>ConnectionFactory.java</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N ConnectionFactory.java
--- ConnectionFactory.java	21 Sep 2003 13:41:56 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
</small></pre><pre class="diff" id="removed">-package net.sf.componentfarm.sqlexecutor.impl;
-
-import java.sql.Connection;
-
-/**
- * This is a plug-interface for the SqlExecutorImpl implementation of SqlExecutor.&lt;/p&gt;
- *
- * Those integrating SqlExecutorImpl into their systems must provide an implementation
- * of this interface so that SqlExecutorImpl can get a connection to the database.  Of course
- * these is no impl for this right now, because I only want the interface to be present
- * to see what we can do with plug-interfaces in Component Haus.
- *
- * @version 0.1
- * @author Mike Hogan
- */
-public interface ConnectionFactory {
-    Connection getConnection();
-}
</pre></div>
<hr /><a name="file17" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/sample/sqlexecutor/src/java/net/sf/componentfarm/sqlexecutor/impl<br /></span>
<div class="fileheader" id="removed"><big><b>CountingResultSetHandler.java</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N CountingResultSetHandler.java
--- CountingResultSetHandler.java	21 Sep 2003 13:41:56 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
</small></pre><pre class="diff" id="removed">-package net.sf.componentfarm.sqlexecutor.impl;
-
-import net.sf.componentfarm.sqlexecutor.api.ResultSetHandler;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class CountingResultSetHandler implements ResultSetHandler {
-    private long count = 0;
-
-    public void handleResultSet(ResultSet resultSet) throws SQLException {
-        while(resultSet.next()) {
-            count++;
-        }
-    }
-
-    public long getCount() {
-        return count;
-    }
-}
</pre></div>
<hr /><a name="file18" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/sample/sqlexecutor/src/java/net/sf/componentfarm/sqlexecutor/impl<br /></span>
<div class="fileheader" id="removed"><big><b>SqlExecutorImpl.java</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N SqlExecutorImpl.java
--- SqlExecutorImpl.java	21 Sep 2003 13:41:56 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
</small></pre><pre class="diff" id="removed">-package net.sf.componentfarm.sqlexecutor.impl;
-
-import net.sf.componentfarm.sqlexecutor.api.SqlExecutor;
-import net.sf.componentfarm.sqlexecutor.api.ResultSetHandler;
-
-import java.util.Iterator;
-import java.sql.SQLException;
-import java.sql.ResultSet;
-import java.sql.Connection;
-
-/**
- * Simple implementation of SqlExecutor that requires a ConnectionFactory to
- * provide it JDBC connections.&lt;/p&gt;
- *
- * Of course, this does nothing at all at the moment.  Its purpose is to act
- * as a test component for ComponentHaus work.  But it might be turned into
- * a real component one day.
- *
- * @version 0.1
- * @author Mike Hogan
- * @author Another Author
- */
-public class SqlExecutorImpl implements SqlExecutor {
-    private final ConnectionFactory connectionFactory;
-
-    public SqlExecutorImpl(ConnectionFactory connectionFactory) {
-        this.connectionFactory = connectionFactory;
-    }
-
-    public int execute(String sql, Iterator bindVariables, ResultSetHandler handler) throws SQLException {
-        // do the query
-        final Connection connection = connectionFactory.getConnection();
-        final ResultSet resultSet = null;
-        handler.handleResultSet(resultSet);
-        resultSet.close();
-        connection.close();
-        return 0;
-    }
-}
</pre></div>
<hr /><a name="file19" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>ClassAbbreviator.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N ClassAbbreviator.java
--- ClassAbbreviator.java	9 Nov 2003 14:00:46 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import com.thoughtworks.qdox.model.JavaClass;
-
-/**
- * Given a QDox JavaClass representing a class (not an interface), provide
- * a string representation of the source code for that class, but containing
- * only the public method signatures.  All non-public members are removed, as are
- * all method bodies.
- */
-public interface ClassAbbreviator {
-    /**
-     * Given a QDox JavaClass representing a class (not an interface), provide
-     * a string representation of the source code for that class, but containing
-     * only the public method signatures.  All non-public members are removed,
-     * as are all method bodies.
-     *
-     * @param aClass the class to abbreviate
-     * @param collector will contain the public methods as a formatted block
-     * @return the number of public members in the result
-     */
-    int abbreviate(JavaClass aClass, StringBuffer collector);
-}
</pre></div>
<hr /><a name="file20" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>ClassAbbreviatorImpl.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N ClassAbbreviatorImpl.java
--- ClassAbbreviatorImpl.java	9 Nov 2003 16:21:38 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,189 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import com.thoughtworks.qdox.model.JavaClass;
-import com.thoughtworks.qdox.model.JavaMethod;
-import com.thoughtworks.qdox.model.AbstractJavaEntity;
-import com.thoughtworks.qdox.model.JavaParameter;
-import com.thoughtworks.qdox.model.Type;
-import com.thoughtworks.qdox.model.DocletTag;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.Collection;
-import java.util.Iterator;
-
-public class ClassAbbreviatorImpl implements ClassAbbreviator {
-    private static final String JAVA_LANG_PACKAGE = "java.lang.";
-    private static final String DOT = ".";
-    private final JavadocFormatter javadocFormatter;
-    private final LineIndenter indenter;
-
-    public ClassAbbreviatorImpl(JavadocFormatter javadocFormatter, LineIndenter indenter) {
-        this.javadocFormatter = javadocFormatter;
-        this.indenter = indenter;
-    }
-
-    public int abbreviate(JavaClass aClass, StringBuffer collector) {
-        if (aClass.isInterface()) {
-            throw new NotAClassException(aClass.getFullyQualifiedName());
-        }
-        if (!aClass.isPublic()) {
-            throw new NotPublicException(aClass.getFullyQualifiedName());
-        }
-        Set importsCollector = new HashSet();
-        StringBuffer bodyCollector = new StringBuffer();
-
-        int publicMethodCount = 0;
-        JavaMethod[] methods = aClass.getMethods();
-        for (int i = 0; i &lt; methods.length; i++) {
-            JavaMethod method = methods[i];
-            if (method.isPublic() &amp;&amp; !method.isConstructor()) {
-                if (publicMethodCount &gt; 0) {
-                    bodyCollector.append("\n");
-                }
-                System.out.println("About to call method text on method " + method.getName());
-                bodyCollector.append(createMethodText(method, importsCollector));
-                publicMethodCount++;
-            }
-        }
-
-        System.out.println("About to do package text");
-        collector.append(createPackageText(aClass));
-        System.out.println("About to do imports text");
-        collector.append(createImportsText(importsCollector));
-        System.out.println("About to do class begnnning text");
-        collector.append(createClassBeginningText(aClass));
-        System.out.println("About to do body text");
-        collector.append(bodyCollector);
-        collector.append("}");
-
-        return publicMethodCount;
-    }
-
-    private String createPackageText(JavaClass aClass) {
-        return "package " + aClass.getPackage() + ";\n\n";
-    }
-
-    private String createImportsText(Collection imports) {
-        StringBuffer result = new StringBuffer();
-        for (Iterator i = imports.iterator(); i.hasNext();) {
-            result.append("import ").append(i.next()).append(";\n");
-        }
-        result.append("\n");
-        return result.toString();
-    }
-
-    private String createMethodText(JavaMethod method, Collection importsCollector) {
-        final StringBuffer result = new StringBuffer();
-        String unformattedJavadoc = "";
-        if (method.getComment() != null) {
-            unformattedJavadoc = method.getComment() + "\n";
-        }
-        if (method.getTags().length != 0) {
-            unformattedJavadoc += createJavadocTagsText(method.getTags());
-        }
-        if (unformattedJavadoc.length() &gt; 0) {
-            final String javadoc = javadocFormatter.format(unformattedJavadoc);
-            result.append(indenter.indent(javadoc, 1)).append("\n");
-        }
-        result.append("\t");
-        appendModifiers(method, result);
-        System.out.println("Working on method " + method.getName());
-        result.append(getType(method.getReturns(), importsCollector)).append(" ");
-        result.append(method.getName()).append("(");
-        result.append(createParameterListText(method, importsCollector));
-        result.append(")");
-        if (method.getExceptions().length &gt; 0) {
-            result.append(" throws ");
-            result.append(createExceptionDeclarationText(method, importsCollector));
-        }
-        result.append(";\n");
-        return result.toString();
-    }
-
-    private String createJavadocTagsText(DocletTag[] tags) {
-        System.out.println("Entering createjavadoctagstext");
-        StringBuffer result = new StringBuffer();
-        for (int i = 0; i &lt; tags.length; i++) {
-            DocletTag tag = tags[i];
-            System.out.println("Working on tag " + tag.getName());
-            result.append("@").append(tag.getName());
-            System.out.println("Appended name");
-            final String[] params = tag.getParameters();
-            System.out.println("Num params " + params.length);
-            for (int j = 0; j &lt; params.length; j++) {
-                System.out.println("Working on param " + params[j]);
-                //TODO remove this check for * when QDox is fixed - it includes the * here for some reason
-                if (!"*".equals(params[j])) {
-                    result.append(" ");
-                    result.append(params[j]);
-                }
-            }
-            System.out.println("Finished with params");
-            //result.append(" ").append(tag.getValue()).append("\n");
-            result.append("\n");
-        }
-        System.out.println("Leaving createjavadoctagstext");
-        return result.toString();
-    }
-
-    private String createExceptionDeclarationText(JavaMethod method, Collection importsCollector) {
-        StringBuffer result = new StringBuffer();
-        Type[] exceptions = method.getExceptions();
-        for (int i = 0; i &lt; exceptions.length; i++) {
-            Type exception = exceptions[i];
-            if (i &gt; 0) {
-                result.append(", ");
-            }
-            result.append(getType(exception, importsCollector));
-        }
-        return result.toString();
-    }
-
-    private String getType(Type type, Collection importsCollector) {
-        assert type != null;
-        final String fullTypeName = type.getValue();
-
-        String result = fullTypeName;
-
-        if (!fullTypeName.startsWith(JAVA_LANG_PACKAGE)) {
-            importsCollector.add(fullTypeName);
-        }
-        int indexOfLastDot = fullTypeName.lastIndexOf(DOT);
-        if (indexOfLastDot != -1) {
-            result = fullTypeName.substring(indexOfLastDot + 1);
-        }
-        return result;
-    }
-
-    private String createParameterListText(JavaMethod method, Collection importsCollector) {
-        JavaParameter[] parameters = method.getParameters();
-        StringBuffer result = new StringBuffer();
-        for (int i = 0; i &lt; parameters.length; i++) {
-            JavaParameter parameter = parameters[i];
-            if (i &gt; 0) {
-                result.append(", ");
-            }
-            result.append(getType(parameter.getType(), importsCollector)).append(" ").append(parameter.getName());
-        }
-        return result.toString();
-    }
-
-    private String createClassBeginningText(JavaClass aClass) {
-        final StringBuffer result = new StringBuffer();
-        if ( aClass.getComment() != null) {
-            result.append(javadocFormatter.format(aClass.getComment())).append("\n");
-        }
-        appendModifiers(aClass, result);
-        result.append("class ");
-        result.append(aClass.getName()).append(" {\n");
-        return result.toString();
-    }
-
-    private void appendModifiers(AbstractJavaEntity entity, final StringBuffer result) {
-        final String[] modifiers = entity.getModifiers();
-        for (int i = 0; i &lt; modifiers.length; i++) {
-            result.append(modifiers[i]).append(" ");
-        }
-    }
-}
</pre></div>
<hr /><a name="file21" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>ComponentMetadataTask.java</b></big> <small id="info">removed after 1.4</small></div>
<pre class="diff"><small id="info">diff -N ComponentMetadataTask.java
--- ComponentMetadataTask.java	9 Nov 2003 14:00:46 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,186 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import com.thoughtworks.qdox.JavaDocBuilder;
-import com.thoughtworks.qdox.model.JavaClass;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.componenthaus.ant.metadata.ComponentMetadata;
-import org.componenthaus.ant.metadata.InterfaceMetadata;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Iterator;
-
-//TODO Accept multiple interface names
-
-public class ComponentMetadataTask extends Task {
-    static final String metadataFilename = "metadata.xml";
-
-    private String sourceDirectory;
-    private List interfaceNames;
-    private String targetDirectory;
-
-    public ComponentMetadataTask() {
-        interfaceNames = new ArrayList();
-    }
-
-    public ComponentMetadataTask(String[] interfaceNames, String sourceDirectory, String targetdirectory) {
-        this();
-        this.interfaceNames = Arrays.asList(interfaceNames);
-        this.sourceDirectory = sourceDirectory;
-        this.targetDirectory = targetdirectory;
-    }
-
-    public ComponentMetadataTask(String interfacename, String sourceDirectory, String targetdirectory) {
-        this(new String[]{interfacename}, sourceDirectory, targetdirectory);
-    }
-
-    public InterfaceSpec createInterface() {
-        return new InterfaceSpec(this);
-    }
-
-    public void setSourceDirectory(String dir) {
-        this.sourceDirectory = dir;
-    }
-
-    public void execute() throws BuildException {
-        assertParametersAreOk();
-        doExecute();
-    }
-
-    public void addInterfaceName(String name) {
-        interfaceNames.add(name);
-    }
-
-    private void assertParametersAreOk() {
-        if (interfaceNames.size() == 0 || interfaceNames.get(0) == null) {
-            throw new NoInterfacesSpecifiedBuildException();
-        }
-        assertNotNull(sourceDirectory, "sourceDirectory");
-        assertNotNull(targetDirectory, "targetDirectory");
-        assertDirectoryIsOk(new File(sourceDirectory), sourceDirectory);
-        assertDirectoryIsOk(new File(targetDirectory), targetDirectory);
-    }
-
-    private void assertNotNull(String property, String propertyName) {
-        if (property == null) {
-            throw new ParameterNotSpecifiedBuildException(propertyName);
-        }
-    }
-
-    private void assertDirectoryIsOk(File dir, String directoryName) {
-        if (!dir.exists()) {
-            throw new DirectoryDoesNotExistBuildException(directoryName);
-        }
-        if (!dir.isDirectory()) {
-            throw new NotADirectoryBuildException(directoryName);
-        }
-    }
-
-    private void doExecute() {
-        JavaDocBuilder builder = new JavaDocBuilder();
-        builder.addSourceTree(new File(sourceDirectory));
-        final ComponentMetadata componentMetadata = new ComponentMetadata();
-        addMetadataForInterfaces(builder, componentMetadata);
-
-        File metadataFile = new File(targetDirectory, metadataFilename);
-        try {
-            metadataFile.createNewFile();
-        } catch (IOException e) {
-            throw new IOBuildException(e);
-        }
-
-        try {
-            FileWriter writer = new FileWriter(metadataFile);
-            writer.write(componentMetadata.toXml());
-            writer.close();
-        } catch (IOException e) {
-            throw new IOBuildException(e);
-        }
-    }
-
-    private void addMetadataForInterfaces(JavaDocBuilder builder, final ComponentMetadata componentMetadata) {
-        for (Iterator i = interfaceNames.iterator(); i.hasNext();) {
-            final String interfaceName = (String) i.next();
-            InterfaceMetadata interfaceMetadata = getInterfaceMetadata(builder, interfaceName);
-            componentMetadata.addInterface(interfaceMetadata);
-        }
-    }
-
-    private InterfaceMetadata getInterfaceMetadata(JavaDocBuilder builder, final String interfaceName) {
-        final JavaClass interfaceAsClass = builder.getClassByName(interfaceName);
-        if (interfaceAsClass == null) {
-            throw new NoSuchJavaSourceFileBuildException(interfaceName);
-        }
-        String javadoc = interfaceAsClass.getComment();
-        if (javadoc == null || "".equals(javadoc)) {
-            throw new NoJavadocBuildException(interfaceName);
-        }
-        if (!interfaceAsClass.isPublic()) {
-            throw new NotAPublicInterfaceBuildException(interfaceName);
-        }
-
-        String source = null;
-        try {
-            source = loadFile(new File(sourceDirectory, asDirectory(interfaceName) + ".java"));
-        } catch (IOException e) {
-            throw new IOBuildException(e);
-        }
-        InterfaceMetadata interfaceMetadata = new InterfaceMetadata(
-                interfaceAsClass.getPackage(),
-                interfaceAsClass.getName(),
-                interfaceAsClass.getComment(),
-                source,
-                !interfaceAsClass.isInterface());
-        return interfaceMetadata;
-    }
-
-    private String asDirectory(String javaPackageName) {
-        return javaPackageName.replaceAll("\\.", "/"); //File.separator does not work here for some reason
-    }
-
-    private String loadFile(File file) throws IOException {
-        StringWriter writer = new StringWriter();
-        BufferedReader reader = new BufferedReader(new FileReader(file));
-        String line = reader.readLine();
-        while (line != null) {
-            writer.write(line + "\n");
-            line = reader.readLine();
-        }
-        writer.close();
-        reader.close();
-        return writer.toString();
-    }
-
-    public void setTargetDirectory(String targetdirectory) {
-        this.targetDirectory = targetdirectory;
-    }
-
-    public int numInterfaces() {
-        return interfaceNames.size();
-    }
-
-    public boolean containsInterface(String interfacename) {
-        return interfaceNames.contains(interfacename);
-    }
-
-    public static final class InterfaceSpec {
-        private final ComponentMetadataTask task;
-
-        public InterfaceSpec(ComponentMetadataTask task) {
-            this.task = task;
-        }
-
-        public void setName(final String name) {
-            task.addInterfaceName(name);
-        }
-
-    }
-}
</pre></div>
<hr /><a name="file22" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>DirectoryDoesNotExistBuildException.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N DirectoryDoesNotExistBuildException.java
--- DirectoryDoesNotExistBuildException.java	9 Nov 2003 14:00:46 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import org.apache.tools.ant.BuildException;
-
-public class DirectoryDoesNotExistBuildException extends BuildException {
-    private String directoryName;
-
-    public DirectoryDoesNotExistBuildException(String directoryName) {
-        super("The directory '" + directoryName + "' does not exist");
-        this.directoryName = directoryName;
-    }
-
-    public String getDirectoryName() {
-        return directoryName;
-    }
-}
</pre></div>
<hr /><a name="file23" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>IOBuildException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N IOBuildException.java
--- IOBuildException.java	26 Oct 2003 13:46:41 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import org.apache.tools.ant.BuildException;
-
-import java.io.IOException;
-
-public class IOBuildException extends BuildException {
-    public IOBuildException(IOException e) {
-        super(e);
-    }
-}
</pre></div>
<hr /><a name="file24" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>JavadocFormatter.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N JavadocFormatter.java
--- JavadocFormatter.java	9 Nov 2003 14:00:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,5 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-public interface JavadocFormatter {
-    String format(String javadoc);
-}
</pre></div>
<hr /><a name="file25" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>JavadocFormatterImpl.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N JavadocFormatterImpl.java
--- JavadocFormatterImpl.java	9 Nov 2003 14:00:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,87 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Collection;
-
-public class JavadocFormatterImpl implements JavadocFormatter {
-    private static final int LENGTH_OF_A_SPACE_CHARACTER = 1;
-    private static final Collection wordsRequiringNewline = new ArrayList();
-    private final int maxLineLength;
-
-    static {
-        wordsRequiringNewline.add("@param");
-        wordsRequiringNewline.add("@return");
-        wordsRequiringNewline.add("@throws");
-        wordsRequiringNewline.add("@version");
-        wordsRequiringNewline.add("@author");
-    }
-
-
-    public JavadocFormatterImpl(int maxLineLength) {
-        this.maxLineLength = maxLineLength;
-    }
-
-    public String format(String javadoc) {
-        String result = javadoc;
-        if ( javadoc != null &amp;&amp; javadoc.length() != 0) {
-            result = formatJavadoc(javadoc);
-        }
-        return result;
-    }
-
-    private String formatJavadoc(String javadoc) {
-        final StringBuffer result = new StringBuffer("/**\n");
-        final List words = new ArrayList(Arrays.asList(javadoc.split("\\s")));
-        final String commentPrefix = " * ";
-        final int commentTextLength = maxLineLength - commentPrefix.length();
-        boolean firstNewLineWord = true;
-        while ( words.size() &gt; 0 ) {
-            if ( isNewlineWord((String) words.get(0)) &amp;&amp; firstNewLineWord) {
-                result.append(commentPrefix).append("\n");
-                firstNewLineWord = false;
-            }
-            String line = commentPrefix + createLineText(words, commentTextLength) + "\n";
-            result.append(line);
-        }
-        result.append(" **/");
-        return result.toString();
-    }
-
-    private String createLineText(List words, int commentTextLength) {
-        final StringBuffer result = new StringBuffer();
-        while(canAddAnotherWord(result,words, commentTextLength)) {
-            addAnotherWord(result,words);
-        }
-        if ( result.length() == 0 ) {
-            addAnotherWord(result,words);
-        }
-        return result.toString();
-    }
-
-    private void addAnotherWord(StringBuffer result, List words) {
-        if ( result.length() &gt; 0 ) {
-            result.append(" ");
-        }
-        result.append(words.remove(0));
-    }
-
-    private boolean canAddAnotherWord(StringBuffer current, List words, int maxLength) {
-        boolean result = false;
-        if ( words.size() &gt; 0 ) {
-            String nextWord = (String) words.get(0);
-            if ( isNewlineWord(nextWord) ) {
-                result = current.length() == 0;
-            } else {
-                int nextLength = current.length() + nextWord.length() + LENGTH_OF_A_SPACE_CHARACTER;
-                result = nextLength &lt; maxLength;
-            }
-        }
-        return result;
-    }
-
-    private boolean isNewlineWord(String word) {
-        return wordsRequiringNewline.contains(word);
-    }
-}
</pre></div>
<hr /><a name="file26" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>LineIndenter.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N LineIndenter.java
--- LineIndenter.java	9 Nov 2003 14:00:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,5 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-public interface LineIndenter {
-    String indent(String lines, int numIndents);
-}
</pre></div>
<hr /><a name="file27" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>LineIndenterImpl.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N LineIndenterImpl.java
--- LineIndenterImpl.java	9 Nov 2003 14:00:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,46 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import java.io.BufferedReader;
-import java.io.StringReader;
-import java.io.IOException;
-
-public class LineIndenterImpl implements LineIndenter {
-    private static final String END_LINE = "\n";
-    private static final String TAB = "\t";
-
-    public String indent(String lines, int numIndents) {
-        String result = lines;
-        if ( lines != null &amp;&amp; lines.length() &gt; 0 &amp;&amp; numIndents &gt; 0 ) {
-            try {
-                result = indentLines(lines, numIndents);
-            } catch (IOException e) {
-                throw new RuntimeException("Got an IOException reading strings", e);
-            }
-        }
-        return result;
-    }
-
-    private String indentLines(String lines, int numIndents) throws IOException {
-        StringBuffer result = new StringBuffer();
-        final String indent = createIndentText(numIndents);
-        BufferedReader reader = new BufferedReader(new StringReader(lines));
-        String line = reader.readLine();
-        while ( line != null ) {
-            if ( result.length() &gt; 0 ) {
-                result.append(END_LINE);
-            }
-            result.append(indent).append(line);
-            line = reader.readLine();
-        }
-        reader.close();
-        return result.toString();
-    }
-
-    private String createIndentText(int numIndents) {
-        String result = "";
-        for(int i=0;i&lt;numIndents;i++) {
-            result += TAB;
-        }
-        return result;
-    }
-}
</pre></div>
<hr /><a name="file28" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>NoInterfacesSpecifiedBuildException.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N NoInterfacesSpecifiedBuildException.java
--- NoInterfacesSpecifiedBuildException.java	9 Nov 2003 14:00:47 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import org.apache.tools.ant.BuildException;
-
-public class NoInterfacesSpecifiedBuildException extends BuildException {
-    public NoInterfacesSpecifiedBuildException() {
-        super("No interfaces specified to ant task");
-    }
-}
</pre></div>
<hr /><a name="file29" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>NoJavadocBuildException.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N NoJavadocBuildException.java
--- NoJavadocBuildException.java	9 Nov 2003 14:00:47 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import org.apache.tools.ant.BuildException;
-
-public class NoJavadocBuildException extends BuildException {
-    private String interfaceName;
-
-    public NoJavadocBuildException(String interfaceName) {
-        super("There is no javadoc for the source file " + interfaceName);
-        this.interfaceName = interfaceName;
-    }
-
-
-    public String getInterfaceName() {
-        return interfaceName;
-    }
-}
</pre></div>
<hr /><a name="file30" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>NoSuchJavaSourceFileBuildException.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N NoSuchJavaSourceFileBuildException.java
--- NoSuchJavaSourceFileBuildException.java	9 Nov 2003 14:00:47 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import org.apache.tools.ant.BuildException;
-
-public class NoSuchJavaSourceFileBuildException extends BuildException {
-    private String interfaceName;
-
-    public NoSuchJavaSourceFileBuildException(String interfaceName) {
-        super("No java source file with name " + interfaceName);
-        this.interfaceName = interfaceName;
-    }
-
-    public String getInterfaceName() {
-        return interfaceName;
-    }
-}
</pre></div>
<hr /><a name="file31" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>NotAClassException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N NotAClassException.java
--- NotAClassException.java	9 Nov 2003 14:00:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-public class NotAClassException extends RuntimeException {
-    private String name;
-
-    public NotAClassException(String name) {
-        super("Not a class " + name);
-        this.name = name;
-
-    }
-
-    public String getName() {
-        return name;
-    }
-}
</pre></div>
<hr /><a name="file32" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>NotADirectoryBuildException.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N NotADirectoryBuildException.java
--- NotADirectoryBuildException.java	9 Nov 2003 14:00:47 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import org.apache.tools.ant.BuildException;
-
-public class NotADirectoryBuildException extends BuildException {
-    private String directoryName;
-
-    public NotADirectoryBuildException(String directoryName) {
-        super(directoryName + " is not a directory");
-        this.directoryName = directoryName;
-    }
-
-    public String getDirectoryName() {
-        return directoryName;
-    }
-}
</pre></div>
<hr /><a name="file33" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>NotAPublicInterfaceBuildException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N NotAPublicInterfaceBuildException.java
--- NotAPublicInterfaceBuildException.java	5 Nov 2003 19:35:50 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import org.apache.tools.ant.BuildException;
-
-public class NotAPublicInterfaceBuildException extends BuildException {
-    private final String interfaceName;
-
-    public NotAPublicInterfaceBuildException(String interfaceName) {
-        super("Class file " + interfaceName + " is not a service interface");
-        this.interfaceName = interfaceName;
-    }
-
-    public String getInterfaceName() {
-        return interfaceName;
-    }
-}
</pre></div>
<hr /><a name="file34" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>NotPublicException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N NotPublicException.java
--- NotPublicException.java	9 Nov 2003 14:00:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-public class NotPublicException extends RuntimeException {
-    private final String fullyQualifiedName;
-
-    public NotPublicException(String fullyQualifiedName) {
-        super("Class " + fullyQualifiedName + " is not public");
-        this.fullyQualifiedName = fullyQualifiedName;
-    }
-
-    public String getFullyQualifiedName() {
-        return fullyQualifiedName;
-    }
-}
</pre></div>
<hr /><a name="file35" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>ParameterNotSpecifiedBuildException.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N ParameterNotSpecifiedBuildException.java
--- ParameterNotSpecifiedBuildException.java	9 Nov 2003 14:00:47 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import org.apache.tools.ant.BuildException;
-
-public class ParameterNotSpecifiedBuildException extends BuildException {
-    private final String directoryName;
-
-    public ParameterNotSpecifiedBuildException(String parameterName) {
-        super("Required parameter '" + parameterName + "' is not specified");
-        this.directoryName = parameterName;
-    }
-
-    public String getParameterName() {
-        return directoryName;
-    }
-}
</pre></div>
<hr /><a name="file36" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant/metadata<br /></span>
<div class="fileheader" id="removed"><big><b>ComponentMetadata.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N ComponentMetadata.java
--- ComponentMetadata.java	3 Nov 2003 21:15:29 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,70 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant.metadata;
-
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.xml.dom.DomXMLReader;
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-public class ComponentMetadata {
-    private Map interfaces = null;
-
-    public ComponentMetadata() {
-        this.interfaces = new HashMap();
-    }
-
-    public static ComponentMetadata fromXml(File metadataFile) throws IOException, ParserConfigurationException, SAXException {
-        final DomXMLReader xmlReader = new DomXMLReader(buildDocument(metadataFile));
-        return (ComponentMetadata) new XStream().fromXML(xmlReader);
-    }
-
-    public static ComponentMetadata fromXml(String xml) {
-        return (ComponentMetadata) new XStream().fromXML(xml);
-    }
-
-    private static Document buildDocument(File file) throws ParserConfigurationException, IOException, SAXException {
-        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
-        Document document = documentBuilder.parse(file);
-        return document;
-    }
-
-    public InterfaceMetadata getInterfaceMetadataForName(final String name) {
-        return (InterfaceMetadata) interfaces.get(name);
-    }
-
-    public int numInterfaces() {
-        return interfaces.size();
-    }
-
-    public void addInterface(InterfaceMetadata interfaceMetadata) {
-        interfaces.put(interfaceMetadata.getFullyQualifiedName(), interfaceMetadata);
-    }
-
-    public Iterator getInterfaces() {
-        return interfaces.values().iterator();
-    }
-
-    public String toXml() {
-        return ((new XStream()).toXML(this));
-    }
-
-    public boolean equals(Object o) {
-        if (!(o instanceof ComponentMetadata)) {
-            return false;
-        }
-        ComponentMetadata rhs = (ComponentMetadata) o;
-        return new EqualsBuilder()
-                .append(interfaces, rhs.interfaces)
-                .isEquals();
-    }
-}
</pre></div>
<hr /><a name="file37" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/ant/metadata<br /></span>
<div class="fileheader" id="removed"><big><b>InterfaceMetadata.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N InterfaceMetadata.java
--- InterfaceMetadata.java	9 Nov 2003 14:00:47 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,70 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant.metadata;
-
-import org.apache.commons.lang.builder.EqualsBuilder;
-
-public class InterfaceMetadata {
-    private String packageName;
-    private String name;
-    private String javadoc;
-    private String source;
-    private boolean isClass = false;
-
-    public InterfaceMetadata(String packageName, String name, String javadoc, String source, boolean isClass) {
-        this.packageName = packageName;
-        this.name = name;
-        this.javadoc = javadoc;
-        this.source = source;
-        this.isClass = isClass;
-    }
-
-    public String getPackageName() {
-        return packageName;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getFullyQualifiedName() {
-        return packageName + "." + name;
-    }
-
-    public String getJavadoc() {
-        return javadoc;
-    }
-
-    public String getShortDescription() {
-        return firstLine(javadoc);
-    }
-
-    private String firstLine(String javadoc) {
-        String result = javadoc;
-        int indexOfFirstFullStop = javadoc.indexOf(".");
-        if (indexOfFirstFullStop != -1) {
-            result = javadoc.substring(0, indexOfFirstFullStop + 1);  //+1 to include the full stop itself.
-        }
-        return result;
-    }
-
-    public String getSource() {
-        return source;
-    }
-
-    public boolean isClass() {
-        return isClass;
-    }
-
-    public boolean equals(Object o) {
-        if (!(o instanceof InterfaceMetadata)) {
-            return false;
-        }
-        InterfaceMetadata rhs = (InterfaceMetadata) o;
-        return new EqualsBuilder()
-                .append(packageName, rhs.packageName)
-                .append(name, rhs.name)
-                .append(javadoc, rhs.javadoc)
-                .append(source, rhs.source)
-                .append(isClass, rhs.isClass)
-                .isEquals();
-    }
-}
</pre></div>
<hr /><a name="file38" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/prevayler<br /></span>
<div class="fileheader" id="removed"><big><b>PrevaylerBean.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N PrevaylerBean.java
--- PrevaylerBean.java	16 Oct 2003 19:00:41 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.prevayler;
-
-import org.prevayler.PrevalentSystem;
-import org.prevayler.Prevayler;
-import org.prevayler.Command;
-import org.prevayler.implementation.SnapshotPrevayler;
-import org.componenthaus.repository.api.ComponentRepository;
-
-import java.io.IOException;
-import java.io.Serializable;
-
-public class PrevaylerBean implements Prevayler {
-    private Prevayler delegate = null;
-
-    public PrevaylerBean(final ComponentRepository repo) throws ClassNotFoundException, IOException {
-        delegate = new SnapshotPrevayler((PrevalentSystem) repo);
-    }
-
-    public PrevalentSystem system() {
-        return delegate.system();
-    }
-
-    public Serializable executeCommand(Command command) throws Exception {
-        return delegate.executeCommand(command);
-    }
-}
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file39" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/api<br /></span>
<div class="fileheader" id="removed"><big><b>Component.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N Component.java
--- Component.java	9 Nov 2003 14:00:47 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.api;
-
-import java.util.Collection;
-
-/**
- * Represents a component as stored in the repository.
- *
- * @version 1.0
- * @author Mike Hogan
- */
-public interface Component extends Service {
-    //Do not pull id up into service because a service in an abstract sense does not have an id.  The id is a system level thing.
-    String getId();
-    void setId(final String id);
-    String getServiceInterface();
-}
</pre></div>
<hr /><a name="file40" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/api<br /></span>
<div class="fileheader" id="removed"><big><b>ComponentRepository.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N ComponentRepository.java
--- ComponentRepository.java	9 Nov 2003 14:00:47 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.api;
-
-import java.io.File;
-import java.util.Collection;
-
-public interface ComponentRepository {
-    public String add(Component component);
-    Collection listComponents();
-    Component getComponent(String id);
-    void registerDownloadable(String componentId, File downloadable);
-    File getDownloadable(String componentId);
-
-    public static interface Monitor {
-        public void componentAdded(final Component component);
-    }
-}
</pre></div>
<hr /><a name="file41" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/api<br /></span>
<div class="fileheader" id="removed"><big><b>Downloadable.java</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N Downloadable.java
--- Downloadable.java	21 Sep 2003 13:41:57 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,7 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.api;
-
-import java.io.File;
-
-public interface Downloadable {
-    File getLocationOnDisk();
-}
</pre></div>
<hr /><a name="file42" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/api<br /></span>
<div class="fileheader" id="removed"><big><b>RepositoryImpl.java</b></big> <small id="info">removed after 1.6</small></div>
<pre class="diff"><small id="info">diff -N RepositoryImpl.java
--- RepositoryImpl.java	9 Nov 2003 14:00:47 -0000	1.6
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.api;
-
-import org.prevayler.implementation.AbstractPrevalentSystem;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-public class RepositoryImpl extends AbstractPrevalentSystem implements ComponentRepository {
-    private final Map components;
-    private final Map downloadables;
-    private final ComponentRepository.Monitor monitor;
-
-    public RepositoryImpl(final ComponentRepository.Monitor monitor) {
-        components = new HashMap();
-        downloadables = new HashMap();
-        this.monitor = monitor;
-    }
-
-    public String add(Component component) {
-        assert component != null;
-        assert component.getId() == null; //I'm in charge of ids
-        component.setId(""+components.size());
-        components.put(component.getId(),component);
-        monitor.componentAdded(component);
-        return component.getId();
-    }
-
-    public Collection listComponents() {
-        return Collections.unmodifiableCollection(components.values());
-    }
-
-    public Component getComponent(String id) {
-        return (Component) components.get(id);
-    }
-
-    public void registerDownloadable(String componentId, File downloadable) {
-        downloadables.put(componentId,downloadable);
-    }
-
-    public File getDownloadable(String componentId) {
-        return (File) downloadables.get(componentId);
-    }
-}
-
</pre></div>
<hr /><a name="file43" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/api<br /></span>
<div class="fileheader" id="removed"><big><b>Service.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N Service.java
--- Service.java	10 Nov 2003 20:21:41 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.api;
-
-import java.util.List;
-
-/**
- * This represents some nameable, versioned thing with authors and a description,
- * that exposes a service.  In other words, either a service specification or a service
- * implementation (both spec and impl have these things in common).
- */
-public interface Service {
-    String getName();
-    String getVersion();
-    String getFullyQualifiedName();
-
-    List getAuthors();
-    String getOneLineDescription();
-    String getFullDescription();
-}
</pre></div>
<hr /><a name="file44" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/impl<br /></span>
<div class="fileheader" id="removed"><big><b>CategoryFactory.java</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N CategoryFactory.java
--- CategoryFactory.java	21 Sep 2003 13:41:57 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,4 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.impl;
-
-public class CategoryFactory {
-}
</pre></div>
<hr /><a name="file45" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/impl<br /></span>
<div class="fileheader" id="removed"><big><b>ComponentFactory.java</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N ComponentFactory.java
--- ComponentFactory.java	21 Sep 2003 13:41:57 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.impl;
-
-import org.componenthaus.repository.api.Component;
-
-import java.util.List;
-
-public class ComponentFactory {
-    public Component createComponent(String fullyQualifiedName, String version, List authors, String oneLineDescription, String fullDescription, String serviceInterface) {
-        return new ComponentImpl(fullyQualifiedName,version,authors,oneLineDescription,fullDescription,serviceInterface);
-    }
-}
</pre></div>
<hr /><a name="file46" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/impl<br /></span>
<div class="fileheader" id="removed"><big><b>ComponentImpl.java</b></big> <small id="info">removed after 1.4</small></div>
<pre class="diff"><small id="info">diff -N ComponentImpl.java
--- ComponentImpl.java	9 Nov 2003 14:00:48 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.impl;
-
-import org.componenthaus.repository.api.Component;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-public class ComponentImpl extends ServiceImpl implements Component, Serializable {
-    private String id = null;
-    private String serviceInterface = null;
-    private final Collection implementations;
-
-    public ComponentImpl() {
-        this(null,null,Collections.EMPTY_LIST,null,null,null);
-    }
-
-    public ComponentImpl(String fullyQualifiedName, String version, List authors, String oneLineDescription, String fullDescription,String serviceInterface) {
-        super(fullyQualifiedName,version,authors,oneLineDescription,fullDescription);
-        this.serviceInterface = serviceInterface;
-        implementations = new ArrayList();
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getServiceInterface() {
-        return serviceInterface;
-    }
-}
</pre></div>
<hr /><a name="file47" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/impl<br /></span>
<div class="fileheader" id="removed"><big><b>ServiceImpl.java</b></big> <small id="info">removed after 1.4</small></div>
<pre class="diff"><small id="info">diff -N ServiceImpl.java
--- ServiceImpl.java	10 Nov 2003 20:21:42 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,101 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.impl;
-
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.componenthaus.repository.api.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-
-class ServiceImpl implements Service {
-    private String name = null;
-    private String version = null;
-    private String fullyQualifiedName = null;
-    private List authors = null;
-    private String oneLineDescription = null;
-    private String fullDescription = null;
-
-    public ServiceImpl() {
-        authors = new ArrayList();
-    }
-
-    ServiceImpl(String fullyQualifiedName,String version,List authors,String oneLineDescription,String fullDescription) {
-        this.fullyQualifiedName = fullyQualifiedName;
-        this.version = version;
-        this.authors = authors;
-        this.oneLineDescription = oneLineDescription;
-        this.fullDescription = fullDescription;
-        this.name = extractName(fullyQualifiedName);
-    }
-
-    private static String extractName(String fullyQualifiedName) {
-        String result = fullyQualifiedName;
-        if ( fullyQualifiedName != null ) {
-            final int lastDot = fullyQualifiedName.lastIndexOf(".");
-            result = fullyQualifiedName.substring(lastDot + 1);
-        }
-        return result;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getVersion() {
-        return version;
-    }
-
-    public String getFullyQualifiedName() {
-        return fullyQualifiedName;
-    }
-
-    public List getAuthors() {
-        return authors;
-    }
-
-    public String getOneLineDescription() {
-        return oneLineDescription;
-    }
-
-    public String getFullDescription() {
-        return fullDescription;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public void setVersion(String version) {
-        this.version = version;
-    }
-
-    public void setFullyQualifiedName(String fullyQualifiedName) {
-        this.fullyQualifiedName = fullyQualifiedName;
-    }
-
-    public void setAuthors(List authors) {
-        this.authors = authors;
-    }
-
-    public void setOneLineDescription(String oneLineDescription) {
-        this.oneLineDescription = oneLineDescription;
-    }
-
-    public void setFullDescription(String fullDescription) {
-        this.fullDescription = fullDescription;
-    }
-
-    public boolean equals(Object o) {
-        if (!(o instanceof ServiceImpl)) {
-            return false;
-        }
-        ServiceImpl rhs = (ServiceImpl) o;
-        return new EqualsBuilder()
-                .append(name, rhs.name)
-                .append(version, rhs.version)
-                .append(fullyQualifiedName, rhs.fullyQualifiedName)
-                .append(authors, rhs.authors)
-                .append(oneLineDescription, rhs.oneLineDescription)
-                .append(fullDescription, rhs.fullDescription)
-                .isEquals();
-    }
-}
</pre></div>
<hr /><a name="file48" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/services<br /></span>
<div class="fileheader" id="removed"><big><b>CommandRegistry.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N CommandRegistry.java
--- CommandRegistry.java	26 Oct 2003 14:43:08 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.services;
-
-import org.componenthaus.repository.api.Component;
-import org.prevayler.Command;
-
-import java.io.File;
-
-public interface CommandRegistry {
-    Command createSubmitComponentCommand(Component component);
-    Command createRegisterDownloadableCommand(String componentId, File downloadable);
-}
</pre></div>
<hr /><a name="file49" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/services<br /></span>
<div class="fileheader" id="removed"><big><b>CommandRegistryImpl.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N CommandRegistryImpl.java
--- CommandRegistryImpl.java	26 Oct 2003 14:43:08 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.services;
-
-import org.prevayler.Command;
-import org.componenthaus.repository.api.Component;
-
-import java.io.File;
-
-public class CommandRegistryImpl implements CommandRegistry {
-    public Command createSubmitComponentCommand(Component component) {
-        return new SubmitComponentCommand(component);
-    }
-
-    public Command createRegisterDownloadableCommand(String componentId, File downloadable) {
-        return new RegisterDownloadableComponentCommand(componentId,downloadable);
-    }
-}
</pre></div>
<hr /><a name="file50" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/services<br /></span>
<div class="fileheader" id="removed"><big><b>RegisterDownloadableComponentCommand.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N RegisterDownloadableComponentCommand.java
--- RegisterDownloadableComponentCommand.java	26 Oct 2003 13:46:41 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.services;
-
-import org.prevayler.Command;
-import org.prevayler.PrevalentSystem;
-import org.componenthaus.repository.api.ComponentRepository;
-
-import java.io.Serializable;
-import java.io.File;
-
-class RegisterDownloadableComponentCommand implements Command {
-    private final String componentId;
-    private final File downloadable;
-
-    public RegisterDownloadableComponentCommand(String componentId, File downloadable) {
-        this.componentId = componentId;
-        this.downloadable = downloadable;
-    }
-
-    public Serializable execute(PrevalentSystem prevalentSystem) throws Exception {
-        final ComponentRepository repository = (ComponentRepository) prevalentSystem;
-        repository.registerDownloadable(componentId,downloadable);
-        return null;
-    }
-}
</pre></div>
<hr /><a name="file51" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/repository/services<br /></span>
<div class="fileheader" id="removed"><big><b>SubmitComponentCommand.java</b></big> <small id="info">removed after 1.4</small></div>
<pre class="diff"><small id="info">diff -N SubmitComponentCommand.java
--- SubmitComponentCommand.java	26 Oct 2003 14:43:08 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.services;
-
-import org.prevayler.Command;
-import org.prevayler.PrevalentSystem;
-import org.componenthaus.repository.api.Component;
-import org.componenthaus.repository.api.ComponentRepository;
-
-import java.io.Serializable;
-
-class SubmitComponentCommand implements Command {
-    private final Component component;
-
-    public SubmitComponentCommand(final Component component) {
-        this.component = component;
-    }
-
-    public Serializable execute(PrevalentSystem prevalentSystem) throws Exception {
-        final ComponentRepository repository = (ComponentRepository) prevalentSystem;
-        final String result = repository.add(component);
-        return result;
-    }
-}
</pre></div>
<hr /><a name="file52" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/search<br /></span>
<div class="fileheader" id="removed"><big><b>AddComponentMonitor.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N AddComponentMonitor.java
--- AddComponentMonitor.java	16 Oct 2003 19:00:42 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.search;
-
-import org.componenthaus.repository.api.Component;
-import org.componenthaus.repository.api.ComponentRepository;
-
-public class AddComponentMonitor implements ComponentRepository.Monitor {
-    private final SearchService searchService;
-
-    public AddComponentMonitor(SearchService searchService) {
-        this.searchService = searchService;
-    }
-
-    public void componentAdded(final Component component) {
-        try {
-            searchService.index(component.getId(),component.getFullDescription());
-        } catch (SearchService.Exception e) {
-            throw new RuntimeException("Failed to add index component " + component,e);
-        }
-    }
-}
</pre></div>
<hr /><a name="file53" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/search<br /></span>
<div class="fileheader" id="removed"><big><b>LuceneSearchService.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N LuceneSearchService.java
--- LuceneSearchService.java	3 Nov 2003 21:15:29 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,78 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.search;
-
-import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.queryParser.QueryParser;
-import org.apache.lucene.search.Hits;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.Searcher;
-import org.apache.lucene.search.HitCollector;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-public class LuceneSearchService implements SearchService {
-    static final String ID_FIELD_NAME = "id";
-    static final String CONTENTS_FIELD_NAME = "contents";
-    private static final String INDEX_FILE_PATH = "index";
-
-    private final LuceneObjectFactory luceneObjectFactory;
-
-    public LuceneSearchService(LuceneObjectFactory luceneObjectFactory) {
-        this.luceneObjectFactory = luceneObjectFactory;
-    }
-
-    public void index(String componentId, String componentDescription) throws SearchService.Exception {
-        IndexWriter writer = null;
-        try {
-            writer = luceneObjectFactory.createIndexWriter(INDEX_FILE_PATH, new StandardAnalyzer(), !indexExists());
-            final Document document = new Document();
-            document.add(Field.Text(ID_FIELD_NAME, componentId));
-            document.add(Field.Text(CONTENTS_FIELD_NAME, componentDescription));
-            writer.addDocument(document);
-            writer.optimize();
-            writer.close();
-        } catch (IOException e) {
-            throw new SearchService.Exception("Exception updating Lucene index", e);
-        }
-    }
-
-    private boolean indexExists() {
-        return new File(INDEX_FILE_PATH).exists();
-    }
-
-    //This is tough to unit test as Hits is final, and the constructor is package protected
-    public int search(final String query, int beginIndex, final int endIndex, final List collector) throws SearchService.Exception {
-        int numHits = 0;
-        try {
-            final Searcher searcher = new IndexSearcher(INDEX_FILE_PATH);
-            final Analyzer analyzer = new StandardAnalyzer();
-            final Query q = QueryParser.parse(query, CONTENTS_FIELD_NAME, analyzer);
-            final Hits hits = searcher.search(q);
-            numHits = hits.length();
-            while (beginIndex &lt;= endIndex &amp;&amp; beginIndex &lt; numHits) {
-                final Document doc = hits.doc(beginIndex++);
-                collector.add(doc.get(ID_FIELD_NAME));
-            }
-        } catch (java.lang.Exception e) {
-            throw new SearchService.Exception("Exception performing Lucene search",e);
-        }
-        return numHits;
-    }
-
-    static interface LuceneObjectFactory {
-        IndexWriter createIndexWriter(String indexFilePath, Analyzer analyzer, boolean createIndex) throws IOException;
-    }
-
-    public static final class DefaultLuceneObjectFactory implements LuceneObjectFactory {
-        public IndexWriter createIndexWriter(String indexFilePath, Analyzer analyzer, boolean createIndex) throws IOException {
-            return new IndexWriter(indexFilePath,analyzer,createIndex);
-        }
-    }
-
-}
</pre></div>
<hr /><a name="file54" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/search<br /></span>
<div class="fileheader" id="removed"><big><b>SearchService.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N SearchService.java
--- SearchService.java	5 Oct 2003 12:26:39 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.search;
-
-import java.util.List;
-
-public interface SearchService {
-    void index(String componentId, String componentDescription) throws Exception;
-
-    /**
-     * Perform a query using the supplied query.  Return the results in the
-     * supplied collector.  The results must be Strings containing the component
-     * id of each match.  Only collection matches beginning at beginIndex and ending
-     * at endIndex.
-     *
-     * @return the total number of matches for the query (not the number returned in collector).
-     */
-    int search(String query, int beginIndex, int endIndex, List collector) throws Exception;
-
-    public static final class Exception extends java.lang.Exception {
-        public Exception(String message, Throwable cause) {
-            super(message, cause);
-        }
-    }
-}
</pre></div>
<hr /><a name="file55" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/spring<br /></span>
<div class="fileheader" id="removed"><big><b>AbstractPicoApplicationContext.java</b></big> <small id="info">removed after 1.6</small></div>
<pre class="diff"><small id="info">diff -N AbstractPicoApplicationContext.java
--- AbstractPicoApplicationContext.java	10 Nov 2003 20:21:42 -0000	1.6
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,197 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.spring;
-
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.defaults.DefaultPicoContainer;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.BeanFactory;
-import org.springframework.beans.factory.BeanNotOfRequiredTypeException;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextException;
-import org.springframework.context.ApplicationEvent;
-import org.springframework.context.ApplicationEventMulticaster;
-import org.springframework.context.ContextOptions;
-import org.springframework.context.MessageSource;
-import org.springframework.context.MessageSourceResolvable;
-import org.springframework.context.NoSuchMessageException;
-import org.springframework.context.event.ApplicationEventMulticasterImpl;
-import org.springframework.context.support.StaticMessageSource;
-import org.springframework.web.context.WebApplicationContext;
-import org.springframework.ui.context.Theme;
-
-import javax.servlet.ServletContext;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.HashMap;
-
-public abstract class AbstractPicoApplicationContext implements WebApplicationContext {
-    private ApplicationEventMulticaster eventMulticaster = new ApplicationEventMulticasterImpl();
-
-    private ApplicationContext parent;
-    private BeanFactory parentBeanFactory = null;
-    private long startupTime = 0;
-    protected MutablePicoContainer pico = new DefaultPicoContainer();
-    private MessageSource messageSource = new StaticMessageSource();
-    private ContextOptions contextOptions = new ContextOptions();
-    protected ServletContext servletContext = null;
-    private Map sharedObjects = new HashMap();
-
-    public AbstractPicoApplicationContext (ApplicationContext parent, String nameSpace) {
-        this.parent = parent;
-        this.startupTime = System.currentTimeMillis();
-    }
-
-    public ApplicationContext getParent() {
-        return parent;
-    }
-
-    public String getDisplayName() {
-        return "Display name";
-    }
-
-    public long getStartupDate() {
-        return startupTime;
-    }
-
-    public ContextOptions getOptions() {
-        return contextOptions;
-    }
-
-    public void refresh() throws ApplicationContextException, BeansException {
-        contextOptions.setReloadable(false);
-        registerBeans();
-        this.startupTime = System.currentTimeMillis();
-        messageSource = new StaticMessageSource();
-    }
-
-    protected abstract void registerBeans() throws BeansException;
-
-    public void close() throws ApplicationContextException {
-    }
-
-    public void publishEvent(ApplicationEvent event) {
-        this.eventMulticaster.onApplicationEvent(event);
-    }
-
-    public InputStream getResourceAsStream(String location) throws IOException {
-        try {
-			// try URL
-			URL url = new URL(location);
-			return url.openStream();
-		} catch (MalformedURLException ex) {
-			// no URL -&gt; try (file) path
-			InputStream in = getResourceByPath(location);
-			if (in == null) {
-				throw new FileNotFoundException("Location '" + location + "' isn't a URL and cannot be interpreted as (file) path");
-			}
-			return in;
-		}
-    }
-
-    protected InputStream getResourceByPath(String path) throws IOException {
-		return new FileInputStream(path);
-	}
-
-    public String getResourceBasePath() {
-        return (new File("")).getAbsolutePath() + File.separatorChar;
-    }
-
-    public String getMessage(String code, Object args[], String defaultMessage, Locale locale) {
-		return this.messageSource.getMessage(code, args, defaultMessage, locale);
-	}
-
-	public String getMessage(String code, Object args[], Locale locale) throws NoSuchMessageException {
-		return this.messageSource.getMessage(code, args, locale);
-	}
-
-	public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException {
-		return this.messageSource.getMessage(resolvable, locale);
-	}
-
-    public int getBeanDefinitionCount() {
-        return pico.getComponentKeys().size();
-    }
-
-    public String[] getBeanDefinitionNames() {
-        return toStringArray(pico.getComponentKeys());
-    }
-
-    public String[] getBeanDefinitionNames(Class type) {
-        final Collection names = new ArrayList();
-        for(Iterator i=pico.getComponentKeys().iterator();i.hasNext();) {
-            final Object key = i.next();
-            if ( type.isAssignableFrom(pico.getComponentInstance(key).getClass())) {
-                names.add(key);
-            }
-        }
-        return toStringArray(names);
-    }
-
-    private String[] toStringArray(Collection strings) {
-        final String []result = new String[strings.size()];
-        return (String[]) strings.toArray(result);
-    }
-
-    public Object getBean(String name) throws BeansException {
-        final Object instance = pico.getComponentInstance(name);
-        if ( instance == null ) {
-            throw new NoSuchBeanDefinitionException(name,"not registered");
-        }
-        return instance;
-    }
-
-    public Object getBean(String name, Class requiredType) throws BeansException {
-        final Object componentInstance = pico.getComponentInstance(name);
-        if ( componentInstance == null ) {
-            throw new NoSuchBeanDefinitionException(name,"not available");
-        }
-        if ( ! requiredType.isAssignableFrom(componentInstance.getClass())) {
-            throw new BeanNotOfRequiredTypeException(name, requiredType,componentInstance);
-        }
-        return componentInstance;
-    }
-
-    public boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
-        return true;
-    }
-
-    public String[] getAliases(String name) throws NoSuchBeanDefinitionException {
-        return new String[0];
-    }
-
-    public BeanFactory getParentBeanFactory() {
-        return parentBeanFactory;
-    }
-
-    public synchronized void shareObject(String key, Object o) {
-		this.sharedObjects.put(key, o);
-	}
-
-    public Object sharedObject(String key) {
-        return sharedObjects.get(key);
-    }
-
-    public Object removeSharedObject(String s) {
-        return sharedObjects.remove(s);
-    }
-
-    public abstract void setServletContext(ServletContext servletContext) throws ApplicationContextException;
-
-    public ServletContext getServletContext() {
-        return servletContext;
-    }
-
-    public Theme getTheme(String themeName) {
-        return null;
-    }
-}
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file56" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/spring<br /></span>
<div class="fileheader" id="removed"><big><b>PicoApplicationContext.java</b></big> <small id="info">removed after 1.9</small></div>
<pre class="diff"><small id="info">diff -N PicoApplicationContext.java
--- PicoApplicationContext.java	10 Nov 2003 20:21:42 -0000	1.9
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,144 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.spring;
-
-import org.componenthaus.ant.ClassAbbreviatorImpl;
-import org.componenthaus.ant.JavadocFormatter;
-import org.componenthaus.ant.JavadocFormatterImpl;
-import org.componenthaus.ant.LineIndenterImpl;
-import org.componenthaus.prevayler.PrevaylerBean;
-import org.componenthaus.repository.api.ComponentRepository;
-import org.componenthaus.repository.api.RepositoryImpl;
-import org.componenthaus.repository.impl.ComponentFactory;
-import org.componenthaus.repository.services.CommandRegistryImpl;
-import org.componenthaus.search.AddComponentMonitor;
-import org.componenthaus.search.LuceneSearchService;
-import org.componenthaus.search.SearchService;
-import org.componenthaus.usecases.downloadcomponent.DownloadComponentController;
-import org.componenthaus.usecases.listcomponents.ListComponentsController;
-import org.componenthaus.usecases.searchcomponents.SearchComponentsController;
-import org.componenthaus.usecases.showcomponent.ShowComponentController;
-import org.componenthaus.usecases.submitcomponent.DefaultCarSubmissionManager;
-import org.componenthaus.usecases.submitcomponent.DefaultComponentSubmissionManager;
-import org.componenthaus.usecases.submitcomponent.MetadataConverterImpl;
-import org.componenthaus.usecases.submitcomponent.SubmitComponentController;
-import org.componenthaus.usecases.welcomeuser.WelcomeUserController;
-import org.componenthaus.util.file.FileManager;
-import org.componenthaus.util.file.FileManagerImpl;
-import org.picocontainer.Parameter;
-import org.picocontainer.defaults.ConstantParameter;
-import org.prevayler.Prevayler;
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextException;
-import org.springframework.web.multipart.commons.CommonsMultipartResolver;
-import org.springframework.web.servlet.DispatcherServlet;
-import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
-import org.springframework.web.servlet.view.ResourceBundleViewResolver;
-import org.springframework.web.servlet.view.tiles.TilesConfigurer;
-
-import javax.servlet.ServletContext;
-import java.util.HashMap;
-import java.util.Map;
-
-//TODO Return real views instead of view names, coming from a properties file.
-
-public class PicoApplicationContext extends AbstractPicoApplicationContext {
-    private static final String VIEW_FILE = "views";
-
-    private final Map urlMap;
-
-    public PicoApplicationContext(ApplicationContext parent, String nameSpace) {
-        super(parent, nameSpace);
-        urlMap = new HashMap();
-    }
-
-    public void setServletContext(ServletContext servletContext) throws ApplicationContextException {
-        this.servletContext = servletContext;
-        registerBeans();
-    }
-
-    protected void registerBeans() throws BeansException {
-        assert servletContext != null : "Servlet Context cannot be null"; //Must be called after setServletContext()
-
-        addController(WelcomeUserController.class, "/welcome.htm");
-        addController(ListComponentsController.class, "/listComponents.action");
-        addController(ShowComponentController.class, "/componentDetails.action");
-        addController(DownloadComponentController.class, "/downloadComponent.action");
-
-        addController(SubmitComponentController.class, "/submitComponent.action");
-        pico.registerComponentInstance(SubmitComponentController.ViewConfiguration.class, new SubmitComponentController.ViewConfiguration(){
-            public String getFormView() {
-                return "submitComponentView";
-            }
-
-            public String getSuccessView() {
-                return "welcomeView";
-            }
-        });
-
-        addController(SearchComponentsController.class, "/searchComponents.action");
-        pico.registerComponentInstance(SearchComponentsController.ViewConfiguration.class, new SearchComponentsController.ViewConfiguration() {
-            //Return the name of the form to show when the controller is first invoked.
-            public String getFormView() {
-                return "searchCriteriaView";
-            }
-        });
-
-        pico.registerComponentImplementation(SearchService.class, LuceneSearchService.class);
-        pico.registerComponentImplementation(ComponentRepository.Monitor.class, AddComponentMonitor.class); //Will need multiples here soon
-        pico.registerComponentImplementation(ComponentRepository.class, RepositoryImpl.class);
-        //pico.registerComponentImplementation(PrevalentSystem.class, RepositoryImpl.class); //This causes a second instance of repository to exist.  Yuck.
-        pico.registerComponentImplementation(FileManager.class, FileManagerImpl.class);
-        pico.registerComponentImplementation(ComponentFactory.class);
-        pico.registerComponentImplementation(Prevayler.class, PrevaylerBean.class);
-        pico.registerComponentImplementation(DefaultCarSubmissionManager.class);
-        pico.registerComponentImplementation(DefaultCarSubmissionManager.NullSubmissionMonitor.class);
-        pico.registerComponentImplementation(CommandRegistryImpl.class);
-        pico.registerComponentImplementation(LuceneSearchService.DefaultLuceneObjectFactory.class);
-        pico.registerComponentImplementation(MetadataConverterImpl.class);
-        pico.registerComponentImplementation(ClassAbbreviatorImpl.class);
-        pico.registerComponentImplementation(LineIndenterImpl.class);
-        pico.registerComponentImplementation(DefaultComponentSubmissionManager.class);
-        pico.registerComponentImplementation(JavadocFormatter.class, JavadocFormatterImpl.class, new Parameter[]{new ConstantParameter(new Integer(80))});
-
-        addSpringStuff();
-        //This must be done last, because it reads things from Pico
-        final SimpleUrlHandlerMapping urlMapping = createUrlMapping();
-        pico.registerComponentInstance("urlMapping",urlMapping);
-        urlMapping.setApplicationContext(this);
-    }
-
-    private void addController(Class controllerClass, String urlMapping) {
-        addController(controllerClass, new String[]{urlMapping});
-    }
-
-    protected void addSpringStuff() {
-        ResourceBundleViewResolver viewResolver = new ResourceBundleViewResolver();
-        viewResolver.setBasename(VIEW_FILE);
-        TilesConfigurer tilesConfigurer = new TilesConfigurer();
-        tilesConfigurer.setDefinitions(new String[]{"/WEB-INF/defs/definitions.xml"});
-        pico.registerComponentInstance("tilesConfigurer",tilesConfigurer);
-        pico.registerComponentInstance(DispatcherServlet.VIEW_RESOLVER_BEAN_NAME,viewResolver);
-        pico.registerComponentImplementation(DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME,CommonsMultipartResolver.class);
-        viewResolver.setApplicationContext(this);
-        tilesConfigurer.setApplicationContext(this);
-    }
-
-    private SimpleUrlHandlerMapping createUrlMapping() {
-        assert urlMap != null &amp;&amp; urlMap.size() &gt; 0;
-        final SimpleUrlHandlerMapping result = new SimpleUrlHandlerMapping();
-        result.setUrlMap(urlMap);
-        return result;
-    }
-
-    private void addController(Class controllerClass, String[] urlMappings) {
-        final String controllerName = controllerClass.getName();
-        assert pico.hasComponent(controllerName) == false : controllerName;
-        assert urlMappings.length &gt; 0;
-
-        pico.registerComponentImplementation(controllerName,controllerClass);
-        for(int i=0;i&lt;urlMappings.length;i++) {
-            assert !urlMap.containsKey(urlMappings[i]) : urlMappings[i];
-            urlMap.put(urlMappings[i],controllerName);
-        }
-    }
-}
</pre></div>
<hr /><a name="file57" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/common<br /></span>
<div class="fileheader" id="removed"><big><b>MissingRequestParameterServletException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MissingRequestParameterServletException.java
--- MissingRequestParameterServletException.java	28 Oct 2003 19:36:06 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.common;
-
-import javax.servlet.ServletException;
-
-public class MissingRequestParameterServletException extends ServletException {
-    private final String parameterName;
-
-    public MissingRequestParameterServletException(String parameterName) {
-        super();
-        this.parameterName = parameterName;
-    }
-
-    public String getParameterName() {
-        return parameterName;
-    }
-}
</pre></div>
<hr /><a name="file58" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/downloadcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>DownloadComponentController.java</b></big> <small id="info">removed after 1.5</small></div>
<pre class="diff"><small id="info">diff -N DownloadComponentController.java
--- DownloadComponentController.java	28 Oct 2003 19:36:06 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.downloadcomponent;
-
-import org.componenthaus.repository.api.ComponentRepository;
-import org.componenthaus.util.file.FileManager;
-import org.componenthaus.usecases.common.MissingRequestParameterServletException;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.AbstractController;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-
-public class DownloadComponentController extends AbstractController {
-    private final FileManager fileManager;
-    private final ComponentRepository repository;
-    public static final String DOWNLOAD_ID_PARAMETER_NAME = "id";
-    public static final String CONTENT_TYPE = "application/x-java-archive";
-
-    public DownloadComponentController(FileManager fileManager, ComponentRepository repository) {
-        this.fileManager = fileManager;
-        this.repository = repository;
-    }
-
-    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-        final String downloadId = request.getParameter(DOWNLOAD_ID_PARAMETER_NAME);
-        if ( downloadId == null ) {
-            throw new MissingRequestParameterServletException(DOWNLOAD_ID_PARAMETER_NAME);
-        }
-        final File f = repository.getDownloadable(downloadId);
-        if ( f == null ) {
-            throw new NoSuchDownloadableServletException(downloadId);
-        }
-        final OutputStream out = new BufferedOutputStream(response.getOutputStream());
-
-
-        response.setContentType(CONTENT_TYPE);
-        response.setContentLength((int) f.length());
-        fileManager.copy(f,out);
-
-        out.flush();
-        out.close();
-
-        return null;
-    }
-
-}
</pre></div>
<hr /><a name="file59" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/downloadcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>NoSuchDownloadableServletException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N NoSuchDownloadableServletException.java
--- NoSuchDownloadableServletException.java	26 Oct 2003 19:01:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.downloadcomponent;
-
-import javax.servlet.ServletException;
-
-public class NoSuchDownloadableServletException extends ServletException {
-    private final String downloadableId;
-
-    public NoSuchDownloadableServletException(String parameterName) {
-        super();
-        this.downloadableId = parameterName;
-    }
-
-    public String getDownloadableId() {
-        return downloadableId;
-    }
-}
</pre></div>
<hr /><a name="file60" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/listcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>ListComponentsController.java</b></big> <small id="info">removed after 1.4</small></div>
<pre class="diff"><small id="info">diff -N ListComponentsController.java
--- ListComponentsController.java	10 Nov 2003 20:21:42 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,25 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.listcomponents;
-
-import org.componenthaus.repository.api.ComponentRepository;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.AbstractController;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.Collection;
-
-public class ListComponentsController extends AbstractController {
-    private final ComponentRepository repository;
-    final static String MODEL_NAME = "components";
-
-    public ListComponentsController(ComponentRepository repository) {
-        this.repository = repository;
-    }
-
-    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-        final Collection modelObject = repository.listComponents();
-        return new ModelAndView("listComponentsView",MODEL_NAME,modelObject);
-    }
-}
</pre></div>
<hr /><a name="file61" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/searchcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>SearchComponentsController.java</b></big> <small id="info">removed after 1.6</small></div>
<pre class="diff"><small id="info">diff -N SearchComponentsController.java
--- SearchComponentsController.java	28 Oct 2003 19:36:06 -0000	1.6
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,135 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.searchcomponents;
-
-import org.componenthaus.repository.api.ComponentRepository;
-import org.componenthaus.search.SearchService;
-import org.componenthaus.usecases.common.MissingRequestParameterServletException;
-import org.springframework.validation.BindException;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-public class SearchComponentsController extends SimpleFormController {
-    static final String QUERY_PARAMETER_NAME = "query";
-    static final String BEGIN_INDEX_PARAMETER_NAME = "beginIndex";
-    static final String END_INDEX_PARAMETER_NAME = "endIndex";
-    static final String RESULTS_BEAN_NAME = "results";
-    static final String TOTAL_MATCHES_BEAN_NAME = "totalMatches";
-    static final String PAGES_BEAN_NAME = "pages";
-    static final String CURRENT_PAGE_BEAN_NAME = "currentPage";
-    static final int HITS_PER_PAGE = 10;
-
-    private final SearchService searchService;
-    private final ComponentRepository repository;
-
-    public SearchComponentsController(final ViewConfiguration viewConfiguration,
-                                      final SearchService searchService,
-                                      final ComponentRepository repository) {
-        setFormView(viewConfiguration.getFormView());
-        setCommandClass(Object.class);
-        this.searchService = searchService;
-        this.repository = repository;
-    }
-
-    protected boolean isFormSubmission(HttpServletRequest request) {
-		return "POST".equals(request.getMethod()) || requestHasSearchParameters(request);
-	}
-
-    private boolean requestHasSearchParameters(HttpServletRequest request) {
-        return  !isEmpty(request.getParameter(QUERY_PARAMETER_NAME)) &amp;&amp;
-                !isEmpty(request.getParameter(BEGIN_INDEX_PARAMETER_NAME)) &amp;&amp;
-                !isEmpty(request.getParameter(END_INDEX_PARAMETER_NAME));
-    }
-
-    protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object o, BindException e) throws ServletException, IOException {
-        final String query = request.getParameter(QUERY_PARAMETER_NAME);
-        if ( isEmpty(query)) {
-            throw new MissingRequestParameterServletException(QUERY_PARAMETER_NAME);
-        }
-        final String begin = request.getParameter(BEGIN_INDEX_PARAMETER_NAME);
-        final String end = request.getParameter(END_INDEX_PARAMETER_NAME);
-        final List componentIds = new ArrayList();
-        final int beginIndex = !isEmpty(begin) ? Integer.parseInt(begin) : 1;
-        final int endIndex = !isEmpty(end) ? Integer.parseInt(end) : HITS_PER_PAGE;
-        int totalMatches = 0;
-        try {
-            totalMatches = searchService.search(query, beginIndex - 1, endIndex - 1, componentIds);
-        } catch (SearchService.Exception sse) {
-            throw new SearchServiceFailedServletException("Exception performing search",sse);
-        }
-        final Collection components = getComponent(componentIds);
-        final Map model = new Hashtable();
-        model.put(RESULTS_BEAN_NAME,components);
-        model.put(QUERY_PARAMETER_NAME,query);
-        model.put(BEGIN_INDEX_PARAMETER_NAME,new Integer(beginIndex));
-        model.put(END_INDEX_PARAMETER_NAME,new Integer(Math.min(totalMatches, endIndex)));
-        model.put(TOTAL_MATCHES_BEAN_NAME,new Integer(totalMatches));
-        model.put(PAGES_BEAN_NAME,computePages(totalMatches,HITS_PER_PAGE));
-        final int currentPage = ((beginIndex+1) / HITS_PER_PAGE) + 1;
-        model.put(CURRENT_PAGE_BEAN_NAME,new Page(currentPage, beginIndex,endIndex));
-        return new ModelAndView("searchResultsView",model);
-    }
-
-    private Collection computePages(int totalMatches, int resultsPerPage) {
-        int numPages = (totalMatches / resultsPerPage);
-        if ( (totalMatches % resultsPerPage ) != 0 ) {
-            numPages++;
-        }
-        final Collection result = new ArrayList();
-        for(int i=0;i&lt;numPages;i++) {
-            result.add(new Page(i+1,(i*resultsPerPage),((i+1)*resultsPerPage)));
-        }
-        return result;
-    }
-
-    private boolean isEmpty(String s) {
-        return s == null || s.equals("");
-    }
-
-    private Collection getComponent(List componentIds) {
-        final Collection results = new ArrayList();
-        for(Iterator i=componentIds.iterator();i.hasNext();) {
-            final String componentId = (String) i.next();
-            results.add(repository.getComponent(componentId));
-        }
-        return results;
-    }
-
-    public static final class Page {
-        private int pageIndex;
-        private int hitBeginIndex;
-        private int hitEndIndex;
-
-        public Page(int id, int beginIndex, int endIndex) {
-            this.pageIndex = id;
-            this.hitBeginIndex = beginIndex;
-            this.hitEndIndex = endIndex;
-        }
-
-        public int getPageIndex() {
-            return pageIndex;
-        }
-
-        public int getHitBeginIndex() {
-            return hitBeginIndex;
-        }
-
-        public int getHitEndIndex() {
-            return hitEndIndex;
-        }
-    }
-
-    public static interface ViewConfiguration {
-        //Return the name of the form to show when the controller is first invoked.
-        String getFormView();
-    }
-}
</pre></div>
<hr /><a name="file62" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/searchcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>SearchServiceFailedServletException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N SearchServiceFailedServletException.java
--- SearchServiceFailedServletException.java	28 Oct 2003 19:36:06 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.searchcomponents;
-
-import javax.servlet.ServletException;
-
-public class SearchServiceFailedServletException extends ServletException {
-    public SearchServiceFailedServletException(String message, Throwable cause) {
-        super(message,cause);
-    }
-}
</pre></div>
<hr /><a name="file63" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/showcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>ShowComponentController.java</b></big> <small id="info">removed after 1.5</small></div>
<pre class="diff"><small id="info">diff -N ShowComponentController.java
--- ShowComponentController.java	10 Nov 2003 20:21:42 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.showcomponent;
-
-import org.componenthaus.repository.api.ComponentRepository;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.AbstractController;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-public class ShowComponentController extends AbstractController {
-    private final ComponentRepository repository;
-    static final String MODEL_NAME = "component";
-
-    public ShowComponentController(ComponentRepository repository) {
-        this.repository = repository;
-    }
-
-    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-        return new ModelAndView("showComponentView",MODEL_NAME,repository.getComponent(request.getParameter("id")));
-    }
-}
</pre></div>
<hr /><a name="file64" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>CarSubmissionManager.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N CarSubmissionManager.java
--- CarSubmissionManager.java	9 Nov 2003 14:00:48 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Given a CAR file on the serverside that contains a component submission,
- * crack open that file and process the contents.
- */
-public interface CarSubmissionManager {
-    String METADATA_FILE_JAR_ENTRY_NAME = "metadata.xml";
-    String DISTRIBUTION_DIRECTORY_JAR_ENTRY_NAME = "dist/";
-    String JAR_REPOSITORY_DIRECTORY = "repository";
-
-    public void submit(File jarFile) throws Exception;
-}
</pre></div>
<hr /><a name="file65" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>ComponentSubmissionException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N ComponentSubmissionException.java
--- ComponentSubmissionException.java	9 Nov 2003 14:00:49 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,7 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-public class ComponentSubmissionException extends Exception {
-    public ComponentSubmissionException(String message, Exception e) {
-        super(message,e);
-    }
-}
</pre></div>
<hr /><a name="file66" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>ComponentSubmissionManager.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N ComponentSubmissionManager.java
--- ComponentSubmissionManager.java	9 Nov 2003 16:21:39 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import org.componenthaus.ant.metadata.ComponentMetadata;
-
-import java.util.Collection;
-
-public interface ComponentSubmissionManager {
-    Collection submit(ComponentMetadata componentMetadata) throws ComponentSubmissionException;
-}
</pre></div>
<hr /><a name="file67" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>DefaultCarSubmissionManager.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N DefaultCarSubmissionManager.java
--- DefaultCarSubmissionManager.java	9 Nov 2003 16:21:39 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,132 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import org.componenthaus.ant.metadata.ComponentMetadata;
-import org.componenthaus.repository.api.Component;
-import org.componenthaus.repository.services.CommandRegistry;
-import org.componenthaus.util.file.FileManager;
-import org.prevayler.Prevayler;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-
-public class DefaultCarSubmissionManager implements CarSubmissionManager {
-    private final CommandRegistry commandRegistry;
-    private final Prevayler prevayler;
-    private final FileManager fileManager;
-    private final SubmissionMonitor submissionMonitor;
-    private final ComponentSubmissionManager componentSubmissionManager;
-
-    public DefaultCarSubmissionManager(CommandRegistry commandRegistry,
-                                    FileManager fileManager,
-                                    SubmissionMonitor submissionMonitor,
-                                    Prevayler prevayler,
-                                    ComponentSubmissionManager componentSubmissionManager) {
-        this.commandRegistry = commandRegistry;
-        this.prevayler = prevayler;
-        this.fileManager = fileManager;
-        this.submissionMonitor = submissionMonitor;
-        this.componentSubmissionManager = componentSubmissionManager;
-    }
-
-    public void submit(File filename) throws Exception {
-        System.out.println("Called");
-        JarFile jarFile = new JarFile(filename);
-        ZipEntry metadataFile = jarFile.getEntry(CarSubmissionManager.METADATA_FILE_JAR_ENTRY_NAME);
-        if ( metadataFile == null ) {
-            throw new MissingJarEntryException(CarSubmissionManager.METADATA_FILE_JAR_ENTRY_NAME);
-        }
-        ZipEntry distribution = getDistributionEntry(jarFile);
-        if ( distribution == null ) {
-            throw new MissingJarEntryException(CarSubmissionManager.DISTRIBUTION_DIRECTORY_JAR_ENTRY_NAME);
-        }
-        System.out.println("About to handle metadata");
-        Collection components = handleMetadata(jarFile, metadataFile);
-        System.out.println("Meta data done, " + components.size() + " components added");
-        File jarInRepository = handleDistribution(jarFile,distribution);
-        for(Iterator i=components.iterator();i.hasNext();) {
-            Component component = (Component) i.next();
-            prevayler.executeCommand(commandRegistry.createRegisterDownloadableCommand(component.getId(),jarInRepository));
-            submissionMonitor.componentSubmitted(component,jarInRepository);
-        }
-    }
-
-    private File handleDistribution(JarFile jarFile, ZipEntry distribution) throws IOException {
-        String jarName = getJarName(distribution);
-        String projectName = getProjectName(jarName);
-        File destDirectory = new File(CarSubmissionManager.JAR_REPOSITORY_DIRECTORY + "/" + projectName + "/jars");
-        destDirectory.mkdirs();
-        File target = new File(destDirectory,jarName);
-        fileManager.copy(jarFile.getInputStream(distribution),target);
-        return target;
-    }
-
-    private String getProjectName(String jarName) {
-        int indexOfMinus = jarName.indexOf("-");
-        if ( indexOfMinus == -1 ) {
-            throw new IllegalJarNameException(jarName);
-        }
-        return jarName.substring(0,indexOfMinus);
-    }
-
-    private String getJarName(ZipEntry distribution) {
-        final String name = distribution.getName();
-        return name.substring(CarSubmissionManager.DISTRIBUTION_DIRECTORY_JAR_ENTRY_NAME.length(),name.length());
-    }
-
-
-    private Collection handleMetadata(JarFile jarFile, ZipEntry metadataFile) throws Exception {
-        jarFile.getInputStream(metadataFile);
-        final byte[] bytes = getJarEntryBytes(jarFile, metadataFile);
-
-        final String metadata = new String(bytes);
-        final ComponentMetadata componentMetadata = ComponentMetadata.fromXml(metadata);
-        return componentSubmissionManager.submit(componentMetadata);
-    }
-
-    private ZipEntry getDistributionEntry(JarFile jarFile) {
-        ZipEntry result = null;
-        Enumeration entries = jarFile.entries();
-        final String directory = CarSubmissionManager.DISTRIBUTION_DIRECTORY_JAR_ENTRY_NAME;
-        while(result == null &amp;&amp; entries.hasMoreElements()) {
-            ZipEntry entry = (ZipEntry) entries.nextElement();
-            if ( entry.getName().startsWith(directory) &amp;&amp; entry.getName().length() &gt; directory.length()) {
-                result = entry;
-            }
-        }
-        return result;
-    }
-
-    private byte[] getJarEntryBytes(JarFile jarFile, ZipEntry entry) throws IOException {
-        final InputStream in = jarFile.getInputStream(entry);
-        final ByteArrayOutputStream bytes = new ByteArrayOutputStream(in.available());
-        copyStream(in, bytes);
-        in.close();
-        bytes.close();
-        return bytes.toByteArray();
-    }
-
-    public void copyStream(InputStream in, OutputStream out) throws IOException {
-        byte[] buf = new byte[1024];
-        int i = 0;
-        while ((i = in.read(buf)) != -1) {
-            out.write(buf, 0, i);
-        }
-    }
-
-    public static interface SubmissionMonitor {
-        void componentSubmitted(Component component, File distribution);
-    }
-
-    public static final class NullSubmissionMonitor implements SubmissionMonitor {
-        public void componentSubmitted(Component component, File distribution) {
-        }
-    }
-}
</pre></div>
<hr /><a name="file68" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>DefaultComponentSubmissionManager.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N DefaultComponentSubmissionManager.java
--- DefaultComponentSubmissionManager.java	9 Nov 2003 16:21:39 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import org.componenthaus.ant.metadata.ComponentMetadata;
-import org.componenthaus.repository.services.CommandRegistry;
-import org.componenthaus.repository.api.Component;
-import org.prevayler.Prevayler;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-public class DefaultComponentSubmissionManager implements ComponentSubmissionManager {
-    private final MetadataConverter metadataConverter;
-    private final Prevayler prevayler;
-    private CommandRegistry commandRegistry;
-
-    public DefaultComponentSubmissionManager(MetadataConverter metadataConverter, Prevayler prevayler, CommandRegistry commandRegistry) {
-        this.metadataConverter = metadataConverter;
-        this.prevayler = prevayler;
-        this.commandRegistry = commandRegistry;
-    }
-
-    public Collection submit(ComponentMetadata componentMetadata) throws ComponentSubmissionException {
-        if ( componentMetadata == null ) {
-            throw new IllegalArgumentException("componentMetadata cannot be null");
-        }
-        if ( componentMetadata.numInterfaces() &lt;= 0 ) {
-            throw new IllegalArgumentException("componentMetadata must contain at least one service interface");
-        }
-        Collection components = metadataConverter.convert(componentMetadata);
-        for(Iterator i=components.iterator();i.hasNext();) {
-            try {
-                prevayler.executeCommand(commandRegistry.createSubmitComponentCommand((Component)i.next()));
-            } catch (Exception e) {
-                throw new ComponentSubmissionException("Exception submitting component",e);
-            }
-        }
-        return components;
-    }
-}
</pre></div>
<hr /><a name="file69" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>IllegalJarNameException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N IllegalJarNameException.java
--- IllegalJarNameException.java	26 Oct 2003 14:43:09 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-public class IllegalJarNameException extends RuntimeException{
-    private final String jarName;
-
-    public IllegalJarNameException(String jarName) {
-        super();
-        this.jarName= jarName;
-    }
-
-    public String getJarName() {
-        return jarName;
-    }
-}
</pre></div>
<hr /><a name="file70" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>MetadataConverter.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MetadataConverter.java
--- MetadataConverter.java	9 Nov 2003 14:00:49 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import org.componenthaus.ant.metadata.ComponentMetadata;
-
-import java.util.Collection;
-
-public interface MetadataConverter {
-    Collection convert(ComponentMetadata componentMetadata);
-}
</pre></div>
<hr /><a name="file71" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>MetadataConverterImpl.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N MetadataConverterImpl.java
--- MetadataConverterImpl.java	9 Nov 2003 16:21:39 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,66 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import org.componenthaus.ant.metadata.ComponentMetadata;
-import org.componenthaus.ant.metadata.InterfaceMetadata;
-import org.componenthaus.ant.ClassAbbreviator;
-import org.componenthaus.repository.api.Component;
-import org.componenthaus.repository.impl.ComponentFactory;
-
-import java.util.Collection;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Collections;
-import java.io.StringReader;
-
-import com.thoughtworks.qdox.JavaDocBuilder;
-import com.thoughtworks.qdox.model.JavaClass;
-
-public class MetadataConverterImpl implements MetadataConverter {
-    private final ComponentFactory componentFactory;
-    private final ClassAbbreviator classAbbreviator;
-
-    public MetadataConverterImpl(ComponentFactory componentFactory, ClassAbbreviator classAbbreviator) {
-        this.componentFactory = componentFactory;
-        this.classAbbreviator = classAbbreviator;
-    }
-
-    public Collection convert(ComponentMetadata componentMetadata) {
-        if ( componentMetadata == null ) {
-            throw new IllegalArgumentException("componentMetadata cannot be null");
-        }
-        if ( componentMetadata.numInterfaces() &lt;= 0 ) {
-            throw new IllegalArgumentException("componentMetadata must contain at least one service interface");
-        }
-        Collection result = new ArrayList();
-        for(Iterator i=componentMetadata.getInterfaces();i.hasNext();) {
-            result.add(createComponent((InterfaceMetadata)i.next()));
-        }
-        return result;
-    }
-
-    private Component createComponent(InterfaceMetadata interfaceMetadata) {
-        System.out.println("Adding interface " + interfaceMetadata.getFullyQualifiedName());
-        String source = null;
-        if ( interfaceMetadata.isClass()) {
-            StringBuffer result = new StringBuffer();
-            JavaDocBuilder builder = new JavaDocBuilder();
-            builder.addSource(new StringReader(interfaceMetadata.getSource()));
-            JavaClass aClass = builder.getClassByName(interfaceMetadata.getFullyQualifiedName());
-            assert aClass != null : interfaceMetadata.getFullyQualifiedName();
-            System.out.println("Class = " + aClass);
-            classAbbreviator.abbreviate(aClass, result);
-            source = result.toString();
-            System.out.println("Is a class, formatted the source to be " + source);
-        } else {
-            System.out.println(interfaceMetadata.getName() + " is an interface");
-            source = interfaceMetadata.getSource();
-        }
-        return componentFactory.createComponent(
-                interfaceMetadata.getFullyQualifiedName(),
-                "1.0",
-                Collections.EMPTY_LIST,
-                interfaceMetadata.getShortDescription(),
-                interfaceMetadata.getJavadoc(),
-                source);
-    }
-}
</pre></div>
<hr /><a name="file72" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>MissingJarEntryException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MissingJarEntryException.java
--- MissingJarEntryException.java	26 Oct 2003 13:46:41 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-public class MissingJarEntryException extends RuntimeException {
-    private String jarEntryName;
-
-    public MissingJarEntryException(String jarEntryName) {
-        super();
-        this.jarEntryName = jarEntryName;
-    }
-
-    public String getJarEntryName() {
-        return jarEntryName;
-    }
-}
</pre></div>
<hr /><a name="file73" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>NotAMultipartRequestServletException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N NotAMultipartRequestServletException.java
--- NotAMultipartRequestServletException.java	26 Oct 2003 13:46:41 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,6 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import javax.servlet.ServletException;
-
-public class NotAMultipartRequestServletException extends ServletException {
-}
</pre></div>
<hr /><a name="file74" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>RequiredMultipartFieldMissingServletException.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N RequiredMultipartFieldMissingServletException.java
--- RequiredMultipartFieldMissingServletException.java	26 Oct 2003 13:46:41 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import javax.servlet.ServletException;
-
-public class RequiredMultipartFieldMissingServletException extends ServletException {
-    private final String fieldName;
-
-    public RequiredMultipartFieldMissingServletException(String fieldName) {
-        this.fieldName = fieldName;
-    }
-
-    public String getFieldName() {
-        return fieldName;
-    }
-}
</pre></div>
<hr /><a name="file75" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>SubmitComponentController.java</b></big> <small id="info">removed after 1.9</small></div>
<pre class="diff"><small id="info">diff -N SubmitComponentController.java
--- SubmitComponentController.java	9 Nov 2003 14:00:49 -0000	1.9
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,68 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import org.springframework.validation.BindException;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.IOException;
-
-public class SubmitComponentController extends SimpleFormController {
-    /**
-     * The name of the form field containing the jar file being submitted.
-     */
-    public static final String MULTIPART_FIELD_NAME = "submission";
-
-    /**
-     * The name of the directory into which submitted jars are copied
-     */
-    public static final String SUBMISSIONS_DIRECTORY_NAME = "submissions";
-
-    private final CarSubmissionManager submissionManager;
-
-    public SubmitComponentController(ViewConfiguration viewConfiguration,
-                                     CarSubmissionManager submissionManager) {
-        setCommandClass(Object.class);
-        setSuccessView(viewConfiguration.getSuccessView());
-        setFormView(viewConfiguration.getFormView());
-        this.submissionManager = submissionManager;
-    }
-
-    protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,
-                                    Object command, BindException errors)
-            throws ServletException, IOException {
-        if ( ! (request instanceof MultipartHttpServletRequest) ) {
-            throw new NotAMultipartRequestServletException();
-        }
-        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-        final MultipartFile submission = multipartRequest.getFile(MULTIPART_FIELD_NAME);
-        if ( submission == null ) {
-            throw new RequiredMultipartFieldMissingServletException(MULTIPART_FIELD_NAME);
-        }
-        final File dest = new File(SUBMISSIONS_DIRECTORY_NAME, submission.getOriginalFileName());
-        submission.transferTo(dest);
-        try {
-            submissionManager.submit(dest);
-        } catch (Exception e) {
-            throw new ServletException("Exception submitting component",e);
-        }
-        return new ModelAndView("welcomeView");
-    }
-
-    /**
-     * Small plug interface to allow the application configuration tell
-     * this controller what view to show initially (form view) and what view
-     * to show on success.  I made this an interface as its easier to do than
-     * providing parameters for the constructor of this controller explicitly
-     * in Pico.  Better to let Pico figure out what needs to be passed.
-     */
-    public static interface ViewConfiguration {
-        String getFormView();
-        String getSuccessView();
-    }
-}
</pre></div>
<hr /><a name="file76" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/usecases/welcomeuser<br /></span>
<div class="fileheader" id="removed"><big><b>WelcomeUserController.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N WelcomeUserController.java
--- WelcomeUserController.java	26 Oct 2003 14:43:09 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.welcomeuser;
-
-import org.springframework.web.servlet.mvc.Controller;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.ServletException;
-import java.io.IOException;
-
-public class WelcomeUserController implements Controller {
-    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        return new ModelAndView("welcomeView");
-    }
-}
</pre></div>
<hr /><a name="file77" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/util/file<br /></span>
<div class="fileheader" id="removed"><big><b>FileManager.java</b></big> <small id="info">removed after 1.5</small></div>
<pre class="diff"><small id="info">diff -N FileManager.java
--- FileManager.java	9 Nov 2003 14:00:49 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.util.file;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public interface FileManager {
-    void copy(File from, OutputStream to) throws IOException;
-    void copy(InputStream inputStream, File target) throws IOException;
-}
</pre></div>
<hr /><a name="file78" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/java/org/componenthaus/util/file<br /></span>
<div class="fileheader" id="removed"><big><b>FileManagerImpl.java</b></big> <small id="info">removed after 1.8</small></div>
<pre class="diff"><small id="info">diff -N FileManagerImpl.java
--- FileManagerImpl.java	10 Nov 2003 20:21:42 -0000	1.8
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.util.file;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Writer;
-
-public class FileManagerImpl implements FileManager {
-    private static final int chunk = 1024;
-
-    public void copy(File from, OutputStream to) throws IOException {
-        assert from != null;
-        assert to != null;
-        final BufferedInputStream in = new BufferedInputStream(new FileInputStream(from));
-        copy(in, to);
-        in.close();
-    }
-
-    private void copy(InputStream from, OutputStream to) throws IOException {
-        final byte[] buff = new byte[chunk];
-        int bytesRead = -1;
-        while (-1 != (bytesRead = from.read(buff, 0, buff.length))) {
-            to.write(buff, 0, bytesRead);
-        }
-    }
-
-    public void copy(InputStream from, File to) throws IOException {
-        FileOutputStream os = new FileOutputStream(to);
-        copy(from,os);
-        os.close();
-    }
-}
</pre></div>
<hr /><a name="file79" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/maven<br /></span>
<div class="fileheader" id="removed"><big><b>plugin.jelly</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N plugin.jelly
--- plugin.jelly	4 Oct 2003 16:27:50 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;?xml version="1.0"?&gt;
-
-&lt;project
-    xmlns:ant="jelly:ant"
-    xmlns:j="jelly:core"
-    xmlns:u="jelly:util"
-    xmlns:x="jelly:xml"&gt;
-
-    &lt;goal name="package"
-        description="Package a component for submission to ComponentHaus"
-        prereqs="ch:init,ch:compile-metadata, ch:package-jar, ch:mkcar"/&gt;
-
-    &lt;goal name="ch:init"
-        description="Create directories and other stuff required by packaging"&gt;
-        &lt;ant:mkdir dir="${ch.home}/packages/${pom.id}"/&gt;
-    &lt;/goal&gt;
-
-    &lt;goal name="ch:compile-metadata"
-        description="Compile metadata from the Maven POM and local source"&gt;
-        &lt;ant:package basedir="${basedir}"/&gt;
-    &lt;/goal&gt;
-&lt;/project&gt;
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file80" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>ClassAbbreviatorImplTestCase.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N ClassAbbreviatorImplTestCase.java
--- ClassAbbreviatorImplTestCase.java	9 Nov 2003 16:21:39 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,145 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import com.thoughtworks.qdox.JavaDocBuilder;
-import com.thoughtworks.qdox.model.JavaClass;
-import com.thoughtworks.qdox.model.JavaMethod;
-import junit.framework.TestCase;
-
-import java.io.StringReader;
-import java.io.BufferedReader;
-import java.io.IOException;
-
-public class ClassAbbreviatorImplTestCase extends TestCase {
-    private ClassAbbreviator abbreviator = null;
-    private JavadocFormatter javadocFormatter = null;
-
-    protected void setUp() throws Exception {
-        javadocFormatter = new JavadocFormatterImpl(80);
-        abbreviator = new ClassAbbreviatorImpl(javadocFormatter, new LineIndenterImpl());
-    }
-
-    public void testThrowsExceptionIfNotAClass() {
-        final String interfaceName = "AnInterface";
-        final String packageName = "com.acme";
-        final MockJavaClass anInterface = new MockJavaClass(packageName,interfaceName);
-        anInterface.setInterface(true);
-        NotAClassException expected = null;
-        try {
-            abbreviator.abbreviate(anInterface, new StringBuffer());
-            fail("Did not get expected exception");
-        } catch (NotAClassException e) {
-            expected = e;
-        }
-        assertEquals(packageName + "." + interfaceName, expected.getName());
-    }
-
-    public void testWillIgnoreNonPublicMembers() {
-        final String interfaceName = "AnInterface";
-        final String packageName = "com.acme";
-        final MockJavaClass aClass = new MockJavaClass(packageName,interfaceName);
-
-        final JavaMethod privateMethod = new JavaMethod();
-        privateMethod.setModifiers(new String[]{"private"});
-        final JavaMethod protectedMethod = new JavaMethod();
-        protectedMethod.setModifiers(new String[]{"protected"});
-        final JavaMethod packageMethod = new JavaMethod();
-        aClass.addMethod(privateMethod);
-        aClass.addMethod(protectedMethod);
-        aClass.addMethod(packageMethod);
-        final StringBuffer collector = new StringBuffer();
-        assertEquals(0, abbreviator.abbreviate(aClass, collector));
-    }
-
-    public void testWillFindPublicMethods() throws IOException {
-
-        final String sourceCode =
-                "package com.acme.thing;\n" +
-                "\n" +
-                "import com.acme.OtherThing;\n" +
-                "import com.acme.AcmeException;\n" +
-                "import java.io.File;\n" +
-                "\n" +
-                "/**\n" +
-                " * This class does something.  \n" +
-                " * Explained in more detail.\n" +
-                " * Explained in even more detail.\n" +
-                " * Explained in yet more detail again.\n" +
-                " **/\n" +
-                "public final class AClassName {\n" +
-                "   /**\n" +
-                "   * Returns the basename of the supplied File.  The basename \n" +
-                "   * is whats left when you take the directory away \n" +
-                "   * \n" +
-                "   * @param file the file to get the basename from" +
-                "   * @return the basename" +
-                "   **/" +
-                "   public static final String basename(File file) throws AcmeException{\n" +
-                "       int i = 0;\n" +
-                "   }\n" +
-                "   public String instanceBasename(File file){\n" +
-                "       int i = 0;\n" +
-                "   }\n" +
-                "   private static final String privateBasename(File file) throws AcmeException{\n" +
-                "       int i = 0;\n" +
-                "   }\n" +
-                "}";
-        JavaDocBuilder builder = new JavaDocBuilder();
-        builder.addSource(new StringReader(sourceCode));
-        final JavaClass aClass = builder.getClassByName("com.acme.thing.AClassName");
-        final StringBuffer bodyCollector = new StringBuffer();
-
-        assertEquals(2, abbreviator.abbreviate(aClass, bodyCollector));
-        final String formatted = bodyCollector.toString();
-        assertEquals(1,countMatches(formatted,"package com.acme.thing;"));
-        assertEquals(1,countMatches(formatted,"import java.io.File;"));
-        assertEquals(1,countMatches(formatted,"import com.acme.AcmeException;"));
-        assertEquals(2,countMatches(formatted,"import .*")); //Only two import expected, those actually referenced
-        assertEquals(1,countMatches(formatted,"public final class AClassName \\{"));
-        assertEquals(1,countMatches(formatted," \\* This class does something. Explained in more detail.*"));
-        assertEquals(1,countMatches(formatted, "\\s*public final static String basename\\(File file\\) throws AcmeException;"));
-        assertEquals(1,countMatches(formatted, "\\s*public String instanceBasename\\(File file\\);"));
-        assertEquals(1,countMatches(formatted, ".*\\* Returns the basename of the supplied File\\..*"));
-        assertEquals(1,countMatches(formatted, ".*\\* @param file the file to get the basename from"));
-        assertEquals(1,countMatches(formatted, ".*\\* @return the basename"));
-
-
-    }
-
-    private int countMatches(String string, String regexp) throws IOException {
-        int matches = 0;
-        final BufferedReader reader = new BufferedReader(new StringReader(string));
-        String line = reader.readLine();
-        while ( line != null ) {
-            if ( line.matches(regexp) ) {
-                matches++;
-            }
-            line = reader.readLine();
-        }
-        reader.close();
-        return matches;
-    }
-
-    private static final class MockJavaClass extends JavaClass {
-        private final String packageName;
-        private final String className;
-
-        public MockJavaClass(String packageName, String className) {
-            super(null);
-            this.packageName = packageName;
-            this.className = className;
-            setName(className);
-        }
-
-        public String getFullyQualifiedName() {
-            return packageName + "." + className;
-        }
-
-        public boolean isPublic() {
-            return true;
-        }
-
-        public String getPackage() {
-            return packageName;
-        }
-    }
-}
</pre></div>
<hr /><a name="file81" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>ComponentMetadataTaskTestCase.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N ComponentMetadataTaskTestCase.java
--- ComponentMetadataTaskTestCase.java	9 Nov 2003 14:00:49 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,325 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import junit.framework.TestCase;
-
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.xml.sax.SAXException;
-import org.componenthaus.ant.metadata.InterfaceMetadata;
-import org.componenthaus.ant.metadata.ComponentMetadata;
-
-//TODO stick author and version into metadata
-//TODO check we can deal with more than one interface, and generate proper metadata
-public class ComponentMetadataTaskTestCase extends TestCase {
-    private static final String sourceDirectory = "tmp/testcasesource";
-    private static final String targetDirectory = "tmp/testcasetarget";
-    private static final String packageName = "com.acme.software";
-    private static final String firstLineOfJavadoc = "This is the first line of javadoc.";
-    private static final String someJavadoc = firstLineOfJavadoc + " This is the second line of javadoc. This the third.";
-    private static final String interfaceName = "AnInterface";
-    private static final String interfaceBody = "//empty";
-    private static final String fullyQualifiedInterfaceName = packageName + "." + interfaceName;
-    private static final String nonExistantDirectory = "this directory should not exist";
-
-    private Collection createdFiles = null;
-
-    protected void setUp() throws Exception {
-        createdFiles = new ArrayList();
-        createDirectory(sourceDirectory);
-        createDirectory(targetDirectory);
-    }
-
-    protected void tearDown() throws Exception {
-        for (Iterator i = createdFiles.iterator(); i.hasNext();) {
-            File f = (File) i.next();
-            f.delete();
-        }
-    }
-
-    public void testHasRequiredSetters() {
-        ComponentMetadataTask task = new ComponentMetadataTask();
-        task.setSourceDirectory(sourceDirectory);
-        task.setTargetDirectory(targetDirectory);
-    }
-
-    public void testCanAddInterfacesToTask() {
-        final String secondInterfaceName = "secondInterfaceName";
-
-        ComponentMetadataTask task = new ComponentMetadataTask();
-        task.createInterface().setName(interfaceName);
-
-        task.createInterface().setName(secondInterfaceName);
-        assertEquals(2,task.numInterfaces());
-        assertTrue(task.containsInterface(interfaceName));
-        assertTrue(task.containsInterface(secondInterfaceName));
-    }
-
-    public void testHasZeroArgConstructor() {
-        new ComponentMetadataTask();
-    }
-
-    public void testThrowsExceptionWhenSourceDirectoryNotSpecified() {
-        final ComponentMetadataTask task = new ComponentMetadataTask(interfaceName,null,targetDirectory);
-        ParameterNotSpecifiedBuildException expected = null;
-        try {
-            task.execute();
-            fail("Did not get expected exception");
-        } catch (ParameterNotSpecifiedBuildException e) {
-            expected = e;
-        }
-        assertEquals("sourceDirectory",expected.getParameterName());
-    }
-
-    public void testThrowsExceptionWhenTargetDirectoryNotSpecified() {
-        final ComponentMetadataTask task = new ComponentMetadataTask(interfaceName,sourceDirectory,null);
-        ParameterNotSpecifiedBuildException expected = null;
-        try {
-            task.execute();
-            fail("Did not get expected exception");
-        } catch (ParameterNotSpecifiedBuildException e) {
-            expected = e;
-        }
-        assertEquals("targetDirectory",expected.getParameterName());
-    }
-
-    public void testThrowsExceptionWhenInterfaceNameNotSpecified() {
-        final ComponentMetadataTask task = new ComponentMetadataTask((String)null,sourceDirectory,targetDirectory);
-        try {
-            task.execute();
-            fail("Did not get expected exception");
-        } catch (NoInterfacesSpecifiedBuildException e) {
-        }
-    }
-
-    public void testThrowsExceptionWhenSourceDirectoryDoesNotExist() {
-        final ComponentMetadataTask task = new ComponentMetadataTask(interfaceName,nonExistantDirectory,targetDirectory);
-        DirectoryDoesNotExistBuildException expected = null;
-        try {
-            task.execute();
-            fail("Did not get expected exception");
-        } catch (DirectoryDoesNotExistBuildException e) {
-            expected = e;
-        }
-        assertEquals(nonExistantDirectory,expected.getDirectoryName());
-    }
-
-    public void testThrowsExceptionWhenTargetDirectoryDoesNotExist() {
-        final ComponentMetadataTask task = new ComponentMetadataTask(interfaceName,sourceDirectory,nonExistantDirectory);
-        DirectoryDoesNotExistBuildException expected = null;
-        try {
-            task.execute();
-            fail("Did not get expected exception");
-        } catch (DirectoryDoesNotExistBuildException e) {
-            expected = e;
-        }
-        assertEquals(nonExistantDirectory,expected.getDirectoryName());
-    }
-
-    public void testThrowsExceptionWhenSourceDirectoryIsFile() throws IOException {
-        final String filename = sourceDirectory + "/" + "file";
-        final ComponentMetadataTask task = new ComponentMetadataTask(interfaceName,filename,targetDirectory);
-        createFile(filename, createdFiles);
-        NotADirectoryBuildException expected = null;
-        try {
-            task.execute();
-            fail("Did not get expected exception");
-        } catch (NotADirectoryBuildException e) {
-            expected = e;
-        }
-        assertEquals(filename,expected.getDirectoryName());
-    }
-
-    public void testThrowsExceptionWhenTargetDirectoryIsFile() throws IOException {
-        final String filename = sourceDirectory + "/" + "file";
-        final ComponentMetadataTask task = new ComponentMetadataTask(interfaceName,filename,targetDirectory);
-        createFile(filename, createdFiles);
-        NotADirectoryBuildException expected = null;
-        try {
-            task.execute();
-            fail("Did not get expected exception");
-        } catch (NotADirectoryBuildException e) {
-            expected = e;
-        }
-        assertEquals(filename,expected.getDirectoryName());
-    }
-
-    public void testThrowsAnExceptionWhenInterfaceDoesNotExist() {
-        final ComponentMetadataTask task = new ComponentMetadataTask(fullyQualifiedInterfaceName,sourceDirectory,targetDirectory);
-        NoSuchJavaSourceFileBuildException expected = null;
-        try {
-            task.execute();
-            fail("Did not get expected exception");
-        } catch (NoSuchJavaSourceFileBuildException e) {
-            expected = e;
-        }
-        assertEquals(fullyQualifiedInterfaceName, expected.getInterfaceName());
-    }
-
-    public void testThrowsAnExceptionWhenNoJavadoc() throws IOException {
-        createJavaSourceFile(sourceDirectory, new Interface(
-                packageName,
-                interfaceName,
-                null,
-                null), createdFiles);
-        final ComponentMetadataTask task = new ComponentMetadataTask(fullyQualifiedInterfaceName,sourceDirectory,targetDirectory);
-        NoJavadocBuildException expected = null;
-        try {
-            task.execute();
-            fail("Did not get expected exception");
-        } catch (NoJavadocBuildException e) {
-            expected = e;
-        }
-        assertEquals(fullyQualifiedInterfaceName, expected.getInterfaceName());
-    }
-
-    public void testCanGenerateCorrectMetadataForOneInterface() throws IOException, ParserConfigurationException, SAXException {
-        createJavaSourceFile(sourceDirectory, new Interface(
-                packageName,
-                interfaceName,
-                someJavadoc,
-                interfaceBody), createdFiles);
-        final ComponentMetadataTask task = new ComponentMetadataTask(fullyQualifiedInterfaceName,sourceDirectory,targetDirectory);
-        task.execute();
-        File metadataFile = new File(targetDirectory,ComponentMetadataTask.metadataFilename);
-        assertTrue("Metadata file (generated) does not exist", metadataFile.exists());
-        final ComponentMetadata componentMetadata = ComponentMetadata.fromXml(metadataFile);
-        final InterfaceMetadata interfaceMetadata = componentMetadata.getInterfaceMetadataForName(fullyQualifiedInterfaceName);
-        assertEquals(packageName,interfaceMetadata.getPackageName());
-        assertEquals(interfaceName,interfaceMetadata.getName());
-        assertEquals(fullyQualifiedInterfaceName, interfaceMetadata.getFullyQualifiedName());
-        assertEquals(someJavadoc,interfaceMetadata.getJavadoc());
-        assertEquals(firstLineOfJavadoc, interfaceMetadata.getShortDescription());
-    }
-
-    public void testCanGenerateCorrectMetadataForTwoInterfaces() throws IOException, ParserConfigurationException, SAXException {
-        createJavaSourceFile(sourceDirectory, new Interface(
-                packageName,
-                interfaceName,
-                someJavadoc,
-                interfaceBody), createdFiles);
-        String secondInterfaceName = "SecondInterface";
-        String firstLineOfJavadocForSecondInterface = "This is another first line.";
-        String secondJavadoc = firstLineOfJavadocForSecondInterface + " " + someJavadoc;
-        String secondFullyQualifiedInterfaceName = packageName + "." + secondInterfaceName;
-        createJavaSourceFile(sourceDirectory, new Javaclass(
-                packageName,
-                secondInterfaceName,
-                secondJavadoc,
-                interfaceBody), createdFiles);
-        final ComponentMetadataTask task = new ComponentMetadataTask(new String[]{fullyQualifiedInterfaceName, secondFullyQualifiedInterfaceName},sourceDirectory,targetDirectory);
-        task.execute();
-        File metadataFile = new File(targetDirectory,ComponentMetadataTask.metadataFilename);
-        assertTrue("Metadata file (generated) does not exist", metadataFile.exists());
-        final ComponentMetadata componentMetadata = ComponentMetadata.fromXml(metadataFile);
-        assertEquals(2,componentMetadata.numInterfaces());
-        InterfaceMetadata interfaceMetadata = componentMetadata.getInterfaceMetadataForName(fullyQualifiedInterfaceName);
-        assertEquals(packageName,interfaceMetadata.getPackageName());
-        assertEquals(interfaceName,interfaceMetadata.getName());
-        assertEquals(fullyQualifiedInterfaceName, interfaceMetadata.getFullyQualifiedName());
-        assertEquals(someJavadoc,interfaceMetadata.getJavadoc());
-        assertEquals(firstLineOfJavadoc, interfaceMetadata.getShortDescription());
-        assertFalse(interfaceMetadata.isClass());
-
-        interfaceMetadata = componentMetadata.getInterfaceMetadataForName(secondFullyQualifiedInterfaceName);
-        assertEquals(packageName,interfaceMetadata.getPackageName());
-        assertEquals(secondInterfaceName,interfaceMetadata.getName());
-        assertEquals(secondFullyQualifiedInterfaceName, interfaceMetadata.getFullyQualifiedName());
-        assertEquals(secondJavadoc,interfaceMetadata.getJavadoc());
-        assertEquals(firstLineOfJavadocForSecondInterface, interfaceMetadata.getShortDescription());
-        assertTrue(interfaceMetadata.isClass());
-    }
-
-    private void createJavaSourceFile(String targetDirectory, JavaSourceFile javaSourceFile, final Collection collectingParameter) throws IOException {
-        File file = new File(targetDirectory + File.separator + javaSourceFile.sourceFileRelativePath() + File.separator + javaSourceFile.getInterfaceName() + ".java");
-        file.getParentFile().mkdirs();
-        FileWriter writer = new FileWriter(file);
-        writer.write("// this file generated by Junit test case - feel free to delete it\n");
-        writer.write("package " + javaSourceFile.getPackageName() + ";\n\n");
-        writer.write("/**\n");
-        writer.write(" * " + javaSourceFile.getJavadoc() + "\n");
-        writer.write(" */\n");
-        writer.write("public " + javaSourceFile.getJavaType() + " " + javaSourceFile.getInterfaceName() + " {\n");
-        writer.write(javaSourceFile.getInterfaceBody());
-        writer.write("}");
-
-        writer.close();
-        collectingParameter.add(file);
-    }
-
-    private void createDirectory(String directoryName) {
-        File f = new File(directoryName);
-        f.mkdirs();
-    }
-
-    private void createFile(String filename, final Collection collectingParameter) throws IOException {
-        File file = new File(filename);
-        file.getParentFile().mkdirs();
-        FileWriter writer = new FileWriter(file);
-        writer.write("// this file generated by Junit test case - feel free to delete it\n");
-        writer.close();
-        collectingParameter.add(file);
-    }
-
-    private static abstract class JavaSourceFile {
-        protected final String packageName;
-        protected final String interfaceName;
-        protected final String javadoc;
-        protected final String interfaceBody;
-
-        public JavaSourceFile(String packageName, String interfaceName, String javadoc, String interfaceBody) {
-            this.packageName = packageName;
-            this.interfaceName = interfaceName;
-            this.javadoc = javadoc != null ? javadoc : "";
-            this.interfaceBody = interfaceBody != null ? interfaceBody : "//empty";
-        }
-
-        public String sourceFileRelativePath() {
-            return packageName.replaceAll("\\.","/");
-        }
-
-        public String getInterfaceName() {
-            return interfaceName;
-        }
-
-        public String getPackageName() {
-            return packageName;
-        }
-
-        public String getJavadoc() {
-            return javadoc;
-        }
-
-        public String getInterfaceBody() {
-            return interfaceBody;
-        }
-
-        public abstract String getJavaType();
-
-    }
-
-    private static class Interface extends JavaSourceFile {
-        public Interface(String packageName, String interfaceName, String javadoc, String interfaceBody) {
-            super(packageName, interfaceName, javadoc, interfaceBody);
-        }
-
-        public String getJavaType() {
-            return "interface";
-        }
-    }
-
-    private static class Javaclass extends JavaSourceFile {
-        public Javaclass(String packageName, String interfaceName, String javadoc, String interfaceBody) {
-            super(packageName, interfaceName, javadoc, interfaceBody);
-        }
-
-        public String getJavaType() {
-            return "class";
-        }
-    }
-}
</pre></div>
<hr /><a name="file82" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>JavadocFormatterImplTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N JavadocFormatterImplTestCase.java
--- JavadocFormatterImplTestCase.java	9 Nov 2003 14:00:50 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,73 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import junit.framework.TestCase;
-
-public class JavadocFormatterImplTestCase extends TestCase {
-    private static final int MAX_LINE_LENGTH = 80;
-    private JavadocFormatter formatter = null;
-
-    protected void setUp() throws Exception {
-        formatter = new JavadocFormatterImpl(MAX_LINE_LENGTH);
-    }
-
-    public void testCanFormatEmptyString() {
-        assertEquals("",formatter.format(""));
-    }
-
-    public void testWillIgnoreNull() {
-        assertNull(formatter.format(null));
-    }
-
-    public void testCanHandleSingleShortLine() {
-        String input = "This is a short javadoc comment";
-        String expected =
-                "/**\n" +
-                " * " + input + "\n" +
-                " **/";
-        final String actual = formatter.format(input);
-        assertEquals(expected,actual);
-    }
-
-    public void testWillConcatenateTwoShortLines() {
-        String input = "This is a short javadoc comment.";
-        String input2 = "So is this.";
-        String expected =
-                "/**\n" +
-                " * " + input + " " + input2 + "\n" +
-                " **/";
-        final String actual = formatter.format(input + "\n" + input2);
-        assertEquals(expected,actual);
-    }
-
-    public void testCanHandleAWordLongerThanTheLineLimit() {
-        formatter = new JavadocFormatterImpl(10);
-        String input = "This is a short javadoc comment.";
-        String input2 = "So is this.";
-        String longInput = "AndThisWordIsLongerThanTheMaxLineLength.";
-        String expected =
-                "/**\n" +
-                " * This\n" +
-                " * is a\n" +
-                " * short\n" +
-                " * javadoc\n" +
-                " * comment.\n" +
-                " * So is\n" +
-                " * this.\n" +
-                " * AndThisWordIsLongerThanTheMaxLineLength.\n" +
-                " **/";
-        final String actual = formatter.format(input + "\n" + input2 + "\n" + longInput);
-        assertEquals(expected,actual);
-    }
-
-    public void testAlwaysPutsParamTagOnNewLine() {
-        String input = "This is a short line. @param this is a param. @return this is return";
-        final String actual = formatter.format(input);
-        assertEquals(
-                "/**\n" +
-                " * This is a short line.\n" +
-                " * \n" +
-                " * @param this is a param.\n" +
-                " * @return this is return\n" +
-                " **/", actual);
-    }
-}
</pre></div>
<hr /><a name="file83" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/ant<br /></span>
<div class="fileheader" id="removed"><big><b>LineIndenterImplTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N LineIndenterImplTestCase.java
--- LineIndenterImplTestCase.java	9 Nov 2003 14:00:50 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant;
-
-import junit.framework.TestCase;
-
-public class LineIndenterImplTestCase extends TestCase {
-    private LineIndenter indenter = null;
-
-    protected void setUp() throws Exception {
-        indenter = new LineIndenterImpl();
-    }
-
-    public void testCanIndentEmptyString() {
-        assertEquals("",indenter.indent("",0));
-    }
-
-    public void testCanHandleNullInput() {
-        assertNull(indenter.indent(null,0));
-    }
-
-    public void testCanIndentSingleLine() {
-        final String line = "This is a single line";
-        assertEquals(line, indenter.indent(line,0));
-        assertEquals("\t" + line, indenter.indent(line,1));
-        assertEquals("\t\t" + line, indenter.indent(line,2));
-    }
-
-    public void testCanIndentTwoLines() {
-        final String twoLines =
-                "This is line one.\n" +
-                "This is line two.";
-        assertEquals(twoLines,indenter.indent(twoLines,0));
-
-        assertEquals(
-                "\tThis is line one.\n" +
-                "\tThis is line two.",indenter.indent(twoLines,1));
-
-        assertEquals(
-                "\t\tThis is line one.\n" +
-                "\t\tThis is line two.",indenter.indent(twoLines,2));
-
-    }
-
-}
</pre></div>
<hr /><a name="file84" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/ant/metadata<br /></span>
<div class="fileheader" id="removed"><big><b>ComponentMetadataTestCase.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N ComponentMetadataTestCase.java
--- ComponentMetadataTestCase.java	9 Nov 2003 14:00:50 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant.metadata;
-
-import junit.framework.TestCase;
-
-public class ComponentMetadataTestCase extends TestCase {
-    private ComponentMetadata componentMetadata = null;
-
-    protected void setUp() throws Exception {
-        componentMetadata = new ComponentMetadata();
-    }
-
-    public void testEquals() {
-        assertFalse(componentMetadata.equals(null));
-        assertFalse(componentMetadata.equals(""));
-
-        ComponentMetadata secondOne = new ComponentMetadata();
-        assertTrue(componentMetadata.equals(secondOne));
-
-        final InterfaceMetadata emptyInterfaceMetadata = new InterfaceMetadata("","","","", false);
-        componentMetadata.addInterface(emptyInterfaceMetadata);
-        assertFalse(componentMetadata.equals(secondOne));
-
-        secondOne.addInterface(emptyInterfaceMetadata);
-        assertTrue(componentMetadata.equals(secondOne));
-
-        final InterfaceMetadata interfaceMetadata_a = new InterfaceMetadata("a","","","", false);
-        componentMetadata.addInterface(interfaceMetadata_a);
-        assertFalse(componentMetadata.equals(secondOne));
-
-        InterfaceMetadata interfaceMetadata_b = new InterfaceMetadata("b","","","", false);
-        secondOne.addInterface(interfaceMetadata_b);
-        assertFalse(componentMetadata.equals(secondOne));
-
-        ComponentMetadata thirdOne = new ComponentMetadata();
-        thirdOne.addInterface(emptyInterfaceMetadata);
-        thirdOne.addInterface(interfaceMetadata_a);
-        assertEquals(componentMetadata,thirdOne);
-    }
-
-    public void testCanSerializeToAndFromXmlWhenEmpty() {
-        final String xml = componentMetadata.toXml();
-        final ComponentMetadata reconstituted = ComponentMetadata.fromXml(xml);
-        assertEquals(componentMetadata,reconstituted);
-    }
-
-    public void testCanSerializeToAndFromXmlWhenContainingOneInterface() {
-        final InterfaceMetadata emptyInterfaceMetadata = new InterfaceMetadata("","","","", false);
-        componentMetadata.addInterface(emptyInterfaceMetadata);
-        assertEquals(componentMetadata,ComponentMetadata.fromXml(componentMetadata.toXml()));
-    }
-
-    public void testCanSerializeToAndFromXmlWhenContainingTwoInterfaces() {
-        final InterfaceMetadata emptyInterfaceMetadata = new InterfaceMetadata("","","","", false);
-        final InterfaceMetadata simpleInterfaceMetadata = new InterfaceMetadata("a","b","c","d", false);
-        componentMetadata.addInterface(emptyInterfaceMetadata);
-        componentMetadata.addInterface(simpleInterfaceMetadata);
-        assertEquals(componentMetadata,ComponentMetadata.fromXml(componentMetadata.toXml()));
-    }
-}
</pre></div>
<hr /><a name="file85" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/ant/metadata<br /></span>
<div class="fileheader" id="removed"><big><b>InterfaceMetadataTestCase.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N InterfaceMetadataTestCase.java
--- InterfaceMetadataTestCase.java	9 Nov 2003 14:00:50 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.ant.metadata;
-
-import junit.framework.TestCase;
-
-public class InterfaceMetadataTestCase extends TestCase {
-    private static final String firstLineOfJavadoc = "This is the first line of javadoc.";
-    private static final String someJavadoc = firstLineOfJavadoc + " This is the second.  This the third.";
-
-    public void testEquals() {
-        final InterfaceMetadata intf = new InterfaceMetadata("d","","","", false);
-        assertFalse(intf.equals(null));
-
-        InterfaceMetadata secondOne = new InterfaceMetadata("d","","","", false);
-        assertTrue(intf.equals(secondOne));
-
-        assertFalse(intf.equals(new InterfaceMetadata("a","","","", false)));
-    }
-
-    public void testCanGetShortDescriptionFromFullJavadoc() {
-        final InterfaceMetadata interfaceMetadata = new InterfaceMetadata(null,null,someJavadoc,null, false);
-        assertEquals(firstLineOfJavadoc,interfaceMetadata.getShortDescription());
-    }
-
-    public void testCanGetShortDescriptionFromSingleLineJavadoc() {
-        final InterfaceMetadata interfaceMetadata = new InterfaceMetadata(null,null,firstLineOfJavadoc,null, false);
-        assertEquals(firstLineOfJavadoc,interfaceMetadata.getShortDescription());
-    }
-}
</pre></div>
<hr /><a name="file86" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/prevayler<br /></span>
<div class="fileheader" id="removed"><big><b>PrevaylerBeanTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N PrevaylerBeanTestCase.java
--- PrevaylerBeanTestCase.java	10 Nov 2003 20:21:43 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.prevayler;
-
-import junit.framework.TestCase;
-import org.componenthaus.tests.MockComponentRepository;
-import org.prevayler.Command;
-import org.prevayler.PrevalentSystem;
-
-import java.io.Serializable;
-
-public class PrevaylerBeanTestCase extends TestCase {
-    private PrevaylerBean bean = null;
-    private MockComponentRepository repo = null;
-
-    protected void setUp() throws Exception {
-        repo = new MockComponentRepository();
-        bean = new PrevaylerBean(repo);
-    }
-
-    public void testSystem() {
-        assertSame(repo, bean.system());
-    }
-
-    public void testCanExecuteCommand() throws Exception {
-        String preparedReturn = "jdladj";
-        final MockCommand command = new MockCommand(preparedReturn);
-        bean.executeCommand(command);
-        command.verify();
-    }
-
-    private static final class MockCommand implements Command {
-        private String preparedReturn = null;
-        private boolean called = false;
-
-        public MockCommand(String preparedReturn) {
-            this.preparedReturn = preparedReturn;
-        }
-
-        public Serializable execute(PrevalentSystem prevalentSystem) throws Exception {
-            called = true;
-            return preparedReturn;
-        }
-
-        public void verify() {
-            assertTrue(called);
-        }
-    }
-}
</pre></div>
<hr /><a name="file87" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/repository/api<br /></span>
<div class="fileheader" id="removed"><big><b>RepositoryImplTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N RepositoryImplTestCase.java
--- RepositoryImplTestCase.java	10 Nov 2003 20:21:43 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,53 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.api;
-
-import junit.framework.TestCase;
-import org.componenthaus.tests.MockComponentRepositoryMonitor;
-import org.componenthaus.tests.MockComponent;
-
-import java.io.File;
-
-public class RepositoryImplTestCase extends TestCase {
-    private RepositoryImpl repository = null;
-    private MockComponentRepositoryMonitor monitor = null;
-
-    protected void setUp() throws Exception {
-        monitor = new MockComponentRepositoryMonitor();
-        repository = new RepositoryImpl(monitor);
-    }
-
-    public void testCanAddComponent() {
-        MockComponent component = new MockComponent(null);
-        monitor.setupExpectedComponent(component);
-        String newId = repository.add(component);
-        assertEquals("0", newId);
-        assertEquals(newId,component.getId());
-        assertSame(component,repository.getComponent(newId));
-        monitor.verify();
-    }
-
-    public void testCanListComponents() {
-        assertEquals(0,repository.listComponents().size());
-        final MockComponent component = new MockComponent(null);
-        repository.add(component);
-        assertEquals(1,repository.listComponents().size());
-        assertTrue(repository.listComponents().contains(component));
-    }
-
-    public void testCanGetComponent() {
-        String componentId = "0";
-        assertNull(repository.getComponent(componentId));
-        final MockComponent component = new MockComponent(null);
-        repository.add(component);
-        assertSame(component,repository.getComponent(componentId));
-    }
-
-    public void testCanRegisterAndRetrieveDownloadables() {
-        String componentId = "0";
-        assertNull(repository.getDownloadable(componentId));
-        File file = new File("");
-        repository.registerDownloadable(componentId,file);
-        assertSame(file,repository.getDownloadable(componentId));
-    }
-
-
-}
</pre></div>
<hr /><a name="file88" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/repository/impl<br /></span>
<div class="fileheader" id="removed"><big><b>ServiceImplTestCase.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N ServiceImplTestCase.java
--- ServiceImplTestCase.java	10 Nov 2003 20:21:43 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.impl;
-
-import junit.framework.TestCase;
-
-import java.util.List;
-import java.util.ArrayList;
-
-public class ServiceImplTestCase extends TestCase {
-    private ServiceImpl impl = null;
-
-    protected void setUp() throws Exception {
-        impl = new ServiceImpl();
-    }
-
-    public void testDoesNotEqualAPlainObject() {
-        assertFalse(impl.equals(new Object()));
-    }
-
-    public void testDoesNotEqualNull() {
-        assertFalse(impl.equals(null));
-    }
-
-    public void testEqualsSameInstance() {
-        assertTrue(impl.equals(impl));
-    }
-
-    public void testEqualsSimilarEmptyInstance() {
-        assertTrue(impl.equals(new ServiceImpl()));
-    }
-
-    public void testEqualSimilarNonEmptyInstance() {
-        impl.setName("name");
-        ServiceImpl secondImpl = new ServiceImpl();
-        secondImpl.setName("name");
-        assertEquals(impl, secondImpl);
-    }
-
-    public void testCanGetSetVersion() {
-        String version = "1234123";
-        assertNull(impl.getVersion());
-        impl.setVersion(version);
-        assertSame(version,impl.getVersion());
-    }
-
-    public void testCanGetSetAuthors() {
-        assertEquals(0,impl.getAuthors().size());
-        List newAuthors = new ArrayList();
-        final String authorName = "An author";
-        newAuthors.add(authorName);
-        impl.setAuthors(newAuthors);
-        assertEquals(1,impl.getAuthors().size());
-        assertTrue(impl.getAuthors().contains(authorName));
-    }
-
-    public void testCanGetSetOneLineDescription() {
-        assertNull(impl.getOneLineDescription());
-        String desc = "elkjlkjlkjlkj";
-        impl.setOneLineDescription(desc);
-        assertSame(desc, impl.getOneLineDescription());
-    }
-
-    public void testCanGetSetFullDescription() {
-        assertNull(impl.getFullDescription());
-        String desc = "elkjlkjlkjlkj";
-        impl.setFullDescription(desc);
-        assertSame(desc, impl.getFullDescription());
-    }
-
-    public void testCanGetSetFulllyQualifiedName() {
-        assertNull(impl.getFullyQualifiedName());
-        String name = "elkjlkjlkjlkj";
-        impl.setFullyQualifiedName(name);
-        assertSame(name, impl.getFullyQualifiedName());
-    }
-}
</pre></div>
<hr /><a name="file89" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/repository/services<br /></span>
<div class="fileheader" id="removed"><big><b>CommandRegistryImplTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N CommandRegistryImplTestCase.java
--- CommandRegistryImplTestCase.java	10 Nov 2003 20:21:43 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.services;
-
-import junit.framework.TestCase;
-import org.componenthaus.tests.MockComponent;
-
-import java.io.File;
-
-public class CommandRegistryImplTestCase extends TestCase {
-    private CommandRegistry commandRegistry = null;
-
-    protected void setUp() throws Exception {
-        commandRegistry = new CommandRegistryImpl();
-    }
-
-    public void testCanCreateSubmitComponentCommand() {
-        assertNotNull(commandRegistry.createSubmitComponentCommand(new MockComponent("1")));
-    }
-
-    public void testCanCreateRegisterDownloadableCommand() {
-        assertNotNull(commandRegistry.createRegisterDownloadableCommand("1",new File("")));
-    }
-}
</pre></div>
<hr /><a name="file90" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/repository/services<br /></span>
<div class="fileheader" id="removed"><big><b>RegisterDownloadableComponentCommandTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N RegisterDownloadableComponentCommandTestCase.java
--- RegisterDownloadableComponentCommandTestCase.java	10 Nov 2003 20:21:43 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.services;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-
-import org.componenthaus.tests.MockComponentRepository;
-
-public class RegisterDownloadableComponentCommandTestCase extends TestCase {
-
-    public void testCallsRepositoryProperly() throws Exception {
-        String componentId = "424";
-        File file = new File("");
-        RegisterDownloadableComponentCommand command = new RegisterDownloadableComponentCommand(componentId, file);
-        MockComponentRepository mockRepository = new MockComponentRepository();
-        mockRepository.setupExpectedRegisterDownloadable(componentId, file);
-        Object result = command.execute(mockRepository);
-        assertNull(result);
-        mockRepository.verify();
-    }
-}
</pre></div>
<hr /><a name="file91" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/repository/services<br /></span>
<div class="fileheader" id="removed"><big><b>SubmitComponentCommandTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N SubmitComponentCommandTestCase.java
--- SubmitComponentCommandTestCase.java	10 Nov 2003 20:21:43 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.repository.services;
-
-import junit.framework.TestCase;
-import org.componenthaus.tests.MockComponent;
-import org.componenthaus.tests.MockComponentRepository;
-
-public class SubmitComponentCommandTestCase extends TestCase {
-
-    public void testCallsRepositoryProperly() throws Exception {
-        MockComponent component = new MockComponent("23432");
-        SubmitComponentCommand command = new SubmitComponentCommand(component);
-        MockComponentRepository repository = new MockComponentRepository();
-        String preparedResult = "ajdklj";
-        repository.setupExpectedAddComponent(component, preparedResult);
-        Object result = command.execute(repository);
-        assertSame(preparedResult,result);
-        repository.verify();
-    }
-}
</pre></div>
<hr /><a name="file92" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/search<br /></span>
<div class="fileheader" id="removed"><big><b>AddComponentMonitorTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N AddComponentMonitorTestCase.java
--- AddComponentMonitorTestCase.java	10 Nov 2003 20:21:43 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.search;
-
-import junit.framework.TestCase;
-import org.componenthaus.tests.MockSearchService;
-import org.componenthaus.tests.MockComponent;
-
-public class AddComponentMonitorTestCase extends TestCase {
-    private AddComponentMonitor monitor = null;
-    private MockSearchService searchService = null;
-
-    protected void setUp() throws Exception {
-        searchService = new MockSearchService();
-        monitor = new AddComponentMonitor(searchService);
-    }
-
-    public void testCallsSearchServiceCorrectly() {
-        String componentId = "lkjlkj";
-        String fullDescription = "full desc";
-        MockComponent component = new MockComponent(componentId);
-        component.setFullDescription(fullDescription);
-        searchService.setupExpectedIndexCall(componentId, fullDescription);
-        monitor.componentAdded(component);
-        searchService.verify();
-    }
-
-    public void testPropagatesExceptionCorrectly() {
-        SearchService.Exception preparedException = new SearchService.Exception("who cares", new RuntimeException());
-        searchService.setupIndexCallException(preparedException);
-        RuntimeException expected = null;
-        try {
-            monitor.componentAdded(new MockComponent(null));
-        } catch (RuntimeException e) {
-            expected = e;
-        }
-        assertSame(preparedException,expected.getCause());
-    }
-}
</pre></div>
<hr /><a name="file93" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/search<br /></span>
<div class="fileheader" id="removed"><big><b>LuceneSearchServiceTestCase.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N LuceneSearchServiceTestCase.java
--- LuceneSearchServiceTestCase.java	10 Nov 2003 20:21:43 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,200 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.search;
-
-import junit.framework.TestCase;
-import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.InputStream;
-import org.apache.lucene.store.Lock;
-import org.apache.lucene.store.OutputStream;
-
-import java.io.IOException;
-
-public class LuceneSearchServiceTestCase extends TestCase {
-    private static final String componentId = "334545";
-    private static final String componentDescription = "Big, lumpy and smelly";
-    private LuceneSearchService searchService = null;
-    private MockLuceneObjectFactory mockLuceneObjectFactory = null;
-
-    protected void setUp() throws Exception {
-        mockLuceneObjectFactory = new MockLuceneObjectFactory();
-        searchService = new LuceneSearchService(mockLuceneObjectFactory);
-    }
-
-    public void testThrowsWrappedExceptionOnIOException() {
-        final IOException preparedIoException = new IOException();
-        mockLuceneObjectFactory.setPreparedIOException(preparedIoException);
-
-        SearchService.Exception expected = null;
-        try {
-            searchService.index(componentId,componentDescription);
-            fail("Did not get expected exception");
-        } catch (SearchService.Exception e) {
-            expected = e;
-        }
-        assertSame(preparedIoException, expected.getCause());
-    }
-
-    public void testCallsLuceneIndexApiCorrectly() throws IOException, SearchService.Exception {
-        final MockIndexWriter mockIndexWriter = new MockIndexWriter("who cares", new StandardAnalyzer(), true);
-        mockIndexWriter.setupExpectedNumOptimizeCalls(1);
-        mockIndexWriter.setupExpectedNumCloseCalls(1);
-        mockIndexWriter.setupExpectedNumAddDocumentCalls(1);
-        mockLuceneObjectFactory.setupPreparedIndexWriter(mockIndexWriter);
-        searchService.index(componentId, componentDescription);
-        final Document addedDocument = mockIndexWriter.getAddedDocument();
-        Field field = addedDocument.getField(LuceneSearchService.ID_FIELD_NAME);
-        assertEquals(componentId,field.stringValue());
-        field = addedDocument.getField(LuceneSearchService.CONTENTS_FIELD_NAME);
-        assertEquals(componentDescription,field.stringValue());
-        mockIndexWriter.verify();
-    }
-
-
-    private static final class MockLuceneObjectFactory implements LuceneSearchService.LuceneObjectFactory {
-        private IOException preparedIOException = null;
-        private MockIndexWriter preparedIndexWriter = null;
-
-        public IndexWriter createIndexWriter(String indexFilePath, Analyzer analyzer, boolean createIndex) throws IOException {
-            if ( preparedIOException != null ) {
-                throw preparedIOException;
-            }
-            return preparedIndexWriter;
-        }
-
-        public void setPreparedIOException(IOException preparedIOException) {
-            this.preparedIOException = preparedIOException;
-        }
-
-        public void setupPreparedIndexWriter(MockIndexWriter mockIndexWriter) {
-            this.preparedIndexWriter = mockIndexWriter;
-        }
-    }
-
-
-    private static final class MockIndexWriter extends IndexWriter {
-        private int expectedNumOptimizeCalls = -1;
-        private int expectedNumCloseCalls = -1;
-        private int expectedNumAddDocumentCalls = -1;
-        private int actualNumCloseCalls = 0;
-        private int actualNumOptimizeCalls = 0;
-        private int actualNumAddDocumentCalls = 0;
-        private Document addedDocument = null;
-
-        public MockIndexWriter(String s, Analyzer analyzer, boolean b) throws IOException {
-            super(new MockDirectory(),analyzer,true);
-        }
-
-        public void setupExpectedNumOptimizeCalls(int i) {
-            this.expectedNumOptimizeCalls = i;
-        }
-
-        public void setupExpectedNumCloseCalls(int i) {
-            this.expectedNumCloseCalls = i;
-        }
-
-        public void setupExpectedNumAddDocumentCalls(int i) {
-            this.expectedNumAddDocumentCalls = i;
-        }
-
-        public synchronized void close() throws IOException {
-            this.actualNumCloseCalls++;
-        }
-
-        public void addDocument(Document doc) throws IOException {
-            this.actualNumAddDocumentCalls++;
-            this.addedDocument = doc;
-        }
-
-        public synchronized void optimize() throws IOException {
-            this.actualNumOptimizeCalls++;
-        }
-
-        public void verify() {
-            assertEquals(expectedNumAddDocumentCalls,actualNumAddDocumentCalls);
-            assertEquals(expectedNumCloseCalls,actualNumCloseCalls);
-            assertEquals(expectedNumOptimizeCalls,actualNumOptimizeCalls);
-        }
-
-        public Document getAddedDocument() {
-            return addedDocument;
-        }
-    }
-
-    private static final class MockDirectory extends Directory {
-        public String[] list()
-                throws IOException {
-            return new String[0];
-        }
-
-        public boolean fileExists(String name)
-                throws IOException {
-            return false;
-        }
-
-        public long fileModified(String name)
-                throws IOException {
-            return 0;
-        }
-
-        public void touchFile(String name)
-                throws IOException {
-        }
-
-        public void deleteFile(String name)
-                throws IOException {
-        }
-
-        public void renameFile(String from, String to)
-                throws IOException {
-        }
-
-        public long fileLength(String name)
-                throws IOException {
-            return 0;
-        }
-
-        public OutputStream createFile(String name)
-                throws IOException {
-            return new OutputStream() {
-                protected void flushBuffer(byte[] b, int len) throws IOException {
-                }
-
-                public long length() throws IOException {
-                    return 0;
-                }
-            };
-        }
-
-        public InputStream openFile(String name)
-                throws IOException {
-            return null;
-        }
-
-        public Lock makeLock(String name) {
-            return new MockLock();
-        }
-
-        public void close()
-                throws IOException {
-        }
-    }
-
-    private static final class MockLock extends Lock {
-        public boolean obtain() throws IOException {
-            return true;
-        }
-
-        public void release() {
-        }
-
-
-
-        public boolean isLocked() {
-            return false;
-        }
-    }
-}
</pre></div>
<hr /><a name="file94" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/spring<br /></span>
<div class="fileheader" id="removed"><big><b>AbstractPicoApplicationContextTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N AbstractPicoApplicationContextTestCase.java
--- AbstractPicoApplicationContextTestCase.java	10 Nov 2003 20:21:44 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,262 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.spring;
-
-import junit.framework.TestCase;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import org.springframework.beans.factory.BeanNotOfRequiredTypeException;
-import org.springframework.context.ApplicationContextException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.NoSuchMessageException;
-import org.springframework.context.MessageSourceResolvable;
-
-import javax.servlet.ServletContext;
-import java.io.IOException;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.util.Locale;
-import java.util.ArrayList;
-
-import com.mockobjects.servlet.MockServletContext;
-
-public class AbstractPicoApplicationContextTestCase extends TestCase {
-
-    public void testCanSetAndGetParent() {
-        PicoApplicationContextForTest parent = new PicoApplicationContextForTest(null, "");
-        PicoApplicationContextForTest child = new PicoApplicationContextForTest(parent, "");
-        assertSame(parent, child.getParent());
-    }
-
-    public void testDisplayNameReturnsSomething() {
-        assertNotNull(new PicoApplicationContextForTest(null, "").getDisplayName());
-    }
-
-    public void testStartupTimeIsSetOnConstruction() {
-        long startupTime = new PicoApplicationContextForTest(null, "").getStartupDate();
-        long now = System.currentTimeMillis();
-        assertTrue((now - startupTime) &lt; 1000);
-    }
-
-    public void testContextOptionsIsNotNull() {
-        assertNotNull(new PicoApplicationContextForTest(null, "").getOptions());
-    }
-
-    public void testRefreshWorks() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        context.setExpectedRegisterBeanCalls(1);
-        context.refresh();
-        context.verify();
-    }
-
-    public void testCanClose() {
-        new PicoApplicationContextForTest(null, "").close();
-    }
-
-    public void testGetResourceAsStreamDealsWithDodgyUrl() throws IOException {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-
-        try {
-            context.getResourceAsStream("lkjlkj");
-            fail("Did not get expected exception");
-        } catch (FileNotFoundException expected) {
-            //expected
-        }
-    }
-
-    public void testGetResourceAsStreamDealsWithProperUrl() throws IOException {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        InputStream in = context.getResourceAsStream("file:///.");
-        assertNotNull(in);
-        in.close();
-    }
-
-    public void testGetResourceBasePath() {
-        assertNotNull(new PicoApplicationContextForTest(null, null).getResourceBasePath());
-    }
-
-    public void testCanGetDefaultMessage() {
-        String defaultMessage = "default";
-        assertSame(defaultMessage, new PicoApplicationContextForTest(null, null).getMessage("", new Object[0], defaultMessage, new Locale("en")));
-    }
-
-    public void testGetMessageThrowsNoSuchMessageException() {
-        try {
-            new PicoApplicationContextForTest(null, null).getMessage("", new Object[0], new Locale("en"));
-            fail("Did not get expected exception");
-        } catch (NoSuchMessageException expected) {
-            //expected
-        }
-    }
-
-    public void testGetMessageThrowsNoSuchMessageExceptionUsingMessageResolver() throws NoSuchMessageException {
-        String message = new PicoApplicationContextForTest(null, null).getMessage(new MessageSourceResolvable() {
-            public String[] getCodes() {
-                return new String[]{""};
-            }
-
-            public Object[] getArgs() {
-                return new Object[0];
-            }
-
-            public String getDefaultMessage() {
-                return "";
-            }
-        }, new Locale("en"));
-        assertEquals("", message);
-    }
-
-    public void testCanCountBeanDefinitions() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        assertEquals(0, context.getBeanDefinitionCount());
-        context.registerBean(new Object());
-        assertEquals(1,context.getBeanDefinitionCount());
-    }
-
-    public void testCanGetComponentDefinitionNames() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        assertEquals(0,context.getBeanDefinitionNames().length);
-        String name = "name";
-        context.registerBean(name,new Object());
-        final String[] beanDefinitionNames = context.getBeanDefinitionNames();
-        assertEquals(1,beanDefinitionNames.length);
-        assertEquals(name,beanDefinitionNames[0]);
-    }
-
-    public void testCanGetComponentDefinitionNamesForType() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        assertEquals(0,context.getBeanDefinitionNames(Object.class).length);
-        String name = "name";
-        context.registerBean(name,new ArrayList());
-        String[] beanDefinitionNames = context.getBeanDefinitionNames(ArrayList.class);
-        assertEquals(1,beanDefinitionNames.length);
-        assertEquals(name,beanDefinitionNames[0]);
-        context.registerBean("who cares", new Object());
-        beanDefinitionNames = context.getBeanDefinitionNames(ArrayList.class);
-        assertEquals(1,beanDefinitionNames.length);
-    }
-
-    public void testCanGetBeanByName() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        String name = "name";
-        final Object object = new Object();
-        context.registerBean(name,object);
-        assertSame(object,context.getBean(name));
-    }
-
-    public void testThrowsNoSuchBeanDefinitionExceptionWhenNoBean() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        try {
-            context.getBean("Will not exist");
-            fail("Did not get expected exception");
-        } catch (NoSuchBeanDefinitionException expected) {
-            //expected
-        }
-    }
-
-    public void testThrowsNoSuchBeanDefinitionExceptionWhenNoBeanByType() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        try {
-            context.getBean("Will not exist", Object.class);
-            fail("Did not get expected exception");
-        } catch (NoSuchBeanDefinitionException expected) {
-            //expected
-        }
-    }
-
-    public void testThrowsBeanNotOfRequiredTypeException() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        final String name = "name";
-        final Object object = new Object();
-        context.registerBean(name,object);
-        try {
-            context.getBean(name, ArrayList.class);
-            fail("Did not get expected exception");
-        } catch (BeanNotOfRequiredTypeException expected) {
-            //expected
-        }
-    }
-
-    public void testCanGetBeanByNameAndType() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        final String name = "name";
-        final ArrayList object = new ArrayList();
-        context.registerBean(name,object);
-        assertSame(object,context.getBean(name, ArrayList.class));
-    }
-
-    public void testBeansAreAlwaysSingletons() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        assertTrue(context.isSingleton(null));
-    }
-
-    public void testNeverUsesAliases() {
-        assertEquals(0,(new PicoApplicationContextForTest(null, null)).getAliases(null).length);
-    }
-
-    public void testHasNoParentBeanFactory() {
-        assertNull((new PicoApplicationContextForTest(null, null)).getParentBeanFactory());
-    }
-
-    public void testCanShareObjects() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        assertNull(context.sharedObject(null));
-        Object object = new Object();
-        context.shareObject("key", object);
-        assertSame(object,context.sharedObject("key"));
-        context.removeSharedObject("key");
-        assertNull(context.sharedObject("key"));
-    }
-
-    public void testCanSetAndGetServletContext() {
-        PicoApplicationContextForTest context = new PicoApplicationContextForTest(null, null);
-        ServletContext servletContext = new MockServletContext();
-        assertNull(context.getServletContext());
-        context.setServletContext(servletContext);
-        assertSame(servletContext,context.getServletContext());
-    }
-
-    public void testDoesNotUseATheme() {
-        assertNull(new PicoApplicationContextForTest(null, null).getTheme(null));
-    }
-
-    private static final class PicoApplicationContextForTest extends AbstractPicoApplicationContext {
-        private int actualRegisterBeansCalls = 0;
-        private int actualSetServletContextCalls = 0;
-        private int expectedRegisterBeanCalls = 0;
-        private int expectedSetServletContextCalls = 0;
-
-        public PicoApplicationContextForTest(ApplicationContext parent, String nameSpace) {
-            super(parent, nameSpace);
-        }
-
-        public void registerBean(Object o) {
-            pico.registerComponentInstance(o);
-        }
-
-        public void registerBean(String name,Object o) {
-            pico.registerComponentInstance(name,o);
-        }
-
-        protected void registerBeans() throws BeansException {
-            actualRegisterBeansCalls++;
-        }
-
-        public void setServletContext(ServletContext servletContext) throws ApplicationContextException {
-            actualSetServletContextCalls++;
-            this.servletContext = servletContext;
-        }
-
-        public void setExpectedRegisterBeanCalls(int expectedRegisterBeanCalls) {
-            this.expectedRegisterBeanCalls = expectedRegisterBeanCalls;
-        }
-
-        public void setExpectedSetServletContextCalls(int expectedSetServletContextCalls) {
-            this.expectedSetServletContextCalls = expectedSetServletContextCalls;
-        }
-
-        public void verify() {
-            assertEquals(expectedRegisterBeanCalls, actualRegisterBeansCalls);
-            assertEquals(expectedSetServletContextCalls, actualSetServletContextCalls);
-        }
-    }
-
-}
</pre></div>
<hr /><a name="file95" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/spring<br /></span>
<div class="fileheader" id="removed"><big><b>PicoApplicationContextTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N PicoApplicationContextTestCase.java
--- PicoApplicationContextTestCase.java	10 Nov 2003 20:21:44 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.spring;
-
-import com.mockobjects.servlet.MockServletContext;
-import junit.framework.TestCase;
-import org.springframework.context.ApplicationContext;
-
-public class PicoApplicationContextTestCase extends TestCase {
-
-    public void testAllComponentsAreResolvable() {
-        PicoApplicationContext context = new PicoApplicationContextSubClass(null,"");
-        context.setServletContext(new MockServletContext());
-    }
-
-    private static final class PicoApplicationContextSubClass extends PicoApplicationContext {
-
-        public PicoApplicationContextSubClass(ApplicationContext parent, String nameSpace) {
-            super(parent, nameSpace);
-        }
-
-        protected void addSpringStuff() {
-            //Don't do this, as it requires web.xml.  Too much hassle!
-        }
-    }
-
-
-}
</pre></div>
<hr /><a name="file96" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/tests<br /></span>
<div class="fileheader" id="removed"><big><b>MockClassAbbreviator.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MockClassAbbreviator.java
--- MockClassAbbreviator.java	9 Nov 2003 14:00:51 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.tests;
-
-import org.componenthaus.ant.ClassAbbreviator;
-import com.thoughtworks.qdox.model.JavaClass;
-import junit.framework.Assert;
-
-public class MockClassAbbreviator implements ClassAbbreviator {
-    private String expectedPackageName;
-    private String expectedClassName;
-    private String actualPackageName;
-    private String actualClassName;
-    private int setupAbbreviateReturn = 0;
-
-    public int abbreviate(JavaClass aClass, StringBuffer collector) {
-        this.actualPackageName = aClass.getPackage();
-        this.actualClassName = aClass.getName();
-        return setupAbbreviateReturn;
-    }
-
-    public void setupAbbreviateReturn(int i) {
-        setupAbbreviateReturn = i;
-    }
-
-    public void verify() {
-        Assert.assertEquals(expectedPackageName,actualPackageName);
-        Assert.assertEquals(expectedClassName,actualClassName);
-    }
-
-    public void setupExpectedJavaClassDetails(String packageName, String className) {
-        this.expectedPackageName = packageName;
-        this.expectedClassName = className;
-    }
-}
</pre></div>
<hr /><a name="file97" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/tests<br /></span>
<div class="fileheader" id="removed"><big><b>MockComponent.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N MockComponent.java
--- MockComponent.java	10 Nov 2003 20:21:44 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,54 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.tests;
-
-import org.componenthaus.repository.api.Component;
-
-import java.util.List;
-
-public class MockComponent implements Component {
-    private String componentId = null;
-    private String fullDescription;
-
-    public MockComponent(String componentId) {
-        this.componentId = componentId;
-    }
-
-    public String getId() {
-        return componentId;
-    }
-
-    public void setId(String id) {
-        componentId = id;
-    }
-
-    public String getServiceInterface() {
-        return null;
-    }
-
-    public String getName() {
-        return null;
-    }
-
-    public String getVersion() {
-        return null;
-    }
-
-    public String getFullyQualifiedName() {
-        return null;
-    }
-
-    public List getAuthors() {
-        return null;
-    }
-
-    public String getOneLineDescription() {
-        return null;
-    }
-
-    public String getFullDescription() {
-        return fullDescription;
-    }
-
-    public void setFullDescription(String fullDescription) {
-        this.fullDescription = fullDescription;
-    }
-}
</pre></div>
<hr /><a name="file98" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/tests<br /></span>
<div class="fileheader" id="removed"><big><b>MockComponentRepository.java</b></big> <small id="info">removed after 1.4</small></div>
<pre class="diff"><small id="info">diff -N MockComponentRepository.java
--- MockComponentRepository.java	10 Nov 2003 20:21:44 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,89 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.tests;
-
-import junit.framework.Assert;
-import org.componenthaus.repository.api.Component;
-import org.componenthaus.repository.api.ComponentRepository;
-import org.prevayler.AlarmClock;
-import org.prevayler.implementation.AbstractPrevalentSystem;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Collections;
-
-public class MockComponentRepository extends AbstractPrevalentSystem implements ComponentRepository  {
-    private Map downloadables = new HashMap();
-    private Map components = new HashMap();
-    private Collection expectedAddComponents = new ArrayList();
-    private Collection actualAddComponents = new ArrayList();
-    private String expectedRegisterDownloadableComponentId = null;
-    private File expectedRegisterDownloadableFile = null;
-    private String actualRegisterDownloadableComponentId = null;
-    private File actualRegisterDownloadableFile = null;
-    private String preparedResult = null;
-    private int expectedListComponentsCalls = -1;
-    private int actualListComponentsCalls = 0;
-
-    public String add(Component component) {
-        actualAddComponents.add(component);
-        return preparedResult;
-    }
-
-    public Collection listComponents() {
-        actualListComponentsCalls++;
-        return Collections.EMPTY_LIST;
-    }
-
-    public Component getComponent(String id) {
-        return (Component) components.get(id);
-    }
-
-    public void registerDownloadable(String componentId, File downloadable) {
-        this.actualRegisterDownloadableComponentId = componentId;
-        this.actualRegisterDownloadableFile = downloadable;
-    }
-
-    public File getDownloadable(String componentId) {
-        return (File) downloadables.get(componentId);
-    }
-
-    public void setupDownloadable(String id,File file) {
-        downloadables.put(id,file);
-    }
-
-    public void setupComponent(Component component) {
-        components.put(component.getId(),component);
-    }
-
-    public void setupExpectedAddComponent(Component component, String preparedResult) {
-        this.expectedAddComponents.add(component);
-        this.preparedResult = preparedResult;
-    }
-
-    public void verify() {
-        Assert.assertEquals(expectedAddComponents.size(),actualAddComponents.size());
-        for(Iterator i=expectedAddComponents.iterator();i.hasNext();) {
-            Assert.assertTrue(actualAddComponents.contains(i.next()));
-        }
-        if ( expectedRegisterDownloadableComponentId != null ) {
-            Assert.assertEquals(expectedRegisterDownloadableComponentId, actualRegisterDownloadableComponentId);
-            Assert.assertSame(expectedRegisterDownloadableFile, actualRegisterDownloadableFile);
-        }
-        if ( expectedListComponentsCalls &gt;= 0) {
-            Assert.assertEquals(expectedListComponentsCalls, actualListComponentsCalls);
-        }
-    }
-
-    public void setupExpectedRegisterDownloadable(String componentId, File file) {
-        this.expectedRegisterDownloadableComponentId = componentId;
-        this.expectedRegisterDownloadableFile = file;
-    }
-
-    public void setupExpectedListComponentsCalls(int num) {
-        expectedListComponentsCalls = num;
-    }
-
-}
</pre></div>
<hr /><a name="file99" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/tests<br /></span>
<div class="fileheader" id="removed"><big><b>MockComponentRepositoryMonitor.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MockComponentRepositoryMonitor.java
--- MockComponentRepositoryMonitor.java	10 Nov 2003 20:21:44 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.tests;
-
-import org.componenthaus.repository.api.ComponentRepository;
-import org.componenthaus.repository.api.Component;
-import junit.framework.Assert;
-
-public class MockComponentRepositoryMonitor implements ComponentRepository.Monitor {
-    private Component expectedComponent;
-    private Component actualComponent;
-
-    public void componentAdded(Component component) {
-        actualComponent = component;
-    }
-
-    public void setupExpectedComponent(Component component) {
-        this.expectedComponent = component;
-    }
-
-    public void verify() {
-        Assert.assertSame(expectedComponent,actualComponent);
-    }
-}
</pre></div>
<hr /><a name="file100" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/tests<br /></span>
<div class="fileheader" id="removed"><big><b>MockComponentSubmissionManager.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MockComponentSubmissionManager.java
--- MockComponentSubmissionManager.java	9 Nov 2003 16:21:39 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.tests;
-
-import org.componenthaus.usecases.submitcomponent.ComponentSubmissionManager;
-import org.componenthaus.usecases.submitcomponent.ComponentSubmissionException;
-import org.componenthaus.ant.metadata.ComponentMetadata;
-
-import java.util.Collection;
-
-public class MockComponentSubmissionManager implements ComponentSubmissionManager{
-    private Collection setupResult;
-
-    public Collection submit(ComponentMetadata componentMetadata) throws ComponentSubmissionException {
-        return setupResult;
-    }
-
-
-
-    public void setSetupResult(Collection setupResult) {
-        this.setupResult = setupResult;
-    }
-}
</pre></div>
<hr /><a name="file101" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/tests<br /></span>
<div class="fileheader" id="removed"><big><b>MockMetadataConverterImpl.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MockMetadataConverterImpl.java
--- MockMetadataConverterImpl.java	9 Nov 2003 14:00:51 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.tests;
-
-import org.componenthaus.ant.metadata.ComponentMetadata;
-import org.componenthaus.usecases.submitcomponent.MetadataConverter;
-
-import java.util.Collection;
-
-public class MockMetadataConverterImpl implements MetadataConverter {
-    private Collection setupResult;
-
-    public void setSetupResult(Collection setupResult) {
-        this.setupResult = setupResult;
-    }
-
-    public Collection convert(ComponentMetadata componentMetadata) {
-        return setupResult;
-    }
-}
</pre></div>
<hr /><a name="file102" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/tests<br /></span>
<div class="fileheader" id="removed"><big><b>MockPrevalentSystem.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MockPrevalentSystem.java
--- MockPrevalentSystem.java	26 Oct 2003 13:46:42 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.tests;
-
-import org.prevayler.PrevalentSystem;
-import org.prevayler.AlarmClock;
-
-public class MockPrevalentSystem implements PrevalentSystem {
-    public void clock(AlarmClock alarmClock) {
-    }
-
-    public AlarmClock clock() {
-        return null;
-    }
-}
</pre></div>
<hr /><a name="file103" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/tests<br /></span>
<div class="fileheader" id="removed"><big><b>MockPrevayler.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MockPrevayler.java
--- MockPrevayler.java	26 Oct 2003 14:56:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.tests;
-
-import org.prevayler.Prevayler;
-import org.prevayler.PrevalentSystem;
-import org.prevayler.Command;
-
-import java.io.Serializable;
-
-public class MockPrevayler implements Prevayler {
-    public PrevalentSystem system() {
-        return null;
-    }
-
-    public Serializable executeCommand(Command command) throws Exception {
-        return null;
-    }
-}
</pre></div>
<hr /><a name="file104" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/tests<br /></span>
<div class="fileheader" id="removed"><big><b>MockSearchService.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N MockSearchService.java
--- MockSearchService.java	10 Nov 2003 20:21:44 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.tests;
-
-import org.componenthaus.search.SearchService;
-
-import java.util.List;
-
-import junit.framework.Assert;
-
-public class MockSearchService implements SearchService {
-    private SearchService.Exception toBeThrown = null;
-    private List mockResults = null;
-    private String expectedQuery;
-    private int expectedBeginIndex;
-    private int expectedEndIndex;
-    private String actualQuery;
-    private int actualBeginIndex;
-    private int actualEndIndex;
-    private String expectedIndexComponentId;
-    private String expectedIndexFullDescription;
-    private String actualIndexComponentId;
-    private String actualIndexFullDescription;
-    private SearchService.Exception preparedIndexException;
-
-    public void setToBeThrown(SearchService.Exception toBeThrown) {
-        this.toBeThrown = toBeThrown;
-    }
-
-    public void index(String componentId, String componentDescription) throws SearchService.Exception {
-        if ( preparedIndexException != null ) {
-            throw preparedIndexException;
-        }
-        this.actualIndexComponentId = componentId;
-        this.actualIndexFullDescription = componentDescription;
-    }
-
-    public int search(String query, int beginIndex, int endIndex, List collector) throws SearchService.Exception {
-        if ( toBeThrown != null ) {
-            throw toBeThrown;
-        }
-        collector.addAll(mockResults);
-        actualBeginIndex = beginIndex;
-        actualEndIndex = endIndex;
-        actualQuery = query;
-        return mockResults.size();
-    }
-
-    public void setupResults(List list) {
-        this.mockResults = list;
-    }
-
-    public void setupExpectedQueryParams(String query, int beginIndex, int endIndex) {
-        expectedQuery = query;
-        expectedBeginIndex = beginIndex;
-        expectedEndIndex = endIndex;
-    }
-
-    public void verify() {
-        Assert.assertEquals("Did not get expected query",expectedQuery,actualQuery);
-        Assert.assertEquals("Did not get expected beginIndex",expectedBeginIndex,actualBeginIndex);
-        Assert.assertEquals("Did not get expected endIndex",expectedEndIndex,actualEndIndex);
-
-        Assert.assertEquals("Did not get expected component id during index",expectedIndexComponentId,actualIndexComponentId);
-        Assert.assertEquals("Did not get expected component desc during index",expectedIndexFullDescription,actualIndexFullDescription);
-
-    }
-
-    public void setupExpectedIndexCall(String componentId, String fullDescription) {
-        this.expectedIndexComponentId = componentId;
-        this.expectedIndexFullDescription = fullDescription;
-    }
-
-    public void setupIndexCallException(SearchService.Exception preparedException) {
-        preparedIndexException = preparedException;
-    }
-}
</pre></div>
<hr /><a name="file105" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/downloadcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>DownloadComponentControllerTestCase.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N DownloadComponentControllerTestCase.java
--- DownloadComponentControllerTestCase.java	28 Oct 2003 19:36:06 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,71 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.downloadcomponent;
-
-import junit.framework.TestCase;
-import com.mockobjects.servlet.MockHttpServletRequest;
-import com.mockobjects.servlet.MockHttpServletResponse;
-import com.mockobjects.servlet.MockServletOutputStream;
-
-import javax.servlet.ServletException;
-import java.io.IOException;
-
-import org.componenthaus.util.file.MockFileManager;
-import org.componenthaus.util.file.MockFile;
-import org.componenthaus.tests.MockComponentRepository;
-import org.componenthaus.usecases.common.MissingRequestParameterServletException;
-
-public class DownloadComponentControllerTestCase extends TestCase {
-    private static final String ID = "345";
-    private MockHttpServletRequest request = null;
-    private MockHttpServletResponse response = null;
-    private MockFileManager fileManager = null;
-    private MockComponentRepository componentRepository = null;
-    private DownloadComponentController controller = null;
-
-    protected void setUp() throws Exception {
-        request = new MockHttpServletRequest();
-        response = new MockHttpServletResponse();
-        fileManager = new MockFileManager();
-        componentRepository = new MockComponentRepository();
-        controller = new DownloadComponentController(fileManager, componentRepository);
-    }
-
-    public void testThrowsExceptionIfDownloadableIdMissing() throws ServletException, IOException {
-        MissingRequestParameterServletException expected = null;
-        try {
-            request.setupAddParameter(DownloadComponentController.DOWNLOAD_ID_PARAMETER_NAME, (String) null);
-            controller.handleRequestInternal(request, null);
-            fail("Did not get expected exception");
-        } catch (MissingRequestParameterServletException e) {
-            expected = e;
-        }
-        assertEquals(DownloadComponentController.DOWNLOAD_ID_PARAMETER_NAME, expected.getParameterName());
-    }
-
-    public void testThrowsExceptionIfDownloadableMissing() throws ServletException, IOException {
-        NoSuchDownloadableServletException expected = null;
-        try {
-            request.setupAddParameter(DownloadComponentController.DOWNLOAD_ID_PARAMETER_NAME, ID);
-            controller.handleRequestInternal(request, null);
-            fail("Did not get expected exception");
-        } catch (NoSuchDownloadableServletException e) {
-            expected = e;
-        }
-        assertEquals(ID, expected.getDownloadableId());
-    }
-
-    public void testDownloadHappyPath() throws ServletException, IOException {
-        request.setupAddParameter(DownloadComponentController.DOWNLOAD_ID_PARAMETER_NAME, ID);
-        MockFile mockFile = new MockFile();
-        int length = 345;
-        mockFile.setupLength(length);
-        response.setExpectedContentLength(length);
-        response.setExpectedContentType(DownloadComponentController.CONTENT_TYPE);
-        MockServletOutputStream outputStream = new MockServletOutputStream();
-        outputStream.setExpectedCloseCalls(1);
-        response.setupOutputStream(outputStream);
-
-        componentRepository.setupDownloadable(ID,mockFile);
-        controller.handleRequestInternal(request, response);
-        outputStream.verify();
-    }
-}
</pre></div>
<hr /><a name="file106" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/listcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>ListComponentsControllerTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N ListComponentsControllerTestCase.java
--- ListComponentsControllerTestCase.java	10 Nov 2003 20:21:44 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.listcomponents;
-
-import junit.framework.TestCase;
-import org.componenthaus.tests.MockComponentRepository;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.ServletException;
-import java.io.IOException;
-
-public class ListComponentsControllerTestCase extends TestCase {
-
-    public void testCallsRepositoryAndReturnsModel() throws ServletException, IOException {
-        MockComponentRepository repository = new MockComponentRepository();
-        repository.setupExpectedListComponentsCalls(1);
-        ListComponentsController controller = new ListComponentsController(repository);
-        ModelAndView modelAndView = controller.handleRequestInternal(null,null);
-        assertNotNull(modelAndView.getViewName());
-        assertEquals(1,modelAndView.getModel().size());
-        assertNotNull(modelAndView.getModel().get(ListComponentsController.MODEL_NAME));
-        repository.verify();
-    }
-}
</pre></div>
<hr /><a name="file107" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/searchcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>SearchComponentsControllerTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N SearchComponentsControllerTestCase.java
--- SearchComponentsControllerTestCase.java	28 Oct 2003 19:36:06 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,158 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.searchcomponents;
-
-import junit.framework.TestCase;
-import com.mockobjects.servlet.MockHttpServletRequest;
-
-import javax.servlet.ServletException;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-import java.util.Collection;
-import java.util.Map;
-
-import org.componenthaus.usecases.common.MissingRequestParameterServletException;
-import org.componenthaus.tests.MockSearchService;
-import org.componenthaus.tests.MockComponentRepository;
-import org.componenthaus.tests.MockComponent;
-import org.componenthaus.search.SearchService;
-import org.springframework.web.servlet.ModelAndView;
-
-public class SearchComponentsControllerTestCase extends TestCase {
-    private static final String QUERY_PARAMETER_NAME = SearchComponentsController.QUERY_PARAMETER_NAME;
-    private static final String BEGIN_INDEX_PARAMETER_NAME = SearchComponentsController.BEGIN_INDEX_PARAMETER_NAME;
-    private static final String END_INDEX_PARAMETER_NAME = SearchComponentsController.END_INDEX_PARAMETER_NAME;
-    private static final String RESULTS_BEAN_NAME = SearchComponentsController.RESULTS_BEAN_NAME;
-    private static final String TOTAL_MATCHES_BEAN_NAME = SearchComponentsController.TOTAL_MATCHES_BEAN_NAME;
-    private static final String PAGES_BEAN_NAME = SearchComponentsController.PAGES_BEAN_NAME;
-    private static final String CURRENT_PAGE_BEAN_NAME = SearchComponentsController.CURRENT_PAGE_BEAN_NAME;
-    private static final int HITS_PER_PAGE = SearchComponentsController.HITS_PER_PAGE;
-
-    private static final String queryParameterValue = "queryParameterValue";
-    private static final String formView = "formView";
-    private MockViewConfiguration viewConfiguration = null;
-    private MockSearchService searchService = null;
-    private MockComponentRepository repository = null;
-    private MockHttpServletRequest request = null;
-    private SearchComponentsController controller = null;
-
-
-    protected void setUp() throws Exception {
-        viewConfiguration = new MockViewConfiguration(formView);
-        searchService = new MockSearchService();
-        repository = new MockComponentRepository();
-        controller = new SearchComponentsController(viewConfiguration, searchService, repository);
-        request = new MockHttpServletRequest();
-    }
-
-    public void testThrowsExceptionWhenQueryParameterMissing() throws IOException, ServletException {
-        MissingRequestParameterServletException expected = null;
-        request.setupAddParameter(QUERY_PARAMETER_NAME, (String) null);
-        try {
-            controller.onSubmit(request, null, null, null);
-            fail("Did not get expected exception");
-        } catch (MissingRequestParameterServletException e) {
-            expected = e;
-        }
-        assertEquals(QUERY_PARAMETER_NAME, expected.getParameterName());
-    }
-
-    public void testThrowsExceptionWhenSearchServiceFails() throws IOException, ServletException {
-        request.setupAddParameter(QUERY_PARAMETER_NAME, queryParameterValue);
-        request.setupAddParameter(BEGIN_INDEX_PARAMETER_NAME, (String) null);
-        request.setupAddParameter(END_INDEX_PARAMETER_NAME, (String) null);
-        final SearchService.Exception actualException = new SearchService.Exception("who cares", new RuntimeException());
-        searchService.setToBeThrown(actualException);
-        SearchServiceFailedServletException expected = null;
-        try {
-            controller.onSubmit(request, null, null, null);
-            fail("Did not get expected exception");
-        } catch (SearchServiceFailedServletException e) {
-            expected = e;
-        }
-        assertSame(actualException,expected.getRootCause());
-    }
-
-    public void testCanDealWithZeroMatches() throws IOException, ServletException {
-        request.setupAddParameter(QUERY_PARAMETER_NAME, queryParameterValue);
-        final String beginIndex = null;
-        final String endIndex = null;
-        request.setupAddParameter(BEGIN_INDEX_PARAMETER_NAME, beginIndex);
-        request.setupAddParameter(END_INDEX_PARAMETER_NAME, endIndex);
-        final List mockResults = Collections.EMPTY_LIST;
-        searchService.setupResults(mockResults);
-        searchService.setupExpectedQueryParams(queryParameterValue,0,HITS_PER_PAGE - 1);
-
-        final ModelAndView view = controller.onSubmit(request,null,null,null);
-
-        final Map model = view.getModel();
-        assertModel(model, mockResults,0,0,0);
-
-        request.verify();
-        searchService.verify();
-    }
-
-    public void testCanDealWithOneMatch() throws IOException, ServletException {
-        final String componentId = "0";
-        request.setupAddParameter(QUERY_PARAMETER_NAME, queryParameterValue);
-        final String beginIndex = null;
-        final String endIndex = null;
-        request.setupAddParameter(BEGIN_INDEX_PARAMETER_NAME, beginIndex);
-        request.setupAddParameter(END_INDEX_PARAMETER_NAME, endIndex);
-        final List mockResults = Collections.singletonList(componentId);
-        searchService.setupResults(mockResults);
-        searchService.setupExpectedQueryParams(queryParameterValue,0,HITS_PER_PAGE - 1);
-        final MockComponent component = new MockComponent(componentId);
-        repository.setupComponent(component);
-
-        final ModelAndView view = controller.onSubmit(request,null,null,null);
-
-        final Map model = view.getModel();
-        assertModel(model,mockResults,1,1,1);
-
-        request.verify();
-        searchService.verify();
-    }
-
-    //TODO
-    public void todo_testCanDealWithOneExactlyFullPage() {
-        fail("Not yet implemented");
-    }
-
-    //TODO
-    public void todo_testCanDealWithOnePageAndABit() {
-        fail("Not yet implemented");
-    }
-
-    //TODO
-    public void todo_testCanDisplaySecondPageOfTwo() {
-        fail("Not yet implemented");
-    }
-
-    private void assertModel(final Map model, final List mockResults, final int expectedEndIndex, final int expectedTotalMatches, final int expectedNumPages) {
-        final Collection actualResults = (Collection) model.get(RESULTS_BEAN_NAME);
-        assertNotNull(actualResults);
-        assertEquals(mockResults.size(),actualResults.size());
-
-        assertEquals(new Integer(1), model.get(BEGIN_INDEX_PARAMETER_NAME));
-        assertEquals(new Integer(expectedEndIndex), model.get(END_INDEX_PARAMETER_NAME));
-        assertEquals(new Integer(expectedTotalMatches), model.get(TOTAL_MATCHES_BEAN_NAME));
-        final Collection pages = (Collection) model.get(PAGES_BEAN_NAME);
-        assertEquals(expectedNumPages,pages.size());
-        final SearchComponentsController.Page currentPage = (SearchComponentsController.Page) model.get(CURRENT_PAGE_BEAN_NAME);
-        assertEquals(1,currentPage.getHitBeginIndex());
-        assertEquals(HITS_PER_PAGE,currentPage.getHitEndIndex());
-        assertEquals(1,currentPage.getPageIndex());
-    }
-
-    private static final class MockViewConfiguration implements SearchComponentsController.ViewConfiguration {
-        private final String formView;
-
-        public MockViewConfiguration(String formView) {
-            this.formView = formView;
-        }
-
-        public String getFormView() {
-            return formView;
-        }
-    }
-}
</pre></div>
<hr /><a name="file108" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/showcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>ShowComponentControllerTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N ShowComponentControllerTestCase.java
--- ShowComponentControllerTestCase.java	10 Nov 2003 20:21:44 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.showcomponent;
-
-import junit.framework.TestCase;
-import org.componenthaus.tests.MockComponentRepository;
-import org.componenthaus.tests.MockComponent;
-import org.springframework.web.servlet.ModelAndView;
-import com.mockobjects.servlet.MockHttpServletRequest;
-
-import javax.servlet.ServletException;
-import java.io.IOException;
-
-public class ShowComponentControllerTestCase extends TestCase {
-
-    public void testCallsRepositoryAndMakesModelAvailable() throws IOException, ServletException {
-        MockComponentRepository repository = new MockComponentRepository();
-        ShowComponentController controller = new ShowComponentController(repository);
-        String componentId = "jjhjh";
-        MockComponent component = new MockComponent(componentId);
-        repository.setupComponent(component);
-        final MockHttpServletRequest request = new MockHttpServletRequest();
-        request.setupAddParameter("id",componentId);
-        ModelAndView modelAndView = controller.handleRequestInternal(request,null);
-        assertNotNull(modelAndView.getViewName());
-        assertEquals(1,modelAndView.getModel().size());
-        assertSame(component,modelAndView.getModel().get(ShowComponentController.MODEL_NAME));
-        repository.verify();
-    }
-}
</pre></div>
<hr /><a name="file109" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>DefaultCarSubmissionManagerTestCase.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N DefaultCarSubmissionManagerTestCase.java
--- DefaultCarSubmissionManagerTestCase.java	9 Nov 2003 16:21:39 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import junit.framework.TestCase;
-import org.componenthaus.repository.api.Component;
-import org.componenthaus.repository.impl.ComponentImpl;
-import org.componenthaus.tests.MockComponentSubmissionManager;
-import org.componenthaus.tests.MockPrevayler;
-import org.componenthaus.util.file.FileManagerImpl;
-
-import java.io.File;
-import java.util.Collections;
-
-public class DefaultCarSubmissionManagerTestCase extends TestCase {
-    private static final MockSubmissionMonitor monitor = new MockSubmissionMonitor();
-    private MockCommandRegistry mockCommandRegistry = null;
-
-    protected void setUp() throws Exception {
-        mockCommandRegistry = new MockCommandRegistry();
-    }
-
-    public void testThrowsExceptionWhenSubmissionLacksMetadataFile() throws Exception {
-        final DefaultCarSubmissionManager manager = new DefaultCarSubmissionManager(mockCommandRegistry,null,monitor,null,null);
-        MissingJarEntryException expected = null;
-        try {
-            manager.submit(TestFiles.emptyFile());
-            fail("Did not get expected exception");
-        } catch (MissingJarEntryException e) {
-            expected = e;
-        }
-        assertEquals(CarSubmissionManager.METADATA_FILE_JAR_ENTRY_NAME,expected.getJarEntryName());
-    }
-
-    public void testThrowsExceptionWhenSubmissionLacksDistribution() throws Exception {
-        final DefaultCarSubmissionManager manager = new DefaultCarSubmissionManager(mockCommandRegistry,null,monitor,null,null);
-        MissingJarEntryException expected = null;
-        try {
-            manager.submit(TestFiles.justMetadataFile());
-            fail("Did not get expected exception");
-        } catch (MissingJarEntryException e) {
-            expected = e;
-        }
-        assertEquals(CarSubmissionManager.DISTRIBUTION_DIRECTORY_JAR_ENTRY_NAME,expected.getJarEntryName());
-    }
-
-    public void testHandlesSubmissionCorrectly() throws Exception {
-        mockCommandRegistry.setupExpectedSubmitComponentCalls(0); //mocked out - ComponentSubmissionManager does it
-        mockCommandRegistry.setupExpectedRegisterDownloadableCalls(1);
-        final MockComponentSubmissionManager mockComponentSubmissionManager = new MockComponentSubmissionManager();
-        mockComponentSubmissionManager.setSetupResult(Collections.singleton(new ComponentImpl()));
-        final DefaultCarSubmissionManager manager = new DefaultCarSubmissionManager(mockCommandRegistry, new FileManagerImpl(),monitor,new MockPrevayler(), mockComponentSubmissionManager);
-        manager.submit(TestFiles.validComponentSubmission());
-        mockCommandRegistry.verify();
-    }
-
-    private static final class MockSubmissionMonitor implements DefaultCarSubmissionManager.SubmissionMonitor {
-        public void componentSubmitted(Component component, File distribution) {
-        }
-    }
-}
</pre></div>
<hr /><a name="file110" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>DefaultComponentSubmissionManagerTestCase.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N DefaultComponentSubmissionManagerTestCase.java
--- DefaultComponentSubmissionManagerTestCase.java	9 Nov 2003 16:21:39 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,65 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import junit.framework.TestCase;
-import org.componenthaus.ant.metadata.ComponentMetadata;
-import org.componenthaus.ant.metadata.InterfaceMetadata;
-import org.componenthaus.repository.impl.ComponentFactory;
-import org.componenthaus.repository.impl.ComponentImpl;
-import org.componenthaus.tests.MockClassAbbreviator;
-import org.componenthaus.tests.MockPrevayler;
-import org.componenthaus.tests.MockMetadataConverterImpl;
-
-import java.util.Collections;
-import java.util.Collection;
-import java.util.ArrayList;
-
-public class DefaultComponentSubmissionManagerTestCase extends TestCase {
-    private ComponentSubmissionManager submissionManager = null;
-    private MockCommandRegistry mockCommandRegistry = null;
-    private MockMetadataConverterImpl metadataConverter = null;
-
-    protected void setUp() throws Exception {
-        mockCommandRegistry = new MockCommandRegistry();
-        metadataConverter = new MockMetadataConverterImpl();
-        submissionManager = new DefaultComponentSubmissionManager(metadataConverter, new MockPrevayler(),mockCommandRegistry);
-    }
-
-    public void testThrowsIllegalArgumentExceptionWhenGivenNull() {
-        try {
-            submissionManager.submit(null);
-            fail("Did not get expected exception");
-        } catch (IllegalArgumentException e) {
-        } catch (ComponentSubmissionException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void testThrowsExceptionIfComponentContainsNoInterfaces() {
-        ComponentMetadata componentMetadata = new ComponentMetadata();
-        try {
-            submissionManager.submit(componentMetadata);
-            fail("Did not get expected exception");
-        } catch (IllegalArgumentException e) {
-        } catch (ComponentSubmissionException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void testSubmitsComponentsToRepository() throws ComponentSubmissionException {
-        final ComponentImpl component1 = new ComponentImpl("a.b","1.0",Collections.EMPTY_LIST,"c","c","d");
-        final ComponentImpl component2 = new ComponentImpl("e.f","1.0",Collections.EMPTY_LIST,"g","g","h");
-        final Collection newComponents = new ArrayList();
-        newComponents.add(component1);
-        newComponents.add(component2);
-        metadataConverter.setSetupResult(newComponents);
-        mockCommandRegistry.setupExpectedAddComponent(component1);
-        mockCommandRegistry.setupExpectedAddComponent(component2);
-        mockCommandRegistry.setupExpectedSubmitComponentCalls(2);
-        ComponentMetadata componentMetadata = new ComponentMetadata();
-        componentMetadata.addInterface(new InterfaceMetadata("a","b","c","d",false));
-        componentMetadata.addInterface(new InterfaceMetadata("e","f","g","h",true));
-        Collection components = submissionManager.submit(componentMetadata);
-        assertEquals(2,components.size());
-        mockCommandRegistry.verify();
-    }
-}
</pre></div>
<hr /><a name="file111" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>MetadataConverterImplTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N MetadataConverterImplTestCase.java
--- MetadataConverterImplTestCase.java	9 Nov 2003 14:00:52 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,67 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import junit.framework.TestCase;
-import org.componenthaus.ant.metadata.ComponentMetadata;
-import org.componenthaus.ant.metadata.InterfaceMetadata;
-import org.componenthaus.ant.ClassAbbreviator;
-import org.componenthaus.ant.ClassAbbreviatorImpl;
-import org.componenthaus.ant.JavadocFormatterImpl;
-import org.componenthaus.ant.LineIndenterImpl;
-import org.componenthaus.repository.api.Component;
-import org.componenthaus.repository.impl.ComponentFactory;
-import org.componenthaus.tests.MockClassAbbreviator;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-public class MetadataConverterImplTestCase extends TestCase {
-    private MetadataConverter converter = null;
-    private ClassAbbreviator classAbbreviator = null;
-
-    protected void setUp() throws Exception {
-        classAbbreviator = new ClassAbbreviatorImpl(new JavadocFormatterImpl(80),new LineIndenterImpl());
-        converter = new MetadataConverterImpl(new ComponentFactory(),classAbbreviator);
-    }
-
-    public void testThrowsIllegalArgumentExceptionWhenGivenNull() {
-        try {
-            converter.convert(null);
-            fail("Did not get expected exception");
-        } catch (IllegalArgumentException e) {
-        }
-    }
-
-    public void testThrowsExceptionIfComponentContainsNoInterfaces() {
-        ComponentMetadata componentMetadata = new ComponentMetadata();
-        try {
-            converter.convert(componentMetadata);
-            fail("Did not get expected exception");
-        } catch (IllegalArgumentException e) {
-        }
-    }
-
-    public void testConvertsMetadataToComponentCollection() {
-        String aClass =
-                "package com.acme;\n" +
-                "public class AClass {\n" +
-                "}";
-
-        ComponentMetadata componentMetadata = new ComponentMetadata();
-        componentMetadata.addInterface(new InterfaceMetadata("a","b","c","d",false));
-        componentMetadata.addInterface(new InterfaceMetadata("com.acme","AClass","",aClass,true));
-        Collection components = converter.convert(componentMetadata);
-        assertEquals(2, components.size());
-        Iterator i = components.iterator();
-        Component component = (Component) i.next();
-        assertEquals("AClass",component.getName());
-        assertEquals("com.acme.AClass",component.getFullyQualifiedName());
-        assertEquals("",component.getFullDescription());
-
-        component = (Component) i.next();
-        assertEquals("b",component.getName());
-        assertEquals("a.b",component.getFullyQualifiedName());
-        assertEquals("c",component.getFullDescription());
-        assertEquals("d",component.getServiceInterface());
-    }
-
-}
</pre></div>
<hr /><a name="file112" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>MockCommandRegistry.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N MockCommandRegistry.java
--- MockCommandRegistry.java	9 Nov 2003 14:00:52 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,67 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import org.componenthaus.repository.services.CommandRegistry;
-import org.componenthaus.repository.api.Component;
-import org.prevayler.Command;
-import org.prevayler.PrevalentSystem;
-import junit.framework.Assert;
-
-import java.io.Serializable;
-import java.io.File;
-import java.util.Iterator;
-import java.util.Collection;
-import java.util.ArrayList;
-
-public class MockCommandRegistry implements CommandRegistry {
-    private int expectedSubmitComponentCalls;
-    private int actualSubmitComponentCalls;
-    private int actualRegisterDownloadableCalls;
-    private int expectedRegisterDownloadableCalls;
-    private Collection expectedAddComponents = new ArrayList();
-    private Collection actualAddComponents = new ArrayList();
-    private boolean addComponentsExpected = false;
-
-    public void setupExpectedSubmitComponentCalls(int i) {
-        this.expectedSubmitComponentCalls = i;
-    }
-
-    public Command createSubmitComponentCommand(Component component) {
-        actualSubmitComponentCalls++;
-        component.setId("1");
-        actualAddComponents.add(component);
-        return new Command() {
-            public Serializable execute(PrevalentSystem prevalentSystem) throws Exception {
-                return null;
-            }
-        };
-    }
-
-    public void setupExpectedAddComponent(Component component) {
-        this.expectedAddComponents.add(component);
-        addComponentsExpected = true;
-    }
-
-    public Command createRegisterDownloadableCommand(String componentId, File downloadable) {
-        actualRegisterDownloadableCalls++;
-        return new Command() {
-            public Serializable execute(PrevalentSystem prevalentSystem) throws Exception {
-                return null;
-            }
-        };
-    }
-
-    public void verify() {
-        Assert.assertEquals(expectedSubmitComponentCalls, actualSubmitComponentCalls);
-        Assert.assertEquals(expectedRegisterDownloadableCalls, actualRegisterDownloadableCalls);
-        if (addComponentsExpected) {
-            Assert.assertEquals(expectedAddComponents.size(), actualAddComponents.size());
-            for (Iterator i = expectedAddComponents.iterator(); i.hasNext();) {
-                Assert.assertTrue(actualAddComponents.contains(i.next()));
-            }
-        }
-    }
-
-    public void setupExpectedRegisterDownloadableCalls(int i) {
-        expectedRegisterDownloadableCalls = i;
-    }
-}
</pre></div>
<hr /><a name="file113" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>SubmitComponentControllerTestCase.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N SubmitComponentControllerTestCase.java
--- SubmitComponentControllerTestCase.java	9 Nov 2003 14:00:52 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,191 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import com.mockobjects.servlet.MockHttpServletRequest;
-import junit.framework.TestCase;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.ServletException;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-public class SubmitComponentControllerTestCase extends TestCase {
-    private static final String formView = "formView";
-    private static final String successView = "successView";
-    static final String simpleJarFilename = "junit.jar";
-    private static final ViewConfiguration viewConfiguration = new ViewConfiguration(formView,successView);
-    private MockSubmissionManager mockSubmissionManager = null;
-    private SubmitComponentController controller = null;
-
-    protected void setUp() throws Exception {
-        mockSubmissionManager = new MockSubmissionManager();
-        controller = new SubmitComponentController(viewConfiguration,mockSubmissionManager);
-    }
-
-    public void testViewConfigurationIsHandledCorrectly() {
-        final SubmitComponentControllerSubClass controller = new SubmitComponentControllerSubClass(viewConfiguration);
-        assertEquals(formView, controller.formView());
-        assertEquals(successView, controller.successView());
-    }
-
-    public void testThrowsExceptionWhenNotMultipartRequest() throws IOException, ServletException {
-        MockHttpServletRequest request = new MockHttpServletRequest();
-        try {
-            controller.onSubmit(request,null,null,null);
-            fail("Did not get expected exception");
-        } catch (NotAMultipartRequestServletException e) {
-        }
-    }
-
-    public void testThrowsExceptionWhenNoSubmissionInRequest() throws IOException, ServletException {
-        MockMultipartHttpServletRequest request = new MockMultipartHttpServletRequest();
-        RequiredMultipartFieldMissingServletException expected = null;
-        try {
-            controller.onSubmit(request,null,null,null);
-            fail("Did not get expected exception");
-        } catch (RequiredMultipartFieldMissingServletException e) {
-            expected = e;
-        }
-        assertEquals(SubmitComponentController.MULTIPART_FIELD_NAME,expected.getFieldName());
-    }
-
-    public void testDelegatesSubmittedJarfileCorrectly() throws IOException, ServletException {
-        MockMultipartHttpServletRequest request = new MockMultipartHttpServletRequest();
-        final File expectedJarFile = new File(SubmitComponentController.SUBMISSIONS_DIRECTORY_NAME,simpleJarFilename);
-        mockSubmissionManager.setupExpectedJarFile(expectedJarFile);
-        final MockMultipartFile mockMultipartFile = new MockMultipartFile(simpleJarFilename);
-        mockMultipartFile.setupExpectedTransferTo(expectedJarFile);
-        request.setupAddMultipartFile(SubmitComponentController.MULTIPART_FIELD_NAME,mockMultipartFile);
-        final ModelAndView view = controller.onSubmit(request,null,null,null);
-        mockSubmissionManager.verify();
-        mockMultipartFile.verify();
-
-        assertNotNull(view);
-        assertNotNull(view.getViewName());
-    }
-
-    private static final class MockSubmissionManager implements CarSubmissionManager {
-        private File expectedJarFile = null;
-        private File actualJarFile = null;
-
-        public void submit(File jarFile) {
-            actualJarFile = jarFile;
-        }
-
-        public void setupExpectedJarFile(File jarFile) {
-            this.expectedJarFile = jarFile;
-        }
-
-        public void verify() {
-            assertEquals(expectedJarFile,actualJarFile);
-        }
-    }
-
-    private static final class MockMultipartFile implements MultipartFile {
-        private File expectedTransferTo;
-        private File actualTransferTo;
-
-        private final String filename;
-
-        public MockMultipartFile(String filename) {
-            this.filename = filename;
-        }
-
-        public void setupExpectedTransferTo(File f) {
-            expectedTransferTo = f;
-        }
-
-        public String getName() {
-            throw new UnsupportedOperationException();
-        }
-
-        public String getOriginalFileName() {
-            return filename;
-        }
-
-        public String getContentType() {
-            throw new UnsupportedOperationException();
-        }
-
-        public long getSize() {
-            throw new UnsupportedOperationException();
-        }
-
-        public byte[] getBytes() throws IOException {
-            throw new UnsupportedOperationException();
-        }
-
-        public InputStream getInputStream() throws IOException {
-            throw new UnsupportedOperationException();
-        }
-
-        public void transferTo(File dest) throws IOException, IllegalStateException {
-            actualTransferTo = dest;
-        }
-
-        public void verify() {
-            assertEquals(expectedTransferTo, actualTransferTo);
-        }
-    }
-
-    private static final class MockMultipartHttpServletRequest extends MockHttpServletRequest implements MultipartHttpServletRequest {
-        private Map files = new HashMap();
-
-        public Iterator getFileNames() {
-            return null;
-        }
-
-        public MultipartFile getFile(String name) {
-            return (MultipartFile) files.get(name);
-        }
-
-        public Map getFileMap() {
-            return null;
-        }
-
-        public void setupAddMultipartFile(String name, MultipartFile f) {
-            files.put(name,f);
-        }
-    }
-
-
-    private static final class ViewConfiguration implements SubmitComponentController.ViewConfiguration {
-        private final String formView;
-        private final String successView;
-
-        public ViewConfiguration(String formView, String successView) {
-            this.formView = formView;
-            this.successView = successView;
-        }
-
-        public String getFormView() {
-            return formView;
-        }
-
-        public String getSuccessView() {
-            return successView;
-        }
-    }
-
-    /**
-     * Subclassing this so I can avail of some of the protected methods
-     */
-    private static final class SubmitComponentControllerSubClass extends SubmitComponentController {
-        public SubmitComponentControllerSubClass(SubmitComponentController.ViewConfiguration viewConfiguration) {
-            super(viewConfiguration,null);
-        }
-
-        public String formView() {
-            return getFormView();
-        }
-
-        public String successView() {
-            return getSuccessView();
-        }
-    }
-}
</pre></div>
<hr /><a name="file114" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>TestFiles.java</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N TestFiles.java
--- TestFiles.java	26 Oct 2003 14:43:09 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,30 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.submitcomponent;
-
-import java.io.File;
-import java.net.URL;
-
-public class TestFiles {
-    public static final String emptyFilename = "empty.jar";
-    public static final String validComponentSubmissionFilename = "validComponentSubmission.jar";
-    public static final String justMetadataFilename = "justMetadata.jar";
-
-    public static File emptyFile() {
-        return new File(getFilePath(emptyFilename));
-    }
-
-    private static String getFilePath(String filename) {
-        URL resource = TestFiles.class.getResource(filename);
-        if ( resource == null ) {
-            resource = TestFiles.class.getResource("/" + filename);
-        }
-        return resource.getFile();
-    }
-
-    public static File validComponentSubmission() {
-        return new File(getFilePath(validComponentSubmissionFilename));
-    }
-
-    public static File justMetadataFile() {
-        return new File(getFilePath(justMetadataFilename));
-    }
-}
</pre></div>
<hr /><a name="file115" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/welcomeuser<br /></span>
<div class="fileheader" id="removed"><big><b>WelcomeUserControllerTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N WelcomeUserControllerTestCase.java
--- WelcomeUserControllerTestCase.java	10 Nov 2003 20:21:44 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.usecases.welcomeuser;
-
-import junit.framework.TestCase;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.ServletException;
-import java.io.IOException;
-
-public class WelcomeUserControllerTestCase extends TestCase {
-
-    public void testReturnsCorrectView() throws IOException, ServletException {
-        WelcomeUserController controller = new WelcomeUserController();
-        final ModelAndView modelAndView = controller.handleRequest(null,null);
-        assertEquals("welcomeView", modelAndView.getViewName());
-    }
-}
</pre></div>
<hr /><a name="file116" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/util/file<br /></span>
<div class="fileheader" id="removed"><big><b>FileManagerImplTestCase.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N FileManagerImplTestCase.java
--- FileManagerImplTestCase.java	10 Nov 2003 20:21:44 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.util.file;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.FileWriter;
-import java.io.ByteArrayOutputStream;
-
-public class FileManagerImplTestCase extends TestCase {
-
-    public void testFileCopy() throws IOException {
-        FileManagerImpl fileManager = new FileManagerImpl();
-        File from = File.createTempFile(this.getClass().getName(),".txt");
-        String fileContents = "aalkdjlksdjlasdjlksdjlkasjdlaksjdlaksdsalkjd";
-        FileWriter writer = new FileWriter(from);
-        writer.write(fileContents);
-        writer.close();
-        ByteArrayOutputStream output = new ByteArrayOutputStream();
-        fileManager.copy(from, output);
-        output.close();
-        assertEquals(fileContents, new String(output.toByteArray()));
-    }
-}
</pre></div>
<hr /><a name="file117" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/util/file<br /></span>
<div class="fileheader" id="removed"><big><b>MockFile.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N MockFile.java
--- MockFile.java	3 Nov 2003 21:15:30 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.util.file;
-
-import java.io.File;
-
-public class MockFile extends File {
-    private boolean preparedExists = false;
-    private boolean preparedIsDirectory = false;
-    private int setupLength = 0;
-
-    public MockFile() {
-        super("");
-    }
-
-    public void setupExists(boolean b) {
-        preparedExists = b;
-    }
-
-    public boolean exists() {
-        return preparedExists;
-    }
-
-    public void setupLength(int length) {
-        setupLength = length;
-    }
-
-    public long length() {
-        return setupLength;
-    }
-
-    public void setupPreparedIsDirectory(boolean b) {
-        this.preparedIsDirectory = b;
-    }
-
-    public boolean isDirectory() {
-        return preparedIsDirectory;
-    }
-}
</pre></div>
<hr /><a name="file118" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/util/file<br /></span>
<div class="fileheader" id="removed"><big><b>MockFileManager.java</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N MockFileManager.java
--- MockFileManager.java	9 Nov 2003 14:00:52 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
</small></pre><pre class="diff" id="removed">-package org.componenthaus.util.file;
-
-import java.io.File;
-import java.io.OutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-public class MockFileManager implements FileManager {
-    private File preparedNewFile = null;
-
-    public void setupNewFile(File mockFile) {
-        preparedNewFile = mockFile;
-    }
-
-    public void copy(File from, OutputStream to) throws IOException {
-    }
-
-    public void copy(InputStream inputStream, File target) {
-    }
-
-}
</pre></div>
<hr /><a name="file123" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/testdata/poms<br /></span>
<div class="fileheader" id="removed"><big><b>PomLoader.java</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N PomLoader.java
--- PomLoader.java	4 Oct 2003 16:27:50 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
</small></pre><pre class="diff" id="removed">-package testdata.poms;
-
-import org.xml.sax.InputSource;
-
-import java.io.InputStream;
-import java.io.IOException;
-
-public class PomLoader {
-
-    public static final InputSource loadPom(final String pomName) throws IOException {
-        final InputStream in = PomLoader.class.getResourceAsStream(pomName);
-        return new InputSource(in);
-    }
-}
</pre></div>
<hr /><a name="file124" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/tests/testdata/poms<br /></span>
<div class="fileheader" id="removed"><big><b>picoPom.xml</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N picoPom.xml
--- picoPom.xml	4 Oct 2003 16:27:50 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,177 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;?xml version="1.0"  encoding="ISO-8859-1"?&gt;
-
-&lt;!DOCTYPE project [
-    &lt;!ENTITY eacute "&amp;#233;"&gt;
-    &lt;!ENTITY oslash "&amp;#248;"&gt;
-]&gt;
-
-&lt;project xmlns:j="jelly:core" xmlns:ant="jelly:ant"&gt;
-    &lt;pomVersion&gt;3&lt;/pomVersion&gt;
-    &lt;id&gt;picocontainer&lt;/id&gt;
-    &lt;name&gt;PicoContainer&lt;/name&gt;
-    &lt;currentVersion&gt;1.0-beta-2-SNAPSHOT&lt;/currentVersion&gt;
-
-    &lt;organization&gt;
-        &lt;name&gt;Codehaus&lt;/name&gt;
-        &lt;url&gt;http://codehaus.org/&lt;/url&gt;
-        &lt;logo&gt;http://images.werken.com/codehaus-plain.gif&lt;/logo&gt;
-    &lt;/organization&gt;
-    &lt;inceptionYear&gt;2003&lt;/inceptionYear&gt;
-    &lt;package&gt;org.picocontainer&lt;/package&gt;
-    &lt;logo&gt;/images/pico-logo.png&lt;/logo&gt;
-    &lt;description&gt;Small footprint IoC container&lt;/description&gt;
-    &lt;shortDescription&gt;Small footprint IoC container&lt;/shortDescription&gt;
-    &lt;description&gt;
-        PicoContainer is a small, simple container for arbitrary components. It is embeddable and
-        extentensible.  PicoContainer is designed for server and client
-        side, for small and enterprise applications. There are
-        already quite a few diverse containers that deliver the PicoContainer design.
-        Components can be created for it without importing or extending any
-        interfaces or classes outside of the java.* package.  Components also have no
-        meta-info specification. I.e. no XML. Most importantly of all, components for PicoContainer
-        can be used without PicoContainer for good old-fashioned hard-coded deployments.
-    &lt;/description&gt;
-    &lt;url&gt;http://www.picocontainer.org/&lt;/url&gt;
-    &lt;issueTrackingUrl&gt;http://jira.codehaus.org/secure/BrowseProject.jspa?id=10120&lt;/issueTrackingUrl&gt;
-    &lt;siteAddress&gt;codehaus.org&lt;/siteAddress&gt;
-    &lt;siteDirectory&gt;/www/picocontainer.codehaus.org&lt;/siteDirectory&gt;
-    &lt;distributionDirectory&gt;/www/picocontainer.codehaus.org/builds/&lt;/distributionDirectory&gt;
-    &lt;repository&gt;
-        &lt;connection&gt;scm:cvs:pserver:[email protected]:/cvsroot/picocontainer:pico&lt;/connection&gt;
-        &lt;url&gt;http://picocontainer.cvs.codehaus.org/pico/&lt;/url&gt;
-    &lt;/repository&gt;
-
-    &lt;versions&gt;
-        &lt;version&gt;
-            &lt;id&gt;1.0-alpha-1&lt;/id&gt;
-            &lt;name&gt;1.0-alpha-1&lt;/name&gt;
-            &lt;tag&gt;PICOCONTAINER_1_0_ALPHA_1&lt;/tag&gt;
-        &lt;/version&gt;
-        &lt;version&gt;
-            &lt;id&gt;1.0-alpha-2&lt;/id&gt;
-            &lt;name&gt;1.0-alpha-2&lt;/name&gt;
-            &lt;tag&gt;PICOCONTAINER_1_0_ALPHA_2&lt;/tag&gt;
-        &lt;/version&gt;
-        &lt;version&gt;
-            &lt;id&gt;1.0-beta-1&lt;/id&gt;
-            &lt;name&gt;1.0-beta-1&lt;/name&gt;
-            &lt;tag&gt;PICOCONTAINER_1_0_BETA_1&lt;/tag&gt;
-        &lt;/version&gt;
-        &lt;version&gt;
-            &lt;id&gt;1.0-beta-2&lt;/id&gt;
-            &lt;name&gt;1.0-beta-2&lt;/name&gt;
-            &lt;tag&gt;HEAD&lt;/tag&gt;
-        &lt;/version&gt;
-    &lt;/versions&gt;
-
-    &lt;mailingLists&gt;
-        &lt;mailingList&gt;
-            &lt;name&gt;PicoContainer Developers&lt;/name&gt;
-            &lt;subscribe&gt;http://lists.codehaus.org/mailman/listinfo/picocontainer-dev&lt;/subscribe&gt;
-            &lt;unsubscribe&gt;http://lists.codehaus.org/mailman/listinfo/picocontainer-dev&lt;/unsubscribe&gt;
-            &lt;archive&gt;http://lists.codehaus.org/pipermail/picocontainer-dev/&lt;/archive&gt;
-        &lt;/mailingList&gt;
-        &lt;mailingList&gt;
-            &lt;name&gt;PicoContainer CVS Commits (CVSSpam)&lt;/name&gt;
-            &lt;subscribe&gt;http://lists.codehaus.org/mailman/listinfo/picocontainer-commits&lt;/subscribe&gt;
-            &lt;unsubscribe&gt;http://lists.codehaus.org/mailman/listinfo/picocontainer-commits&lt;/unsubscribe&gt;
-            &lt;archive&gt;http://lists.codehaus.org/pipermail/picocontainer-commits/&lt;/archive&gt;
-        &lt;/mailingList&gt;
-    &lt;/mailingLists&gt;
-
-    &lt;developers&gt;
-        &lt;developer&gt;
-            &lt;name&gt;Paul Hammant&lt;/name&gt;
-            &lt;id&gt;paul&lt;/id&gt;
-            &lt;email&gt;paul_hammant-/[email protected]&lt;/email&gt;
-            &lt;organization&gt;&lt;/organization&gt;
-            &lt;roles&gt;
-                &lt;role&gt;Java Developer&lt;/role&gt;
-            &lt;/roles&gt;
-        &lt;/developer&gt;
-        &lt;developer&gt;
-            &lt;name&gt;Aslak Helles&amp;oslash;y&lt;/name&gt;
-            &lt;id&gt;rinkrank&lt;/id&gt;
-            &lt;email&gt;rinkrank-yCVjj/[email protected]&lt;/email&gt;
-            &lt;organization&gt;&lt;/organization&gt;
-            &lt;roles&gt;
-                &lt;role&gt;Java Developer&lt;/role&gt;
-            &lt;/roles&gt;
-        &lt;/developer&gt;
-        &lt;developer&gt;
-            &lt;name&gt;Jon Tirs&amp;eacute;n&lt;/name&gt;
-            &lt;id&gt;tirsen&lt;/id&gt;
-            &lt;email&gt;tirsen-yCVjj/[email protected]&lt;/email&gt;
-            &lt;organization&gt;&lt;/organization&gt;
-            &lt;roles&gt;
-                &lt;role&gt;Java Developer&lt;/role&gt;
-            &lt;/roles&gt;
-        &lt;/developer&gt;
-        &lt;developer&gt;
-            &lt;name&gt;Joe Walnes&lt;/name&gt;
-            &lt;id&gt;joe&lt;/id&gt;
-            &lt;email&gt;joe-yCVjj/[email protected]&lt;/email&gt;
-            &lt;organization&gt;&lt;/organization&gt;
-            &lt;roles&gt;
-                &lt;role&gt;Java Developer&lt;/role&gt;
-            &lt;/roles&gt;
-        &lt;/developer&gt;
-        &lt;developer&gt;
-            &lt;name&gt;Chris Stevenson&lt;/name&gt;
-            &lt;id&gt;skizz&lt;/id&gt;
-            &lt;email&gt;skizz-yCVjj/[email protected]&lt;/email&gt;
-            &lt;organization&gt;&lt;/organization&gt;
-            &lt;roles&gt;
-                &lt;role&gt;Java Developer&lt;/role&gt;
-            &lt;/roles&gt;
-        &lt;/developer&gt;
-    &lt;/developers&gt;
-
-    &lt;contributors&gt;
-        &lt;contributor&gt;
-            &lt;name&gt;Steve Freeman&lt;/name&gt;
-        &lt;/contributor&gt;
-        &lt;contributor&gt;
-            &lt;name&gt;Stacy Curl&lt;/name&gt;
-        &lt;/contributor&gt;
-    &lt;/contributors&gt;
-
-    &lt;dependemcies&gt;
-        &lt;dependency&gt;
-            &lt;id&gt;junit&lt;/id&gt;
-            &lt;version&gt;3.8.1&lt;/version&gt;
-        &lt;/dependency&gt;
-    &lt;/dependemcies&gt;
-
-    &lt;build&gt;
-        &lt;sourceDirectory&gt;${basedir}/src/java&lt;/sourceDirectory&gt;
-        &lt;unitTestSourceDirectory&gt;${basedir}/src/test&lt;/unitTestSourceDirectory&gt;
-        &lt;unitTest&gt;
-            &lt;includes&gt;
-                &lt;include&gt;**/*TestCase.java&lt;/include&gt;
-            &lt;/includes&gt;
-            &lt;excludes&gt;
-                &lt;exclude&gt;**/Abstract*&lt;/exclude&gt;
-            &lt;/excludes&gt;
-        &lt;/unitTest&gt;
-    &lt;/build&gt;
-
-    &lt;reports&gt;
-        &lt;report&gt;maven-license-plugin&lt;/report&gt;
-        &lt;report&gt;maven-faq-plugin&lt;/report&gt;
-        &lt;report&gt;maven-checkstyle-plugin&lt;/report&gt;
-        &lt;report&gt;maven-pmd-plugin&lt;/report&gt;
-        &lt;report&gt;maven-simian-plugin&lt;/report&gt;
-        &lt;report&gt;maven-jdepend-plugin&lt;/report&gt;
-        &lt;report&gt;maven-changelog-plugin&lt;/report&gt;
-        &lt;report&gt;maven-changes-plugin&lt;/report&gt;
-        &lt;report&gt;maven-statcvs-plugin&lt;/report&gt;
-        &lt;report&gt;maven-file-activity-plugin&lt;/report&gt;
-        &lt;report&gt;maven-developer-activity-plugin&lt;/report&gt;
-        &lt;report&gt;maven-jxr-plugin&lt;/report&gt;
-        &lt;report&gt;maven-javadoc-plugin&lt;/report&gt;
-        &lt;report&gt;maven-junit-report-plugin&lt;/report&gt;
-        &lt;report&gt;maven-clover-plugin&lt;/report&gt;
-    &lt;/reports&gt;
-
-&lt;/project&gt;
</pre></div>
<hr /><a name="file125" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF<br /></span>
<div class="fileheader" id="removed"><big><b>applicationContext.xml</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N applicationContext.xml
--- applicationContext.xml	21 Sep 2003 13:41:57 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,10 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"&gt;
-
-&lt;beans&gt;
-
-    &lt;bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"&gt;
-		&lt;property name="basename"&gt;&lt;value&gt;messages&lt;/value&gt;&lt;/property&gt;
-	&lt;/bean&gt;
-
-&lt;/beans&gt;
</pre></div>
<hr /><a name="file126" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF<br /></span>
<div class="fileheader" id="removed"><big><b>componenthaus-servlet.xml</b></big> <small id="info">removed after 1.5</small></div>
<pre class="diff"><small id="info">diff -N componenthaus-servlet.xml
--- componenthaus-servlet.xml	5 Oct 2003 12:26:40 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,125 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
-&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"&gt;
-
-&lt;beans&gt;
-
-    &lt;bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles.TilesConfigurer"&gt;
-	    &lt;property name="definitions"&gt;
-		    &lt;list&gt;
-		 	   &lt;value&gt;/WEB-INF/defs/definitions.xml&lt;/value&gt;
-		    &lt;/list&gt;
-	    &lt;/property&gt;
-	&lt;/bean&gt;
-
-    &lt;bean id="searchService" class="org.componenthaus.search.LuceneSearchService"/&gt;
-
-    &lt;bean id="codeFormatter" class="org.componenthaus.util.source.JalopyCodeFormatter"/&gt;
-
-    &lt;bean id="addComponentMonitor" class="org.componenthaus.search.AddComponentMonitor"&gt;
-        &lt;property name="searchService"&gt;
-            &lt;ref bean="searchService"/&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="repository" class="org.componenthaus.repository.api.RepositoryImpl"&gt;
-        &lt;property name="monitor"&gt;
-            &lt;ref bean="addComponentMonitor"/&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="fileManager" class="org.componenthaus.util.file.FileManagerImpl"/&gt;
-
-    &lt;bean id="componentFactory" class="org.componenthaus.repository.impl.ComponentFactory"/&gt;
-
-    &lt;bean id="serviceImplementationFactory" class="org.componenthaus.repository.impl.ServiceImplementationFactory"/&gt;
-
-    &lt;bean id="prevayler" class="org.componenthaus.prevayler.PrevaylerBean"&gt;
-        &lt;property name="prevaylentSystem"&gt;
-            &lt;ref bean="repository"/&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"&gt;
-        &lt;property name="basename"&gt;
-            &lt;value&gt;views&lt;/value&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"&gt;
-        &lt;property name="mappings"&gt;
-            &lt;props&gt;
-                &lt;prop key="/welcome.htm"&gt;welcomeController&lt;/prop&gt;
-                &lt;prop key="/submitComponent.action"&gt;submitComponentController&lt;/prop&gt;
-                &lt;prop key="/listComponents.action"&gt;listComponentsController&lt;/prop&gt;
-                &lt;prop key="/componentDetails.action"&gt;showComponentController&lt;/prop&gt;
-                &lt;prop key="/downloadComponent.action"&gt;downloadComponentController&lt;/prop&gt;
-                &lt;prop key="/showImplementation.action"&gt;showImplementationController&lt;/prop&gt;
-                &lt;prop key="/searchComponents.action"&gt;searchComponentsController&lt;/prop&gt;
-            &lt;/props&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="welcomeController" class="org.componenthaus.usecases.welcomeuser.WelcomeUserController"&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="submitComponentController" class="org.componenthaus.usecases.submitcomponent.SubmitComponentController"&gt;
-        &lt;property name="formView"&gt;
-            &lt;value&gt;submitComponentView&lt;/value&gt;
-        &lt;/property&gt;
-        &lt;property name="prevayler"&gt;
-            &lt;ref bean="prevayler"/&gt;
-        &lt;/property&gt;
-        &lt;property name="componentFactory"&gt;
-            &lt;ref bean="componentFactory"/&gt;
-        &lt;/property&gt;
-        &lt;property name="serviceImplementationFactory"&gt;
-            &lt;ref bean="serviceImplementationFactory"/&gt;
-        &lt;/property&gt;
-        &lt;property name="codeFormatter"&gt;
-            &lt;ref bean="codeFormatter"/&gt;
-        &lt;/property&gt;
-        &lt;property name="successView"&gt;
-            &lt;value&gt;welcomeView&lt;/value&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="listComponentsController" class="org.componenthaus.usecases.listcomponents.ListComponentsController"&gt;
-        &lt;property name="prevayler"&gt;
-            &lt;ref bean="prevayler"/&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="showImplementationController" class="org.componenthaus.usecases.showimplementation.ShowImplementationController"&gt;
-        &lt;property name="prevayler"&gt;
-            &lt;ref bean="prevayler"/&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="searchComponentsController" class="org.componenthaus.usecases.searchcomponents.SearchComponentsController"&gt;
-        &lt;property name="formView"&gt;
-            &lt;value&gt;searchCriteriaView&lt;/value&gt;
-        &lt;/property&gt;
-        &lt;property name="searchService"&gt;
-            &lt;ref bean="searchService"/&gt;
-        &lt;/property&gt;
-        &lt;property name="repository"&gt;
-            &lt;ref bean="repository"/&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="showComponentController" class="org.componenthaus.usecases.showcomponent.ShowComponentController"&gt;
-        &lt;property name="prevayler"&gt;
-            &lt;ref bean="prevayler"/&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-    &lt;bean id="downloadComponentController" class="org.componenthaus.usecases.downloadcomponent.DownloadComponentController"&gt;
-        &lt;property name="prevayler"&gt;
-            &lt;ref bean="prevayler"/&gt;
-        &lt;/property&gt;
-        &lt;property name="fileManager"&gt;
-            &lt;ref bean="fileManager"/&gt;
-        &lt;/property&gt;
-    &lt;/bean&gt;
-
-&lt;/beans&gt;
</pre></div>
<hr /><a name="file127" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF<br /></span>
<div class="fileheader" id="removed"><big><b>web.xml</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N web.xml
--- web.xml	7 Oct 2003 18:56:11 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,72 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
-
-&lt;!DOCTYPE web-app PUBLIC
-	"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
-	"http://java.sun.com/dtd/web-app_2_3.dtd"&gt;
-
-&lt;web-app&gt;
-
-    &lt;display-name&gt;componenthaus&lt;/display-name&gt;
-    &lt;description&gt;ComponentHaus component repository&lt;/description&gt;
-
-    &lt;context-param&gt;
-        &lt;param-name&gt;webAppRootKey&lt;/param-name&gt;
-        &lt;param-value&gt;webapp.root&lt;/param-value&gt;
-    &lt;/context-param&gt;
-
-    &lt;context-param&gt;
-        &lt;param-name&gt;log4jConfigLocation&lt;/param-name&gt;
-        &lt;param-value&gt;/WEB-INF/classes/log4j.properties&lt;/param-value&gt;
-    &lt;/context-param&gt;
-
-    &lt;listener&gt;
-        &lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener&lt;/listener-class&gt;
-    &lt;/listener&gt;
-
-    &lt;listener&gt;
-        &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
-    &lt;/listener&gt;
-
-    &lt;servlet&gt;
-        &lt;servlet-name&gt;componenthaus&lt;/servlet-name&gt;
-        &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;
-        &lt;init-param&gt;
-            &lt;param-name&gt;
-                contextClass
-            &lt;/param-name&gt;
-            &lt;param-value&gt;
-                org.componenthaus.spring.PicoApplicationContext
-            &lt;/param-value&gt;
-        &lt;/init-param&gt;
-        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
-    &lt;/servlet&gt;
-
-    &lt;servlet-mapping&gt;
-        &lt;servlet-name&gt;componenthaus&lt;/servlet-name&gt;
-        &lt;url-pattern&gt;*.htm&lt;/url-pattern&gt;
-    &lt;/servlet-mapping&gt;
-
-    &lt;servlet-mapping&gt;
-        &lt;servlet-name&gt;componenthaus&lt;/servlet-name&gt;
-        &lt;url-pattern&gt;*.action&lt;/url-pattern&gt;
-    &lt;/servlet-mapping&gt;
-
-    &lt;session-config&gt;
-        &lt;session-timeout&gt;10&lt;/session-timeout&gt;
-    &lt;/session-config&gt;
-
-    &lt;welcome-file-list&gt;
-        &lt;welcome-file&gt;welcome.htm&lt;/welcome-file&gt;
-    &lt;/welcome-file-list&gt;
-
-    &lt;error-page&gt;
-        &lt;exception-type&gt;java.lang.Exception&lt;/exception-type&gt;
-        &lt;location&gt;/WEB-INF/jsp/uncaughtException.jsp&lt;/location&gt;
-    &lt;/error-page&gt;
-
-    &lt;taglib&gt;
-	    &lt;taglib-uri&gt;http://jakarta.apache.org/tiles&lt;/taglib-uri&gt;
-	    &lt;taglib-location&gt;/WEB-INF/tld/struts-tiles-1.1.tld&lt;/taglib-location&gt;
-    &lt;/taglib&gt;
-
-&lt;/web-app&gt;
</pre></div>
<hr /><a name="file128" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/classes<br /></span>
<div class="fileheader" id="removed"><big><b>log4j.properties</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N log4j.properties
--- log4j.properties	16 Oct 2003 19:00:43 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
</small></pre><pre class="diff" id="removed">-log4j.rootCategory=INFO, stdout, logfile
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - &lt;%m&gt;%n
-
-log4j.appender.logfile=org.apache.log4j.RollingFileAppender
-log4j.appender.logfile.File=${webapp.root}/WEB-INF/componenthaus.log
-log4j.appender.logfile.MaxFileSize=512KB
-# Keep three backup files
-log4j.appender.logfile.MaxBackupIndex=3
-log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
-#Pattern to output : date priority [category] - &lt;message&gt;line_separator
-log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - &lt;%m&gt;%n
</pre></div>
<hr /><a name="file130" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/classes<br /></span>
<div class="fileheader" id="removed"><big><b>views.properties</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N views.properties
--- views.properties	4 Oct 2003 16:27:50 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
</small></pre><pre class="diff" id="removed">-welcomeView.class=org.springframework.web.servlet.view.tiles.TilesJstlView
-welcomeView.url=welcome
-
-#submitComponentView.class=org.springframework.web.servlet.view.JstlView
-#submitComponentView.url=/WEB-INF/jsp/usecases/submitcomponent/submitComponent.jsp
-submitComponentView.class=org.springframework.web.servlet.view.tiles.TilesJstlView
-submitComponentView.url=submitcomponent
-
-#listComponentsView.class=org.springframework.web.servlet.view.JstlView
-#listComponentsView.url=/WEB-INF/jsp/usecases/listcomponents/listComponents.jsp
-listComponentsView.class=org.springframework.web.servlet.view.tiles.TilesJstlView
-listComponentsView.url=listComponents
-
-#showComponentView.class=org.springframework.web.servlet.view.JstlView
-#showComponentView.url=/WEB-INF/jsp/usecases/showcomponent/showComponent.jsp
-showComponentView.class=org.springframework.web.servlet.view.tiles.TilesJstlView
-showComponentView.url=showComponent
-
-#showImplementationView.class=org.springframework.web.servlet.view.JstlView
-#showImplementationView.url=/WEB-INF/jsp/usecases/showimplementation/showImplementation.jsp
-showImplementationView.class=org.springframework.web.servlet.view.tiles.TilesJstlView
-showImplementationView.url=showImplementation
-
-#searchResultsView.class=org.springframework.web.servlet.view.JstlView
-#searchResultsView.url=/WEB-INF/jsp/usecases/searchcomponents/searchResults.jsp
-searchResultsView.class=org.springframework.web.servlet.view.tiles.TilesJstlView
-searchResultsView.url=searchResults
-
-#searchCriteriaView.class=org.springframework.web.servlet.view.JstlView
-#searchCriteriaView.url=/WEB-INF/jsp/usecases/searchcomponents/searchCriteria.jsp
-searchCriteriaView.class=org.springframework.web.servlet.view.tiles.TilesJstlView
-searchCriteriaView.url=searchCriteria
-
</pre></div>
<hr /><a name="file131" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/defs<br /></span>
<div class="fileheader" id="removed"><big><b>definitions.xml</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N definitions.xml
--- definitions.xml	5 Oct 2003 12:26:40 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,56 +0,0 @@
</small></pre><pre class="diff" id="removed">- &lt;!DOCTYPE tiles-definitions PUBLIC
-       "-//Apache Software Foundation//DTD Tiles Configuration//EN"
-       "http://jakarta.apache.org/struts/dtds/tiles-config.dtd"&gt;
-
-&lt;tiles-definitions&gt;
-
-    &lt;!-- =======================================================  --&gt;
-    &lt;!-- Master definitions                                       --&gt;
-    &lt;!-- =======================================================  --&gt;
-
-    &lt;!-- Page layout used as root for all pages. --&gt;
-    &lt;definition name="rootLayout" path="/WEB-INF/jsp/layout/rootLayout.jsp"&gt;
-        &lt;put name="titleString" value="ComponentHaus"/&gt;
-        &lt;put name="header" value="/WEB-INF/jsp/tiles/header.jsp"/&gt;
-        &lt;put name="content" value="CHANGE-ME"/&gt;
-    &lt;/definition&gt;
-
-    &lt;!-- =======================================================  --&gt;
-    &lt;!-- Page definitions                                         --&gt;
-    &lt;!-- =======================================================  --&gt;
-
-    &lt;definition name="welcome" extends="rootLayout"&gt;
-        &lt;put name="content" value="/WEB-INF/jsp/welcome.jsp"/&gt;
-    &lt;/definition&gt;
-
-    &lt;definition name="submitcomponent" extends="rootLayout"&gt;
-        &lt;put name="content" value="/WEB-INF/jsp/usecases/submitcomponent/submitComponent.jsp"/&gt;
-    &lt;/definition&gt;
-
-    &lt;definition name="listComponents" extends="rootLayout"&gt;
-        &lt;put name="content" value="/WEB-INF/jsp/usecases/listcomponents/listComponents.jsp"/&gt;
-    &lt;/definition&gt;
-
-    &lt;definition name="showComponent" extends="rootLayout"&gt;
-        &lt;put name="content" value="/WEB-INF/jsp/usecases/showcomponent/showComponent.jsp"/&gt;
-    &lt;/definition&gt;
-
-    &lt;definition name="showImplementation" extends="rootLayout"&gt;
-        &lt;put name="content" value="/WEB-INF/jsp/usecases/showimplementation/showImplementation.jsp"/&gt;
-    &lt;/definition&gt;
-
-    &lt;definition name="searchResults" extends="rootLayout"&gt;
-        &lt;put name="content" value="searchResultsTile" type="definition"/&gt;
-    &lt;/definition&gt;
-
-    &lt;definition name="searchResultsTile" path="/WEB-INF/jsp/usecases/searchcomponents/resultLayout.jsp"&gt;
-        &lt;put name="searchForm" value="/WEB-INF/jsp/usecases/searchcomponents/searchCriteria.jsp"/&gt;
-        &lt;put name="pagination" value="/WEB-INF/jsp/usecases/searchcomponents/paging.jsp"/&gt;
-        &lt;put name="results" value="/WEB-INF/jsp/usecases/searchcomponents/searchResults.jsp"/&gt;
-    &lt;/definition&gt;
-
-    &lt;definition name="searchCriteria" extends="rootLayout"&gt;
-        &lt;put name="content" value="/WEB-INF/jsp/usecases/searchcomponents/searchCriteria.jsp"/&gt;
-    &lt;/definition&gt;
-
-&lt;/tiles-definitions&gt;
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file132" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp<br /></span>
<div class="fileheader" id="removed"><big><b>includes.jsp</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N includes.jsp
--- includes.jsp	4 Oct 2003 16:27:51 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,3 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@ page session="false"%&gt;
-&lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&gt;
-&lt;%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %&gt;
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file133" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp<br /></span>
<div class="fileheader" id="removed"><big><b>uncaughtException.jsp</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N uncaughtException.jsp
--- uncaughtException.jsp	21 Sep 2003 13:41:58 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,58 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@ page import="jcontainer.exceptions.ActorException,
-                 jcontainer.exceptions.SystemException"%&gt;
-&lt;%@ include file="/WEB-INF/jsp/includes.jsp" %&gt;
-
-&lt;H2&gt;Internal error&lt;/H2&gt;
-&lt;P&gt;
-
-&lt;% 
-try {
-	// The Servlet spec guarantees this attribute will be available
-	Exception exception = (Exception) request.getAttribute("javax.servlet.error.exception"); 
-
-	if (exception != null) {
-		if (exception instanceof ServletException) {
-			// It's a ServletException: we should extract the root cause
-			ServletException sex = (ServletException) exception;
-			Throwable rootCause = sex.getRootCause();
-			if (rootCause == null)
-				rootCause = sex;
-			out.println("** Root cause is: "+ rootCause.getMessage());
-			rootCause.printStackTrace(new java.io.PrintWriter(out)); 
-		} else if ( exception instanceof ActorException ) {
-            out.println ("We think you did something wrong: " + exception.getMessage() + "&lt;/P&gt;");
-            out.println("This problem has been logged - please contact an administrator with this exception id");
-        } else if ( exception instanceof SystemException ) {
-            out.println ("We experienced a system failure: " + exception.getMessage()+ "&lt;/P&gt;" );
-            out.println("This problem has been logged - please contact an administrator with this exception id");
-        }
-		else {
-			// It's not a ServletException, so we'll just show it
-            out.println("Unknown system failure:&lt;/p&gt;");
-			exception.printStackTrace(new java.io.PrintWriter(out));
-		}
-	} 
-	else  {
-    out.println("No error information available");
-	}
-
-    out.println("&lt;/P&gt;");
-	// Display cookies
-	out.println("\nCookies:\n");
-	Cookie[] cookies = request.getCookies();
-	if (cookies != null) {
-    for (int i = 0; i &lt; cookies.length; i++) {
-      out.println(cookies[i].getName() + "=[" + cookies[i].getValue() + "]");
-		}
-	}
-	    
-} catch (Exception ex) { 
-	ex.printStackTrace(new java.io.PrintWriter(out));
-}
-%&gt;
-
-&lt;P&gt;
-&lt;BR&gt;
-&lt;A href="&lt;c:url value="welcome.htm"/&gt;"&gt;Home&lt;/A&gt;
-
-
</pre></div>
<hr /><a name="file134" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp<br /></span>
<div class="fileheader" id="removed"><big><b>welcome.jsp</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N welcome.jsp
--- welcome.jsp	4 Oct 2003 16:27:51 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,4 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;span class="description_text"&gt;
-Lets keep this interface lean, understated and efficient.  Click on one of the links at the top.  The links on the right are placeholders
-only.
-&lt;/span&gt;
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file135" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/layout<br /></span>
<div class="fileheader" id="removed"><big><b>rootLayout.jsp</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N rootLayout.jsp
--- rootLayout.jsp	5 Oct 2003 12:26:41 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,30 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@taglib uri="http://jakarta.apache.org/tiles" prefix="tiles" %&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;title&gt;&lt;tiles:getAsString name="titleString"/&gt;&lt;/title&gt;
-&lt;link rel="stylesheet" type="text/css" href="css/styles.css"/&gt;
-&lt;/head&gt;
-
-&lt;body&gt;
-&lt;table width="100%"  border="0"&gt;
-  &lt;tr&gt;
-  	&lt;%-- Begin Header --%&gt;
-    &lt;td colspan="2"&gt;&lt;tiles:insert attribute="header"/&gt;&lt;/td&gt;
-	&lt;%-- End Header --%&gt;
-  &lt;/tr&gt;
-  &lt;tr&gt;
-  	&lt;%-- Begin Left Menu --%&gt;
-    &lt;td width="2%"&gt;&lt;%-- Empty, for now --%&gt;&lt;/td&gt;
-	&lt;%-- End Left Menu --%&gt;
-	&lt;%-- Begin Main Content --%&gt;
-    &lt;td width="94%"&gt;&lt;tiles:insert attribute="content"/&gt;&lt;/td&gt;
-	&lt;%-- End Main Content --%&gt;
-  &lt;/tr&gt;
-  &lt;tr&gt;
-  	&lt;%-- Begin Footer --%&gt;
-    &lt;td colspan="2"&gt;&lt;%-- Empty, for now --%&gt;&lt;/td&gt;
-	&lt;%-- End Footer --%&gt;
-  &lt;/tr&gt;
-&lt;/table&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</pre></div>
<hr /><a name="file136" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/tiles<br /></span>
<div class="fileheader" id="removed"><big><b>header.jsp</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N header.jsp
--- header.jsp	4 Oct 2003 16:27:51 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;table width="100%"  border="0"&gt;
-  &lt;tr&gt;
-    &lt;td width="3%"&gt;&lt;/td&gt;
-    &lt;td width="12%" class="logotext"&gt;componenthaus&lt;/td&gt;
-    &lt;td width="2%"&gt;&lt;/td&gt;
-    &lt;td width="3%" onmouseover="style.backgroundColor='#c1bfbf'" onmouseout="style.backgroundColor='#ffffff'"&gt;
-        &lt;a HREF="submitComponent.action" class="main_menu_item"&gt;add&lt;/a&gt;
-    &lt;/td&gt;
-    &lt;td width="3%" onmouseover="style.backgroundColor='#c1bfbf'" onmouseout="style.backgroundColor='#ffffff'"&gt;
-        &lt;a HREF="searchComponents.action" class="main_menu_item"&gt;find&lt;/a&gt;
-    &lt;/td&gt;
-    &lt;td width="5%" onmouseover="style.backgroundColor='#c1bfbf'" onmouseout="style.backgroundColor='#ffffff'"&gt;
-        &lt;a HREF="listComponents.action" class="main_menu_item"&gt;browse&lt;/a&gt;
-    &lt;/td&gt;
-    &lt;td width="39%"&gt;&lt;/td&gt;
-    &lt;td width="33%" align="right"&gt;&lt;span class="slogan_text"&gt;it's all about components &lt;/span&gt;&lt;/td&gt;
-  &lt;/tr&gt;
-  &lt;tr&gt;
-    &lt;td height="1"&gt;&lt;/td&gt;
-    &lt;td height="1" colspan="7" bgcolor="#000000"&gt;&lt;/td&gt;
-  &lt;/tr&gt;
-  &lt;tr&gt;
-    &lt;td colspan="7"&gt;&lt;div align="right"&gt; &lt;/div&gt;&lt;/td&gt;
-    &lt;td&gt;&lt;div align="right"&gt;&lt;a HREF="listComponents.action" class="small_menu_item"&gt;help&lt;/a&gt;  &lt;a HREF="listComponents.action" class="small_menu_item"&gt;about&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
-  &lt;/tr&gt;
-&lt;/table&gt;
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file137" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/usecases/listcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>listComponents.jsp</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N listComponents.jsp
--- listComponents.jsp	5 Nov 2003 20:22:03 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@ include file="/WEB-INF/jsp/includes.jsp" %&gt;
-
-&lt;table width="70%" border="0" cellspacing="0"&gt;
-  &lt;tr&gt;
-    &lt;th scope="col" class="style3"&gt;&lt;div align="left"&gt;Name&lt;/div&gt;&lt;/th&gt;
-    &lt;th scope="col" class="style3"&gt;&lt;div align="left"&gt;Version&lt;/div&gt;&lt;/th&gt;
-    &lt;th scope="col" class="style3"&gt;&lt;div align="left"&gt;Description&lt;/div&gt;&lt;/th&gt;
-  &lt;/tr&gt;
-  &lt;c:forEach items="${components}" var="component"&gt;
-  &lt;c:url var="viewDetailsUrl" value="componentDetails.action" &gt;
-    &lt;c:param name="id" value="${component.id}" /&gt;
-  &lt;/c:url&gt;
-  &lt;c:url var="downloadUrl" value="downloadComponent.action" &gt;
-    &lt;c:param name="id" value="${component.id}" /&gt;
-  &lt;/c:url&gt;
-  &lt;tr&gt;
-    &lt;td class="description_text"&gt;&lt;c:out value="${component.name}"/&gt;&lt;/td&gt;
-    &lt;td class="description_text"&gt;&lt;c:out value="${component.version}"/&gt;&lt;/td&gt;
-    &lt;td class="description_text"&gt;&lt;c:out value="${component.oneLineDescription}"/&gt;&lt;/br&gt;
-        &lt;a href="&lt;c:out value="${viewDetailsUrl}"/&gt;"&gt;more&lt;/a&gt; &lt;a href="&lt;c:out value="${downloadUrl}"/&gt;"&gt;download&lt;/a&gt;
-    &lt;/td&gt;
-  &lt;/tr&gt;
-  &lt;/c:forEach&gt;
-&lt;/table&gt;
</pre></div>
<hr /><a name="file138" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/usecases/searchcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>paging.jsp</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N paging.jsp
--- paging.jsp	28 Oct 2003 19:36:06 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@ include file="../../includes.jsp" %&gt;
-&lt;span class="description_text"&gt;
-&lt;c:forEach var="page" items="${pages}"&gt;
-    &lt;c:choose&gt;
-        &lt;c:when test='${page.pageIndex == currentPage.pageIndex}'&gt;
-            &lt;c:out value="${page.pageIndex}"/&gt;
-        &lt;/c:when&gt;
-        &lt;c:otherwise&gt;
-            &lt;c:url var="url" value="searchComponents.action" &gt;
-                &lt;c:param name="query" value="${query}" /&gt;
-                &lt;c:param name="beginIndex" value="${page.hitBeginIndex}" /&gt;
-                &lt;c:param name="endIndex" value="${page.hitEndIndex}" /&gt;
-            &lt;/c:url&gt;
-            &lt;a href="&lt;c:out value="${url}"/&gt;"&gt;&lt;c:out value="${page.pageIndex}"/&gt;&lt;/a&gt;
-        &lt;/c:otherwise&gt;
-    &lt;/c:choose&gt;
-&lt;/c:forEach&gt;
-&lt;/span&gt;
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file139" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/usecases/searchcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>resultLayout.jsp</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N resultLayout.jsp
--- resultLayout.jsp	5 Oct 2003 12:26:41 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@taglib uri="http://jakarta.apache.org/tiles" prefix="tiles" %&gt;
-&lt;table width="100%"  border="0"&gt;
-
-  &lt;%-- Search form here --%&gt;
-  &lt;tr&gt;
-    &lt;td&gt;&lt;tiles:insert attribute="searchForm"/&gt;&lt;/td&gt;
-  &lt;/tr&gt;
-
-  &lt;%-- Results here --%&gt;
-  &lt;tr&gt;
-    &lt;td&gt;&lt;tiles:insert attribute="results"/&gt;&lt;/td&gt;
-  &lt;/tr&gt;
-
-  &lt;%-- Pagination here --%&gt;
-  &lt;tr&gt;
-    &lt;td&gt;&lt;tiles:insert attribute="pagination"/&gt;&lt;/td&gt;
-  &lt;/tr&gt;
-
-&lt;/table&gt;
</pre></div>
<hr /><a name="file140" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/usecases/searchcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>searchCriteria.jsp</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N searchCriteria.jsp
--- searchCriteria.jsp	5 Oct 2003 12:26:41 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,10 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@ include file="/WEB-INF/jsp/includes.jsp" %&gt;
-
-&lt;span class="description_text"&gt;
-Type your search query below.  You can use AND, OR and NOT.  '+' indicates a required word.
-&lt;/span&gt;
-
-&lt;form action="searchComponents.action" method="post"&gt;
-    &lt;input type="text" name="query" value="&lt;c:out value="${query}"/&gt;"/&gt;&lt;br&gt;
-    &lt;input type="submit" value="Search"&gt;
-&lt;/form&gt;
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file141" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/usecases/searchcomponents<br /></span>
<div class="fileheader" id="removed"><big><b>searchResults.jsp</b></big> <small id="info">removed after 1.3</small></div>
<pre class="diff"><small id="info">diff -N searchResults.jsp
--- searchResults.jsp	28 Oct 2003 19:36:06 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@ include file="../../includes.jsp" %&gt;
-
-&lt;span class="description_text"&gt;
-&lt;c:choose&gt;
-    &lt;c:when test='${totalMatches == 0}'&gt;
-    No matches found.
-    &lt;/c:when&gt;
-    &lt;c:otherwise&gt;
-        Results &lt;c:out value="${beginIndex}"/&gt; to &lt;c:out value="${endIndex}"/&gt; of &lt;c:out value="${totalMatches}"/&gt;&lt;/br&gt;
-
-        &lt;table border="0"&gt;
-            &lt;c:forEach items="${results}" var="result"&gt;
-                &lt;c:url var="viewDetailsUrl" value="componentDetails.action" &gt;
-                    &lt;c:param name="id" value="${result.id}" /&gt;
-                &lt;/c:url&gt;
-                &lt;tr&gt;
-                    &lt;td&gt;&lt;a href="&lt;c:out value="${viewDetailsUrl}"/&gt;" class="description_text"&gt;&lt;c:out value="${result.name}"/&gt;&lt;/a&gt;&lt;/td&gt;
-                    &lt;td class="description_text"&gt;&lt;c:out value="${result.oneLineDescription}"/&gt;&lt;/td&gt;
-                &lt;/tr&gt;
-            &lt;/c:forEach&gt;
-        &lt;/table&gt;
-    &lt;/c:otherwise&gt;
-&lt;/c:choose&gt;
-&lt;/span&gt;
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file142" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/usecases/showcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>showComponent.jsp</b></big> <small id="info">removed after 1.4</small></div>
<pre class="diff"><small id="info">diff -N showComponent.jsp
--- showComponent.jsp	5 Nov 2003 20:22:03 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@ include file="/WEB-INF/jsp/includes.jsp" %&gt;
-&lt;table width="70%"  border="0"&gt;
-    &lt;tr&gt;
-        &lt;td class="field_name" valign="top"&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt;
-        &lt;td class="description_text"&gt;&lt;c:out value="${component.name}"/&gt;&lt;/td&gt;
-    &lt;/tr&gt;
-    &lt;tr&gt;
-        &lt;td class="field_name" valign="top"&gt;&lt;b&gt;Version&lt;/b&gt;&lt;/td&gt;
-        &lt;td class="description_text"&gt;&lt;c:out value="${component.version}"/&gt;&lt;/td&gt;
-    &lt;/tr&gt;
-    &lt;tr&gt;
-        &lt;td class="field_name" valign="top"&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;
-        &lt;td class="description_text"&gt;&lt;c:out value="${component.fullDescription}"/&gt;&lt;/td&gt;
-    &lt;/tr&gt;
-    &lt;tr&gt;
-        &lt;td class="field_name" valign="top"&gt;&lt;b&gt;Interface&lt;/b&gt;&lt;/td&gt;
-        &lt;td class="description_text"&gt;&lt;pre&gt;&lt;c:out value="${component.serviceInterface}"/&gt;&lt;/pre&gt;&lt;/td&gt;
-    &lt;/tr&gt;
-&lt;/table&gt;
</pre></div>
<hr /><a name="file143" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/usecases/showimplementation<br /></span>
<div class="fileheader" id="removed"><big><b>showImplementation.jsp</b></big> <small id="info">removed after 1.1.1.1</small></div>
<pre class="diff"><small id="info">diff -N showImplementation.jsp
--- showImplementation.jsp	21 Sep 2003 13:41:58 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,71 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@ include file="../../includes.jsp" %&gt;
-&lt;style type="text/css"&gt;
-&lt;!--
-.style1 {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 10px;
-}
-.style2 {
-	font-size: 10px;
-	font-weight: bold;
-}
-.style3 {font-size: 10px}
-.style4 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
---&gt;
-&lt;/style&gt;
-&lt;table width="70%"  border="0"&gt;
-  &lt;tr&gt;
-    &lt;td bgcolor="#666666" class="style1"&gt;&lt;span class="style2"&gt;Name&lt;/span&gt;&lt;/td&gt;
-    &lt;td class="style1 style3"&gt;&lt;c:out value="${impl.name}"/&gt;&lt;/td&gt;
-    &lt;td bgcolor="#666666" class="style1"&gt;&lt;span class="style3"&gt;&lt;strong&gt;Authors&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;
-    &lt;td class="style4"&gt;&lt;c:out value="${impl.authorsCSV}"/&gt;&lt;/td&gt;
-    &lt;td bgcolor="#666666" class="style1"&gt;&lt;span class="style3"&gt;&lt;strong&gt;Plug Interfaces&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;
-  &lt;/tr&gt;
-  &lt;tr&gt;
-    &lt;td bgcolor="#666666" class="style1"&gt;&lt;span class="style3"&gt;&lt;strong&gt;Full name&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;
-    &lt;td class="style4"&gt;&lt;c:out value="${impl.fullyQualifiedName}"/&gt;&lt;/td&gt;
-    &lt;td bgcolor="#666666" class="style1"&gt;&lt;span class="style3"&gt;&lt;strong&gt;Version&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;
-    &lt;td class="style4"&gt;&lt;c:out value="${impl.version}"/&gt;&lt;/td&gt;
-    &lt;td class="style1"&gt;&lt;table width="100%"  border="0"&gt;
-      &lt;c:forEach var="plug" items="${impl.plugs}"&gt;
-      &lt;c:url var="viewDetailsUrl" value="componentDetails.action" &gt;
-        &lt;c:param name="id" value="${plug.id}" /&gt;
-      &lt;/c:url&gt;
-      &lt;tr&gt;
-        &lt;td&gt;&lt;span class="style3"&gt;&lt;a href="&lt;c:out value="${viewDetailsUrl}"/&gt;"&gt;&lt;c:out value="${plug.name}"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
-        &lt;td&gt;&lt;span class="style3"&gt;&lt;c:out value="${plug.version}"/&gt;&lt;/span&gt;&lt;/td&gt;
-      &lt;/tr&gt;
-      &lt;/c:forEach&gt;
-    &lt;/table&gt;&lt;/td&gt;
-  &lt;/tr&gt;
-  &lt;tr&gt;
-    &lt;td bgcolor="#666666" class="style3"&gt;&lt;span class="style4"&gt;&lt;strong&gt;Dependency Strategy&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;
-    &lt;td class="style4"&gt;&lt;a href="/todo.html"&gt;Type 3 IoC&lt;/a&gt;&lt;/td&gt;
-    &lt;td bgcolor="#666666" class="style2"&gt;&lt;span class="style4"&gt;&lt;span class="style3"&gt;&lt;strong&gt;Language&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
-    &lt;td class="style4"&gt;Java&lt;/td&gt;
-    &lt;td class="style1"&gt;&amp;nbsp;&lt;/td&gt;
-  &lt;/tr&gt;
-  &lt;tr&gt;
-    &lt;td bgcolor="#666666" class="style4"&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/td&gt;
-    &lt;td colspan="4" class="style4"&gt;&lt;span class="style3"&gt;&lt;pre&gt;&lt;c:out value="${impl.fullDescription}"/&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/td&gt;
-  &lt;/tr&gt;
-&lt;/table&gt;
-
-&lt;pre&gt;
-Again, I need to get this to fit on 800 x 600.
-There is a nice feature on this page, I think.  This page shows you an implementation
-of an interface.  It is intended for those looking to use the impl.  As such, it
-contains a list of the interfaces this impl depends on, which I have called plugs.  These
-plugs are themselves components, so clicking on them will take you back out to an
-interface specification page, which will in turn have impls available.  In other words,
-there is glue available also.
-
-What I'd like to be able to do is allow a component integrator pick an impl and then got a
-consolidated list of the interfaces he must implement.  For each interface, he can pick from
-a list of available impls.  Then the process recurses.  Alternatively he can say "I will implement
-this myself".  In any case, when he has finished selecting interfaces and impls, he gets a
-personalized jar file containing what he needs.
-
-One thing that I am almost ready is to show what other generic dependencies the impl has,
-like jar files etc.
-&lt;/pre&gt;
</pre></div>
<hr /><a name="file144" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/jsp/usecases/submitcomponent<br /></span>
<div class="fileheader" id="removed"><big><b>submitComponent.jsp</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N submitComponent.jsp
--- submitComponent.jsp	4 Oct 2003 16:27:51 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;%@ include file="/WEB-INF/jsp/includes.jsp" %&gt;
-
-&lt;span class="description_text"&gt;
-&lt;form enctype="multipart/form-data" action="submitComponent.action" method="post"&gt;
-    Upload a component:&lt;br&gt;
-    &lt;input type="file" name="submission" class="input" value=""&gt;&lt;br&gt;
-    &lt;input type="submit" value="Upload"&gt;
-&lt;/form&gt;
-
-To upload a component, you need to do the following:
-
-&lt;ul&gt;
-  &lt;li&gt;Create a .CAR file.  There is an &lt;a href="anttask.html" class="description_text"&gt;ant task&lt;/a&gt; to do this and also a &lt;a href="anttask.html" class="description_text"&gt;maven plug-in&lt;/a&gt;, with instructions for both.
-  &lt;li&gt;Once you have created the .CAR file, click Browse to locate it on your harddisk, then click Upload to commit it to the repository.
-&lt;/ul&gt;
-&lt;/span&gt;
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file145" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/WEB-INF/tld<br /></span>
<div class="fileheader" id="removed"><big><b>struts-tiles-1.1.tld</b></big> <small id="info">removed after 1.1</small></div>
<pre class="diff"><small id="info">diff -N struts-tiles-1.1.tld
--- struts-tiles-1.1.tld	4 Oct 2003 16:29:13 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,344 +0,0 @@
</small></pre><pre class="diff" id="removed">-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-
-
-
-
-
-
-
-&lt;!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"&gt;
-&lt;taglib&gt;
-&lt;tlibversion&gt;1.0&lt;/tlibversion&gt;
-&lt;jspversion&gt;1.1&lt;/jspversion&gt;
-&lt;shortname&gt;tiles&lt;/shortname&gt;
-&lt;uri&gt;http://jakarta.apache.org/struts/tags-tiles&lt;/uri&gt;
-&lt;tag&gt;
-&lt;name&gt;insert&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.InsertTag&lt;/tagclass&gt;
-&lt;bodycontent&gt;JSP&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;template&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;component&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;page&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;definition&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;attribute&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;name&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;beanName&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;beanProperty&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;beanScope&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;flush&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;ignore&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;role&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;controllerUrl&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;controllerClass&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;tag&gt;
-&lt;name&gt;definition&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.DefinitionTag&lt;/tagclass&gt;
-&lt;bodycontent&gt;JSP&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;id&lt;/name&gt;
-&lt;required&gt;true&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;scope&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;template&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;page&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;role&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;extends&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;tag&gt;
-&lt;name&gt;put&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.PutTag&lt;/tagclass&gt;
-&lt;bodycontent&gt;JSP&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;name&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;value&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;content&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;direct&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;type&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;beanName&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;beanProperty&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;beanScope&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;role&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;tag&gt;
-&lt;name&gt;putList&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.PutListTag&lt;/tagclass&gt;
-&lt;bodycontent&gt;JSP&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;name&lt;/name&gt;
-&lt;required&gt;true&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;tag&gt;
-&lt;name&gt;add&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.AddTag&lt;/tagclass&gt;
-&lt;bodycontent&gt;JSP&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;value&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;content&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;direct&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;type&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;beanName&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;beanProperty&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;beanScope&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;role&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;tag&gt;
-&lt;name&gt;get&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.GetTag&lt;/tagclass&gt;
-&lt;bodycontent&gt;empty&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;name&lt;/name&gt;
-&lt;required&gt;true&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;ignore&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;flush&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;role&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;tag&gt;
-&lt;name&gt;getAsString&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.GetAttributeTag&lt;/tagclass&gt;
-&lt;bodycontent&gt;empty&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;name&lt;/name&gt;
-&lt;required&gt;true&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;ignore&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;role&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;tag&gt;
-&lt;name&gt;useAttribute&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.UseAttributeTag&lt;/tagclass&gt;
-&lt;teiclass&gt;org.apache.struts.taglib.tiles.UseAttributeTei&lt;/teiclass&gt;
-&lt;bodycontent&gt;empty&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;id&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;classname&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;scope&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;name&lt;/name&gt;
-&lt;required&gt;true&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;ignore&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;tag&gt;
-&lt;name&gt;importAttribute&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.ImportAttributeTag&lt;/tagclass&gt;
-&lt;bodycontent&gt;empty&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;name&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;scope&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;ignore&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;tag&gt;
-&lt;name&gt;initComponentDefinitions&lt;/name&gt;
-&lt;tagclass&gt;org.apache.struts.taglib.tiles.InitDefinitionsTag&lt;/tagclass&gt;
-&lt;bodycontent&gt;empty&lt;/bodycontent&gt;
-&lt;attribute&gt;
-&lt;name&gt;file&lt;/name&gt;
-&lt;required&gt;true&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;attribute&gt;
-&lt;name&gt;classname&lt;/name&gt;
-&lt;required&gt;false&lt;/required&gt;
-&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
-&lt;/attribute&gt;
-&lt;/tag&gt;
-&lt;/taglib&gt;
-
-
-
</pre></div>
<hr /><a name="file146" /><div class="file">
<span class="pathname" id="removed">spice/sandbox/repository/componenthaus/src/webapp/css<br /></span>
<div class="fileheader" id="removed"><big><b>styles.css</b></big> <small id="info">removed after 1.2</small></div>
<pre class="diff"><small id="info">diff -N styles.css
--- styles.css	5 Nov 2003 20:22:03 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,54 +0,0 @@
</small></pre><pre class="diff" id="removed">-
-.main_menu_item {
-        font-family: Geneva, Arial, Helvetica, sans-serif;
-        font-size: 16px;
-        color: #666666;
-}
-.logotext {
-        font-family: Geneva, Arial, Helvetica, sans-serif;
-        font-weight: bold;
-        font-size: 16px;
-        color: #666666;
-}
-
-.slogan_text {
-        font-family: Geneva, Arial, Helvetica, sans-serif;
-        font-style: italic;
-        color: #666666;
-        font-size: 14px;
-}
-
-th {
-        font-family: Geneva, Arial, Helvetica, sans-serif;
-        font-style: italic;
-        color: #666666;
-        font-size: 14px;
-}
-
-.field_name {
-        font-family: Geneva, Arial, Helvetica, sans-serif;
-        font-style: italic;
-        color: #666666;
-        font-size: 14px;
-}
-
-.small_menu_item {
-        font-family: Geneva, Arial, Helvetica, sans-serif;
-        color: #666666;
-        font-size: 10px;
-}
-
-.description_text {
-        font-family: Geneva, Arial, Helvetica, sans-serif;
-        color: #666666;
-        font-size: 10px;
-}
-
-form {
- padding: 5px;
-}
-
-input {
- color: #666666;
- font-family: Geneva, Arial, Helvetica, sans-serif;
-}
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<center><small><a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/" title="commit -&gt; email">CVSspam</a> 0.2.8</small></center>
</body></html>