Introduction

Spelunk uses Spring beans and an xml configuration file to quickly wire together data sources, filters, analyzers, and reports into customized datamining applications. It also uses JMX MBeans to peek into and eventually gracefully stop the process (a quick and dirty GUI). It is very conservative with memory & CPU resource usage, preferring disk read/writes to accumulating information in context.

The Spelunk framework itself consists of the following:

  • net.metasimian.spelunk.Main - the typical main() application. This kicks off the Spring magic with XmlBeanFactory and also registers the MBean.
  • net.metasimian.spelunk.Spelunk - simple but powerful, the heart of the framework that kicks off the filters, analyzers, and reports a datasource.
  • net.metasimian.spelunk.statistics.Statistics - an MBean interface that provides statistics on the process and a "kill" button to stop it gracefully (ie: finish writing the report and closing the file).
  • net.metasimian.spelunk.source.DataSource - An interface that eventually wraps around directory, zip and files to create DataArtifacts that are used by the Analyzer & Filter.
  • net.metasimian.spelunk.filter.Filter - An interface that defines "rules" that can be applied to DataArtifacts.
  • net.metasimian.spelunk.analyzer.Analyzer - An interface that defines mini-processes to apply Filters to DataArtifacts and send positive results to Reports.
  • net.metasimian.spelunk.report.Report - An interface that takes Analyzer results and writes them to a variety of report formats.