<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">











<html>
  <head>
    <title>Apache DVSL - Project Dependencies</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <link rel="alternate" href="http://feeds.feedburner.com/ApacheVelocitySiteNews" type="application/rss+xml" title="Apache DVSL - Project Dependencies News" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      </head>
  <body class="composite">
    <div id="banner">
                  <a href="../../../" id="bannerLeft">
    
                                            <img src="images/velocity_project_wide.png" alt="" />
    
            </a>
                          <span id="bannerRight">
    
                                            <img src="images/dvsl.png" alt="" />
    
            </span>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
  
  
    
            <div class="xleft">
          
          <a href="http://www.apache.org/">Apache</a>
              &gt;
      
          <a href="../../../">Velocity</a>
              &gt;
      
          DVSL
                </div>
            <div class="xright">      <a href="../../../engine/devel/">Engine</a>
          |
          <a href="../../../tools/devel/">Tools</a>
          |
          <a href="../../../anakia/devel/">Anakia</a>
          |
          <a href="../../../texen/devel/">Texen</a>
          |
          <a href="../../../docbook/">DocBook</a>
          |
          <a href="../../devel/">DVSL</a>
          
  

  
    
  
  
    
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
    
                   <h5>DVSL</h5>
        <ul>
              
    <li class="none">
              <a href="index.html">General</a>
        </li>
              
    <li class="none">
              <a href="../../../download.cgi">Download</a>
        </li>
          </ul>
          <h5>Documentation</h5>
        <ul>
              
    <li class="none">
              <a href="users-guide.html">User Guide</a>
        </li>
              
    <li class="none">
              <a href="ant_task_reference.html">Ant Task Reference</a>
        </li>
              
    <li class="none">
              <a href="more-resources.html">More Resources</a>
        </li>
          </ul>
          <h5>Community</h5>
        <ul>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/">Wiki</a>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/GetInvolved">Get Involved</a>
        </li>
              
    <li class="none">
              <a href="../../../contact.html">Mailing Lists</a>
        </li>
          </ul>
          <h5>Velocity Development</h5>
        <ul>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/CodeStandards">Coding Standards</a>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/DocumentationGuidelines">Documentation Guidelines</a>
        </li>
              
    <li class="none">
              <a href="https://issues.apache.org/jira/browse/DVSL">Issues</a>
        </li>
              
    <li class="none">
              <a href="../../../who-we-are.html">Who we are</a>
        </li>
          </ul>
          <h5>Project Documentation</h5>
        <ul>
              
                
              
            
            
      
            
      
            
      
            
      
              
            <li class="expanded">
              <a href="project-info.html">Project Information</a>
                <ul>
                  
    <li class="none">
              <strong>Dependencies</strong>
        </li>
                  
    <li class="none">
              <a href="issue-tracking.html">Issue Tracking</a>
        </li>
                  
    <li class="none">
              <a href="license.html">Project License</a>
        </li>
                  
    <li class="none">
              <a href="project-summary.html">Project Summary</a>
        </li>
                  
    <li class="none">
              <a href="source-repository.html">Source Repository</a>
        </li>
              </ul>
        </li>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-reports.html">Project Reports</a>
              </li>
          </ul>
                                             
                        
                        
                        <a class="poweredBy" href="../../../" title="Apache Velocity" ><img class="poweredBy" alt="Apache Velocity" src="images/pbv90x30.png" /></a>
                                
                        
                        
                        <a class="poweredBy" href="../../../rss/news.rss" title="Velocity News Feed" ><img class="poweredBy" alt="Velocity News Feed" src="images/feed-icon-24x24.jpg" /></a>
                    

           
  

  
    
  
  
    
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h2>Project Dependencies</h2><div class="section"><h3>compile</h3><p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p><table class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Classifier</th><th>Type</th><th>Optional</th></tr><tr class="b"><td>crimson</td><td>crimson</td><td>1.1.3</td><td>-</td><td>jar</td><td> </td></tr><tr class="a"><td>dom4j</td><td>dom4j</td><td>1.6.1</td><td>-</td><td>jar</td><td> </td></tr><tr class="b"><td>jaxen</td><td>jaxen</td><td>1.1.1</td><td>-</td><td>jar</td><td> </td></tr><tr class="a"><td>org.apache.velocity</td><td>velocity</td><td>1.5</td><td>-</td><td>jar</td><td> </td></tr></table></div><div class="section"><h3>provided</h3><p>The following is a list of provided dependencies for this project. These dependencies are required to compile the application, but should be provided by default when using the library:</p><table class="bodyTable"><tr class="b"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Classifier</th><th>Type</th><th>Optional</th></tr><tr class="a"><td>junit</td><td>junit</td><td>4.3.1</td><td>-</td><td>jar</td><td> </td></tr><tr class="b"><td>oro</td><td>oro</td><td>2.0.8</td><td>-</td><td>jar</td><td> </td></tr></table></div></div><div class="section"><h2>Project Transitive Dependencies</h2><p>The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.</p><div class="section"><h3>compile</h3><p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p><table class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Classifier</th><th>Type</th><th>Optional</th></tr><tr class="b"><td>com.ibm.icu</td><td>icu4j</td><td>2.6.1</td><td>-</td><td>jar</td><td> </td></tr><tr class="a"><td>commons-collections</td><td>commons-collections</td><td>3.2</td><td>-</td><td>jar</td><td> </td></tr><tr class="b"><td>commons-lang</td><td>commons-lang</td><td>2.3</td><td>-</td><td>jar</td><td> </td></tr><tr class="a"><td>jdom</td><td>jdom</td><td>1.0</td><td>-</td><td>jar</td><td> </td></tr><tr class="b"><td>xerces</td><td>xercesImpl</td><td>2.6.2</td><td>-</td><td>jar</td><td> </td></tr><tr class="a"><td>xerces</td><td>xmlParserAPIs</td><td>2.6.2</td><td>-</td><td>jar</td><td> </td></tr><tr class="b"><td>xml-apis</td><td>xml-apis</td><td>1.0.b2</td><td>-</td><td>jar</td><td> </td></tr><tr class="a"><td>xom</td><td>xom</td><td>1.0</td><td>-</td><td>jar</td><td> </td></tr></table></div><div class="section"><h3>provided</h3><p>The following is a list of provided dependencies for this project. These dependencies are required to compile the application, but should be provided by default when using the library:</p><table class="bodyTable"><tr class="b"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Classifier</th><th>Type</th><th>Optional</th></tr><tr class="a"><td>xalan</td><td>xalan</td><td>2.7.0</td><td>-</td><td>jar</td><td> </td></tr></table></div></div><div class="section"><h2>Project Dependency Graph</h2><div class="section"><h3>Dependency Tree</h3><p><ul><li><a href="#org.apache.dvsl:dvsl:jar">org.apache.dvsl:dvsl:jar</a><ul><li><a href="#junit:junit:jar">junit:junit:jar</a></li><li><a href="#org.apache.velocity:velocity:jar">org.apache.velocity:velocity:jar</a><ul><li><a href="#commons-collections:commons-collections:jar">commons-collections:commons-collections:jar</a></li><li><a href="#commons-lang:commons-lang:jar">commons-lang:commons-lang:jar</a></li></ul></p></li><li><a href="#oro:oro:jar">oro:oro:jar</a></li><li><a href="#jaxen:jaxen:jar">jaxen:jaxen:jar</a><ul><li><a href="#jdom:jdom:jar">jdom:jdom:jar</a></li><li><a href="#xml-apis:xml-apis:jar">xml-apis:xml-apis:jar</a></li><li><a href="#xerces:xercesImpl:jar">xerces:xercesImpl:jar</a></li><li><a href="#xom:xom:jar">xom:xom:jar</a><ul><li><a href="#xerces:xmlParserAPIs:jar">xerces:xmlParserAPIs:jar</a></li><li><a href="#xalan:xalan:jar">xalan:xalan:jar</a></li><li><a href="#com.ibm.icu:icu4j:jar">com.ibm.icu:icu4j:jar</a></li></ul></p></li></ul></p></li><li><a href="#dom4j:dom4j:jar">dom4j:dom4j:jar</a></li><li><a href="#crimson:crimson:jar">crimson:crimson:jar</a></li></ul></p></li></ul></p></div><div class="section"><h3>Dependency Listings</h3><p><a name="org.apache.dvsl:dvsl:jar"><b>DVSL</b></a></p><p>DVSL (Declarative Velocity Style Language) is an XML transformation tool that uses Xpath and VTL</p><p><a href="http://velocity.apache.org/dvsl/releases/dvsl-1.0/" class="externalLink">http://velocity.apache.org/dvsl/releases/dvsl-1.0/</a></p><p><a name="junit:junit:jar"><b>JUnit</b></a></p><p>JUnit is a regression testing framework written by Erich Gamma and Kent Beck. It is used by the developer who implements unit tests in Java.</p><p><a href="http://junit.org" class="externalLink">http://junit.org</a></p><p><a name="org.apache.velocity:velocity:jar"><b>Apache Velocity</b></a></p><p>Apache Velocity is a general purpose template engine.</p><p><a href="http://velocity.apache.org/engine/releases/velocity-1.5/" class="externalLink">http://velocity.apache.org/engine/releases/velocity-1.5/</a></p><p><a name="commons-collections:commons-collections:jar"><b>Collections</b></a></p><p>Types that extend and augment the Java Collections Framework.</p><p><a href="http://jakarta.apache.org/commons/collections/" class="externalLink">http://jakarta.apache.org/commons/collections/</a></p><p><a name="commons-lang:commons-lang:jar"><b>Lang</b></a></p><p>Commons.Lang, a package of Java utility classes for the
        classes that are in java.lang's hierarchy, or are considered to be so
        standard as to justify existence in java.lang.</p><p><a href="http://jakarta.apache.org/commons/lang/" class="externalLink">http://jakarta.apache.org/commons/lang/</a></p><p><a name="oro:oro:jar"><b>Unnamed - oro:oro:jar:2.0.8</b></a></p><p><a name="jaxen:jaxen:jar"><b>jaxen</b></a></p><p>Jaxen is a universal Java XPath engine.</p><p><a href="http://jaxen.codehaus.org/" class="externalLink">http://jaxen.codehaus.org/</a></p><p><a name="jdom:jdom:jar"><b>Unnamed - jdom:jdom:jar:1.0</b></a></p><p><a name="xml-apis:xml-apis:jar"><b>XML Commons External Components XML APIs</b></a></p><p>xml-commons provides an Apache-hosted set of DOM, SAX, and 
    JAXP interfaces for use in other xml-based projects. Our hope is that we 
    can standardize on both a common version and packaging scheme for these 
    critical XML standards interfaces to make the lives of both our developers 
    and users easier. The External Components portion of xml-commons contains 
    interfaces that are defined by external standards organizations. For DOM, 
    that's the W3C; for SAX it's David Megginson and sax.sourceforge.net; for 
    JAXP it's Sun.</p><p><a href="http://xml.apache.org/commons/#external" class="externalLink">http://xml.apache.org/commons/#external</a></p><p><a name="xerces:xercesimpl:jar"><b>Unnamed - xerces:xercesImpl:jar:2.6.2</b></a></p><p><a name="xom:xom:jar"><b>xom</b></a></p><p><a href="http://www.xom.nu" class="externalLink">http://www.xom.nu</a></p><p><a name="xerces:xmlparserapis:jar"><b>Unnamed - xerces:xmlParserAPIs:jar:2.6.2</b></a></p><p><a name="xalan:xalan:jar"><b>Unnamed - xalan:xalan:jar:2.7.0</b></a></p><p><a name="com.ibm.icu:icu4j:jar"><b>Unnamed - com.ibm.icu:icu4j:jar:2.6.1</b></a></p><p><a name="dom4j:dom4j:jar"><b>dom4j</b></a></p><p>dom4j: the flexible XML framework for Java</p><p><a href="http://dom4j.org" class="externalLink">http://dom4j.org</a></p><p><a name="crimson:crimson:jar"><b>Unnamed - crimson:crimson:jar:1.1.3</b></a></p></div></div>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2002-2007
    
          The Apache Software Foundation
          
  

  
    
  
  
    
             Last Published: 2007-08-13 16:24:21
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
