Guideline and Status of Included Jar Files

From Informatics

Jump to: navigation, search

- there are duplicated jar files in geworkbench core and components. is that the problem? if yes, what is the problem. yes, it is a problem: to a less extent, it increase the release size; the more important problem is that it potentially cause version conflicting between components

- should we put a jar file in core if it is used in multiple components? more likely not than should considering the previous equestion. It should be in core if it is used by core or (it is used in multiple components and it is not part of the third party API supporting library, e.g. annotations and caarray). If it is part of 3rd party API library and we put it in core, it would be a problem when we need to update that library.

- as of today, there are 38 jar files in geWorkbench core

- genSpace needs a large number of jar files to support. They are all put under the subdirectory 'genspace'

Updating this page is very important. We need time. Look at an properly managed example http://fest.easytesting.org/swing/dependencies.html

Contents

Guideline: should this jar file be put in geworkbench core

A jar file deserves a position in geWorkbench core only if:

  1. it is used directly by the core (not individual geWorkbench component) OR
  2. it is being used or likely to be used by multiple components AND not likely to have conflicting libraries or versions

If it does not meet that guide line, leave it in the component's lib directory. It is OK to have a few duplicates across different components.

Either in the core or in individual components, we should in general try to use the latest version of a jar file.

Example jar files that are not directly used by the core but deserves a position in the core's lib: commons-math, commons-collections, etc.

jar files that have been removed from geworkbench core

  1. bcel-5.1 (Byte Code Engineering Library) used by ClassSeracher, which is referenced by ComponentResource but not really used by anything. latest version is 5.2
  1. xmlsec - should be put in the components that need it (discovery and sequence retriever). it may actually solve more problem.
  2. antlr-2.7.5.jar - this is only used by cascript package in core; annotations compomnent hs its own copy of this jar 2.7.6
  3. ensj-30.2
  4. bnj-kdd
  5. cog-axis and cog-jglobus: some classes in them are mentioned in client-config.wsdd, which is necessary for analysis/dispatcher stuff, but the jar files needed are really those copies in analysis component. cog-jglobus is used by sequence retreiver component, so it is moved there.
  6. distributions: used to be used in ClusterStatistics, and two dead components gnomebrwoser and gsea. after I cleaned up ClusterStatistics, removed.
  7. dom4j-1.6.1: used in dead class ConfigWriter. After I removed ConfigWriter, that jar can be removed as well.
  8. globusSplash
  9. Jama: this is a very useful algorithm library, but not actually used. component gpmodule_v3.0 may need it but it already has a copy in its own lib. dead component gsea may use it too.
  10. jbcl, koto-jdo, kodo-kdo-runtime: cutenet may ues kodo, but it has own copy. note koto uses jbcl.
  11. jgraph and jgraphpad: only genspace uses jgraph and it has own copy
  12. JRclient-RF503.jar: R support.
  13. NetComponents.jar: this is old stuff see http://www.savarese.org/oro/index.html and http://commons.apache.org/net/
  14. piccolo and piccolox: 2D Graphics Framework. see http://www.cs.umd.edu/hcil/jazz/ and http://www.piccolo2d.org/
  15. poi-2.5.1-final-20040804 and poi-scratchpad-2.5.1.-final-20040804: Apache POI - the Java API for Microsoft Documents
  16. polgara: used by pattern discovery but it has its own copy
  17. puretls: key/certificate related stuff from see http://wiki.cogkit.org/wiki/Main_Page and http://www.cogkit.org/release/4_0_a1/api/jglobus/org/globus/gsi/ptls/PureTLSUtil.html
  18. saaj: javax.xml.soap. only cytospace has similar stuff in saaj-impl.jar
  19. sjsxp: com.sun.xml.stream
  20. swing-layout-1.0.jar: package org.jdesktop.layout. cytoscape uses it but it has its own copy and is a newer version 1.0.3
  21. weka: machine learning library. see http://www.cs.waikato.ac.nz/~ml/weka/
  22. wsdl4j.jar: two packages com.ibm.wsdl.* javax.wsdl
  23. jdo-1.0.1: used in cutenet
  24. saxpth-1.0-FCS: package com.werken.saxpath, org.saxpath.*
  25. cryptix and cryptix32 and cryptix-asn1.jar: used in genetegrate. an out-of-date cryptography project. see http://www.cryptix.org/
  26. mageon-client.jar: caarray related. packages gov.nih.nci.common.* and gpv.nih.nci.mageom.*
  27. jaxb-rt-1.0-ea.jar and jsr173_api.jar: xml related. Needed functions now part of current JRE
    1. jsr173_api.jar - The classes (dating from 2005) in jsr173_api.jar\javax\xml\stream\ are also present in the current Java 7 jre in jre\lib\rt.jar\javax\xml\stream\
    2. jaxb-rt-1.0-ea.jar - JAXB is provided in the Java JRE and is mentioned at least as far back as Java 5.
    3. stax-1.2.0_rc1-dev.jar (provides com.bea.xml.stream): A text search for "com.bea.xml" finds hits only in jsr173_api.jar.
  28. Old dll files no longer used anywhere - probably left over from old reverse engineering component.
    1. ClusterDLL.dll, GenesAtWork.dll, mutualinfo.dll, MutualInfoDLL.dll, cc3260mt.dll, stlpmt45.dll
    2. mk/enQuiry.dll

jar files that have been confirmed for their use in geworkbench core

  1. forms-1.0.5: jgoodies used in many places. Over 500 errors if removed. However, this is a very old version. We should replace with later version.
  2. commons-math: used in ttest, masterregulator, aracne, mindy, idea, and indirectly by cytoscape through StatUtil. We're using version 2.2. The latest version is 3.0; we should update.
  3. 10 jar files added by Meng for the collaboration feature.
  4. AffyFusion.jar: class FusionCELData used in CSProbeIntensityArray
  5. ant.jar & ant-launcher.jar: needed by launch_geworkbench.bat and .sh
  6. cglib-nodep-2.1 used by ComponentRegistry and inactive component genomebrowser
  7. collections-generic-4.0 used by many bison classes and matrixreduce (not the latest version and a thing that is likely cause conflict. known to cause linkage problem with one of cytoscape's plugin). I recommend not use it or keep it in components. updated version http://www.jarvana.com/jarvana/browse/net/sourceforge/collections/collections-generic/4.01/
  8. distributions: used in ClusterStatistics, and two dead components gnomebrwoser and gsea. potentially removable - gone
  9. jdom.jar used ComponentConfigurationManager and PluginObject. not the latest version. should update.
  10. ginkgo-0.1SNAPSHOT: used in core (only for GridEndpointReferenceType) and analysis component (indirectly through DispatcherClient.jar). Any other components' dependency on this jar has been eliminated and should never be added.
  11. ostermillerutils_1_04_03_for_kaffe.jar: used in AnnotationParser, components annotations and selectors. not very useful. I'd rather not having this dependency
  12. xalan.jar: required by pattern discovery (? or is it sequence retreiver) only. the reason it has to be in teh core may be just the order teh classes are loaded - because they are dynamically loaded so the order is decide during runtime. this need to be investiagate further.
    1. In Mantis #3818, an exception in the LINCS component that only occurred in Java 8 was fixed by updating the following from xalan-j_2_7_2-bin:
      1. xalan.jar
      2. xml-apis.jar
      3. serializer.jar (added)
    2. The old xalan.jar had to be added to the Sequence Retriever component after the above update (Mantis #3922). So this is a bit confused now...
  13. jaxen.jar: used by medusa. similar to the situation for xalan - it only works when being in the core
  14. jfreechart-1.0.13.jar: used in many places, e.g. expression profile, volcano plot, scatter plot, lincs, etc
  15. jcommon-1.0.23.jar - used by jfreechart-1.0.13.
  16. jhall.jar - Java Help system. Although Java Help is no longer used directly in geWorkbench since "Online Help" was removed, jhall.jar is still required by the Cytoscape component.
  17. jaxrpc.jar - if ommitted, XML parsing exception in CCM:
    1. at org.geworkbench.engine.ccm.ComponentConfigurationManager.loadComponent(ComponentConfigurationManager.java:273)
    2. at org.geworkbench.engine.ccm.ComponentConfigurationManager.loadSelectedComponents(ComponentConfigurationManager.java:244)
    3. at org.geworkbench.engine.config.UILauncher.main(UILauncher.java:250)
    4. Caused by: java.lang.ClassNotFoundException: javax.xml.rpc.ServiceException
      1. at org.geworkbench.engine.management.ComponentClassLoader.loadClass(ComponentClassLoader.java:66)
      2. at org.geworkbench.engine.management.ComponentClassLoader.loadClass(ComponentClassLoader.java:35)
  18. JAI files - Java Advanced Imaging - these are used in util/SaveImage to create PNG images. Known uses are for saving the bar code graph in Master Regulator Analysis to a PNG file, and saving images in the workspace to PNG files.
    1. jai_core.jar
    2. jai_codec.jar
    3. mlib_image_jai.dll
    4. mlib_java_jai.dll

jar files that need more investigation

  1. xml-apis: Needed by xalan.jar. Previous note: packages javax.xml.*, org.apachae.xmlcommons, org.w3c.dom.*, org.xml.sax.*

Anomalies

  1. aracne depends on an old apache.commons.math (1.2). Although commons math is included in the core, aracne component has to have its own. See mantis #2673.
  2. See the above entries about xalan.jar which is now in an indefinite state.
Personal tools