Depot Version
Home
Ant Tasks
Tools
API
Integration
 Apache Incubator > Depot > Version 

Depot Version

Introduction

Ever wanted to "capture" and "document" information regarding the versions of packages in your build environment? Ever wanted to ask others "what is your environment?" when they report a problem in your well tested code? Ever been frustrated by JAR-hell, and the manual tasks of debugging it? Ever wanted to assert runtime dependency upon a version of a package, despite the classloader loading whatever it will? If so, that is what lead to Apache Depot Version, so please read on...

Depot Version is designed to enable package versioning (and version introspection) to attempt to reduce JAR-hell through automation. See some examples

Note
Depot Version does not remove JAR-hell but automates some of the tasks associated with envrionment debugging, to remove this task from the environment operators. Depot Version attempts to allow operators to cooperate with developers and QA testers in actively documenting/asserting dependencies and contraints.

Depot Version automates the tasks of:

  • Stamping the version of a package into the package jar.
  • Knowing what runtime version of a package exists in a runtime environment.
  • Determining any version constraints that exists on packages, as determined by the author, site operator, or other.
  • Evaluating constraints against the runtime environment, automatically detecting previously 'documented' incompatibilities. (A developer or tester can communicate known compatibilities and incompatibilities with the software.)
  • Debugging environments.

As such it implements the following components (cents, ant tasks, tools and plug-ins) on top of it's own API:

  • Ant tasks -- building blocks (for lower-level ant build scripts)
  • Command Line Tools -- zero-dependency debugging utilities
  • APIs -- extension and integration

by Anou Manavalan, Adam R. B. Jack, Nick Chalko