Skip to content

Latest commit

 

History

History

lib

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Put jar files in here for external components you use
which do not need to be in the delivered .war file.
This is on the local classpath for your project.
Components that are needed at run time should be in
   WebContent/WEB-INF/lib/
instead.

Not all of these jar files are needed on the classpath in eclipse.
Some are for build.xml only.

Following up on http://cselnx4.dl.ac.uk:8080/jira/browse/PIMS-58 indicates that there are several jars in pims-web/lib that are unnecessary. I have categorised the jars as follows:

1. Required on eclipse classpath, required by web application but provided by tomcat (in common/lib):

  servlet-api.jar       
  jsp-api.jar           

2. Required on eclipse classpath, required by web application but duplicated in pims-web/WebContent/WEB-INF/lib:

  axis.jar              => org.pimslims.servlet.recordfetch.DBFetch
  jaxrpc.jar            => org.pimslims.servlet.recordfetch.RequestType

3. Required on eclipse classpath but not required by web application:

  csvutils.jar          => many classes in org.pimslims.command, providing they are not called from the web-app
  httpunit.jar          => test classes
  jericho-html-1.4.jar  => org.pimslims.command.targets.LeedsHTMLTargetsParser, providing they are not called from the web-app
  junit.jar             => test classes

4. Required during war and compileTests build:

  jasper-compiler.jar   => required to build the jsps for the war
  jasper-runtime.jar    => required to build the jsps for the war
  commons-el.jar        => required to build the jsps for the war

5. Probably required by HttpUnit runtime (see Apendix A - HttpUnit dependencies)

  js.jar                => testing javascript - see http://httpunit.sourceforge.net/doc/manual/index.html and http://httpunit.sourceforge.net/doc/faq.html#norhino
  Tidy.jar              => see http://httpunit.sourceforge.net/doc/manual/index.html

6. Not required on eclipse classpath for building but may be runtime required and duplicated in pims-web/WebContent/WEB-INF/lib:

  activation.jar        => required by axis to handle errors thrown by EBI web services
  commons-discovery.jar => required by axis runtime
  saaj.jar              => required by axis runtime


Appendix A - HttpUnit dependencies [ http://httpunit.sourceforge.net/doc/manual/index.html ]:

  Runtime:
  ========
  
     Jar             Have       Description
  nekohtml.jar        N   - HTML parsing - Very tolerant of sloppy HTML - Requires xerces-j 2.2 or higher - http://www.apache.org/~andyc/neko/doc/html/index.html
  tidy.jar            Y   - HTML parsing - Very picky - Works with any jaxp-compliant parser - http://lempinen.net/sami/jtidy/
  xmlParserAPIs.jar   N   - not required JDK >= 1.5.0? - aka xml-apis.jar - the generic parser APIs supported by xerces-j - http://xml.apache.org
  xercesImpl.jar      N   - not required JDK >= 1.5.0? - the xerces-j 2.2 implementation - http://xml.apache.org
  js.jar              Y   - javascript support - http://www.mozilla.org/rhino
  servlet.jar         Y   - aka servlet-api.jar - required for ServletUnit - unit testing of servlets - http://java.sun.com
  junit.jar           Y   - running the unit tests - http://www.junit.org

  Buildtime:
  ==========
  
     Jar             Have       Description
  mail.jar            N   - Testing the file upload capabilities - not used to run - HttpUnit itself http://java.sun.com/products/javamail/
  activation.jar      Y   - Testing the file upload capabilities - not used to run - HttpUnit itself http://java.sun.com/products/javabeans/glasgow/jaf.html


My recommendations are:

A. The jars in category 1 should remain in pims-web/lib and on the eclipse classpath as the web app should use the container-provided versions

B. The jars in category 2 should be removed from the eclipse classpath, deleted from pims-web/lib and their pims-web/WebContent/WEB-INF/lib equivalents added to the eclipse classpath instead

C. The jars in categories 3 and 4 should remain in pims-web/lib and on the eclipse classpath

D. The jars in category 5 should remain in pims-web/lib and on the eclipse classpath as they may be required during the execution of a test case

E. The jars in category 6 should be removed from the eclipse classpath, deleted from pims-web/lib and their pims-web/WebContent/WEB-INF/lib equivalents added to the eclipse classpath instead

Jon