<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at May 28, 2013
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20130528" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Ant Tasks - Project Dependencies</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>

    
            </head>
        <body class="topBarDisabled">
          
                
                    
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                <div id="bannerLeft">
                <h2>Ant Tasks</h2>
                </div>
                      </div>
        <div class="pull-right">                                <a href=".." id="bannerRight">
                                                                                                <img src="../images/axis-small.png"  alt="Apache Axis"/>
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                              <li class="">
                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
        Apache</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../../../" title="Axis">
        Axis</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../../" title="Axis 1.x">
        Axis 1.x</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../" title="Java">
        Java</a>
        </li>
      <li class="divider ">/</li>
                <li class="">
                    <a href="./" title="Ant Tasks">
        Ant Tasks</a>
        </li>
      <li class="divider ">/</li>
        <li class="">Project Dependencies</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 2013-05-28</li> <li class="divider pull-right">|</li>
              <li id="projectVersion" class="pull-right">Version: 1.4.1-SNAPSHOT</li>
            
                            </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span3">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">Overview</li>
                                
      <li>
    
                          <a href="ant.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                  
      <li class="active">
    
            <a href="#"><i class="none"></i>Dependencies</a>
          </li>
                              <li class="nav-header">Tasks</li>
                                
      <li>
    
                          <a href="axis-admin.html" title="axis-admin">
          <i class="none"></i>
        axis-admin</a>
            </li>
                  
      <li>
    
                          <a href="axis-java2wsdl.html" title="axis-java2wsdl">
          <i class="none"></i>
        axis-java2wsdl</a>
            </li>
                  
      <li>
    
                          <a href="axis-wsdl2java.html" title="axis-wsdl2java">
          <i class="none"></i>
        axis-wsdl2java</a>
            </li>
                  
      <li>
    
                          <a href="foreach.html" title="foreach">
          <i class="none"></i>
        foreach</a>
            </li>
                  
      <li>
    
                          <a href="runaxisfunctionaltests.html" title="runaxisfunctionaltests">
          <i class="none"></i>
        runaxisfunctionaltests</a>
            </li>
                              <li class="nav-header">Apache</li>
                                
      <li>
    
                          <a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License">
          <i class="none"></i>
        License</a>
            </li>
                  
      <li>
    
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
          <i class="none"></i>
        Sponsorship</a>
            </li>
                  
      <li>
    
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
          <i class="none"></i>
        Thanks</a>
            </li>
                  
      <li>
    
                          <a href="http://www.apache.org/security/" class="externalLink" title="Security">
          <i class="none"></i>
        Security</a>
            </li>
            </ul>
                
                    
                            <form id="search-form" action="http://www.google.com/search" method="get" >
    
  <input value="ws.apache.org/axis/java" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
          
          <hr class="divider" />

           <div id="poweredBy">
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                  </div>
          </div>
        </div>
        
                
        <div id="bodyColumn"  class="span9" >
                                  
            <a name="Project_Dependencies"></a><div class="section"><h2>Project Dependencies<a name="Project_Dependencies"></a></h2><a name="Project_Dependencies_compile"></a><div class="section"><h3>compile<a name="compile"></a></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 border="0" class="table table-striped"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>ant</td><td>ant</td><td>1.5.1</td><td>jar</td><td>-</td></tr><tr class="a"><td>org.apache.axis</td><td><a class="externalLink" href="http://axis.apache.org/axis/java/codegen">axis-codegen</a></td><td>1.4.1-SNAPSHOT</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.axis</td><td><a class="externalLink" href="http://axis.apache.org/axis/java/core">axis-rt-core</a></td><td>1.4.1-SNAPSHOT</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr></table></div><a name="Project_Dependencies_test"></a><div class="section"><h3>test<a name="test"></a></h3><p>The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:</p><table border="0" class="table table-striped"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>commons-io</td><td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td><td>1.4</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.axis</td><td><a class="externalLink" href="http://axis.apache.org/axis/java/axis-testutils/">axis-testutils</a></td><td>1.4.1-SNAPSHOT</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a><div class="section"><h2>Project Transitive Dependencies<a name="Project_Transitive_Dependencies"></a></h2><p>The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.</p><a name="Project_Transitive_Dependencies_compile"></a><div class="section"><h3>compile<a name="compile"></a></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 border="0" class="table table-striped"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>commons-discovery</td><td>commons-discovery</td><td>0.4</td><td>jar</td><td>/LICENSE.txt</td></tr><tr class="a"><td>commons-lang</td><td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td><td>2.6</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>commons-logging</td><td><a class="externalLink" href="http://commons.apache.org/logging">commons-logging</a></td><td>1.1.1</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>javax.activation</td><td><a class="externalLink" href="http://java.sun.com/products/javabeans/jaf/index.jsp">activation</a></td><td>1.1</td><td>jar</td><td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></td></tr><tr class="b"><td>javax.mail</td><td><a class="externalLink" href="https://glassfish.dev.java.net/javaee5/mail/">mail</a></td><td>1.4.1</td><td>jar</td><td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></td></tr><tr class="a"><td>javax.servlet</td><td>servlet-api</td><td>2.4</td><td>jar</td><td>-</td></tr><tr class="b"><td>org.apache.axis</td><td><a class="externalLink" href="http://axis.apache.org/axis/java/jaxrpc">axis-jaxrpc</a></td><td>1.4.1-SNAPSHOT</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.axis</td><td><a class="externalLink" href="http://axis.apache.org/axis/java/axis-model/">axis-model</a></td><td>1.4.1-SNAPSHOT</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.axis</td><td><a class="externalLink" href="http://axis.apache.org/axis/java/saaj">axis-saaj</a></td><td>1.4.1-SNAPSHOT</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.eclipse.emf</td><td>common</td><td>2.2.3</td><td>jar</td><td>-</td></tr><tr class="b"><td>org.eclipse.emf</td><td>ecore</td><td>2.2.3</td><td>jar</td><td>-</td></tr><tr class="a"><td>org.eclipse.emf</td><td>ecore-xmi</td><td>2.2.3</td><td>jar</td><td>-</td></tr><tr class="b"><td>org.eclipse.xsd</td><td>xsd</td><td>2.2.3</td><td>jar</td><td>-</td></tr><tr class="a"><td>wsdl4j</td><td><a class="externalLink" href="http://sf.net/projects/wsdl4j">wsdl4j</a></td><td>1.6.2</td><td>jar</td><td><a class="externalLink" href="http://www.opensource.org/licenses/cpl1.0.txt">CPL</a></td></tr><tr class="b"><td>xerces</td><td>xercesImpl</td><td>2.6.2</td><td>jar</td><td>-</td></tr><tr class="a"><td>xerces</td><td>xmlParserAPIs</td><td>2.6.2</td><td>jar</td><td>-</td></tr></table></div><a name="Project_Transitive_Dependencies_test"></a><div class="section"><h3>test<a name="test"></a></h3><p>The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:</p><table border="0" class="table table-striped"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>junit</td><td><a class="externalLink" href="http://junit.org">junit</a></td><td>3.8.2</td><td>jar</td><td><a class="externalLink" href="http://www.opensource.org/licenses/cpl1.0.txt">Common Public License Version 1.0</a></td></tr><tr class="a"><td>xmlunit</td><td>xmlunit</td><td>1.0</td><td>jar</td><td>-</td></tr></table></div></div><a name="Project_Dependency_Graph"></a><div class="section"><h2>Project Dependency Graph<a name="Project_Dependency_Graph"></a></h2><script language="javascript" type="text/javascript">
      function toggleDependencyDetail( divId, imgId )
      {
        var div = document.getElementById( divId );
        var img = document.getElementById( imgId );
        if( div.style.display == '' )
        {
          div.style.display = 'none';
          img.src='./images/icon_info_sml.gif';
        }
        else
        {
          div.style.display = '';
          img.src='./images/close.gif';
        }
      }
</script>
<a name="Dependency_Tree"></a><div class="section"><h3>Dependency Tree<a name="Dependency_Tree"></a></h3><ul><li>org.apache.axis:axis-ant:jar:1.4.1-SNAPSHOT <img id="_1328021262" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_955899716', '_1328021262' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_955899716" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>Ant Tasks</th></tr><tr class="b"><td><p><b>Description: </b>The Apache Software Foundation provides support for the Apache community of open-source software projects.
    The Apache projects are characterized by a collaborative, consensus based development process, an open and
    pragmatic software license, and a desire to create high quality software that leads the way in its field.
    We consider ourselves not simply a group of projects sharing a server, but rather a community of developers
    and users.</p><p><b>URL: </b><a class="externalLink" href="http://axis.apache.org/axis/java/ant">http://axis.apache.org/axis/java/ant</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.axis:axis-rt-core:jar:1.4.1-SNAPSHOT (compile) <img id="_1604020490" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1012282667', '_1604020490' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1012282667" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>Axis Runtime Core</th></tr><tr class="b"><td><p><b>Description: </b>The Apache Software Foundation provides support for the Apache community of open-source software projects.
    The Apache projects are characterized by a collaborative, consensus based development process, an open and
    pragmatic software license, and a desire to create high quality software that leads the way in its field.
    We consider ourselves not simply a group of projects sharing a server, but rather a community of developers
    and users.</p><p><b>URL: </b><a class="externalLink" href="http://axis.apache.org/axis/java/core">http://axis.apache.org/axis/java/core</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.axis:axis-jaxrpc:jar:1.4.1-SNAPSHOT (compile) <img id="_116976276" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_313030922', '_116976276' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_313030922" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>JAX-RPC API</th></tr><tr class="b"><td><p><b>Description: </b>Contains the JAX-RPC 1.1 API</p><p><b>URL: </b><a class="externalLink" href="http://axis.apache.org/axis/java/jaxrpc">http://axis.apache.org/axis/java/jaxrpc</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.axis:axis-saaj:jar:1.4.1-SNAPSHOT (compile) <img id="_2137391297" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1867621407', '_2137391297' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1867621407" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>SAAJ API</th></tr><tr class="b"><td><p><b>Description: </b>Contains the SAAJ 1.2 API</p><p><b>URL: </b><a class="externalLink" href="http://axis.apache.org/axis/java/saaj">http://axis.apache.org/axis/java/saaj</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>javax.servlet:servlet-api:jar:2.4 (compile) <img id="_918727816" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1722158644', '_918727816' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1722158644" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>servlet-api</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li></ul></li><li>commons-logging:commons-logging:jar:1.1.1 (compile) <img id="_177259192" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1681045493', '_177259192' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1681045493" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>Commons Logging</th></tr><tr class="b"><td><p><b>Description: </b>Commons Logging is a thin adapter allowing configurable bridging to other,
    well known logging systems.</p><p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/logging">http://commons.apache.org/logging</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>javax.mail:mail:jar:1.4.1 (compile) <img id="_84067796" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_946855854', '_84067796' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_946855854" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>JavaMail API</th></tr><tr class="b"><td><p><b>Description: </b>The JavaMail API provides a platform-independent and protocol-independent framework to build mail and messaging applications.</p><p><b>URL: </b><a class="externalLink" href="https://glassfish.dev.java.net/javaee5/mail/">https://glassfish.dev.java.net/javaee5/mail/</a></p><p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></p></td></tr></table></div><ul><li>javax.activation:activation:jar:1.1 (compile) <img id="_1740971574" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1873610682', '_1740971574' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1873610682" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>JavaBeans Activation Framework (JAF)</th></tr><tr class="b"><td><p><b>Description: </b>JavaBeans Activation Framework (JAF) is a standard extension to the Java platform that lets you take advantage of standard services to: determine the type of an arbitrary piece of data; encapsulate access to it; discover the operations available on it; and instantiate the appropriate bean to perform the operation(s).</p><p><b>URL: </b><a class="externalLink" href="http://java.sun.com/products/javabeans/jaf/index.jsp">http://java.sun.com/products/javabeans/jaf/index.jsp</a></p><p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></p></td></tr></table></div></li></ul></li><li>wsdl4j:wsdl4j:jar:1.6.2 (compile) <img id="_721519919" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_152135914', '_721519919' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_152135914" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>WSDL4J</th></tr><tr class="b"><td><p><b>Description: </b>Java stub generator for WSDL</p><p><b>URL: </b><a class="externalLink" href="http://sf.net/projects/wsdl4j">http://sf.net/projects/wsdl4j</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/cpl1.0.txt">CPL</a></p></td></tr></table></div></li><li>commons-discovery:commons-discovery:jar:0.4 (compile) <img id="_1952172273" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_692342083', '_1952172273' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_692342083" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>Discovery</th></tr><tr class="b"><td><p><b>Description: </b>Commons Discovery</p><p><b>URL: </b>http://jakarta.apache.org/commons/${pom.artifactId.substring(8)}/</p><p><b>Project License: </b><a href="/LICENSE.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>xerces:xercesImpl:jar:2.6.2 (compile) <img id="_182017453" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2049247418', '_182017453' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2049247418" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>xercesImpl</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li><li>xerces:xmlParserAPIs:jar:2.6.2 (compile) <img id="_55450356" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1977850498', '_55450356' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1977850498" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>xmlParserAPIs</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.axis:axis-codegen:jar:1.4.1-SNAPSHOT (compile) <img id="_512968816" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1495879081', '_512968816' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1495879081" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>Code Generator</th></tr><tr class="b"><td><p><b>Description: </b>The Apache Software Foundation provides support for the Apache community of open-source software projects.
    The Apache projects are characterized by a collaborative, consensus based development process, an open and
    pragmatic software license, and a desire to create high quality software that leads the way in its field.
    We consider ourselves not simply a group of projects sharing a server, but rather a community of developers
    and users.</p><p><b>URL: </b><a class="externalLink" href="http://axis.apache.org/axis/java/codegen">http://axis.apache.org/axis/java/codegen</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.axis:axis-model:jar:1.4.1-SNAPSHOT (compile) <img id="_1622899650" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_329301382', '_1622899650' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_329301382" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>EMF Model for WSDD Files</th></tr><tr class="b"><td><p><b>Description: </b>The Apache Software Foundation provides support for the Apache community of open-source software projects.
    The Apache projects are characterized by a collaborative, consensus based development process, an open and
    pragmatic software license, and a desire to create high quality software that leads the way in its field.
    We consider ourselves not simply a group of projects sharing a server, but rather a community of developers
    and users.</p><p><b>URL: </b><a class="externalLink" href="http://axis.apache.org/axis/java/axis-model/">http://axis.apache.org/axis/java/axis-model/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.eclipse.emf:common:jar:2.2.3 (compile) <img id="_1112501613" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1983385089', '_1112501613' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1983385089" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>common</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li><li>org.eclipse.emf:ecore:jar:2.2.3 (compile) <img id="_939944358" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1260207406', '_939944358' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1260207406" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>ecore</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li><li>org.eclipse.emf:ecore-xmi:jar:2.2.3 (compile) <img id="_1693211337" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1798273885', '_1693211337' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1798273885" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>ecore-xmi</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li><li>org.eclipse.xsd:xsd:jar:2.2.3 (compile) <img id="_526778637" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_658118106', '_526778637' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_658118106" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>xsd</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li></ul></li><li>commons-lang:commons-lang:jar:2.6 (compile) <img id="_657790363" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_430671', '_657790363' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_430671" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>Commons Lang</th></tr><tr class="b"><td><p><b>Description: </b>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><b>URL: </b><a class="externalLink" href="http://commons.apache.org/lang/">http://commons.apache.org/lang/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>ant:ant:jar:1.5.1 (compile) <img id="_1573846551" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_343181616', '_1573846551' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_343181616" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>ant</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li><li>org.apache.axis:axis-testutils:jar:1.4.1-SNAPSHOT (test) <img id="_1412820587" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1237099434', '_1412820587' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1237099434" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>Test Utilities</th></tr><tr class="b"><td><p><b>Description: </b>The Apache Software Foundation provides support for the Apache community of open-source software projects.
    The Apache projects are characterized by a collaborative, consensus based development process, an open and
    pragmatic software license, and a desire to create high quality software that leads the way in its field.
    We consider ourselves not simply a group of projects sharing a server, but rather a community of developers
    and users.</p><p><b>URL: </b><a class="externalLink" href="http://axis.apache.org/axis/java/axis-testutils/">http://axis.apache.org/axis/java/axis-testutils/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>junit:junit:jar:3.8.2 (test) <img id="_1657617393" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_457894148', '_1657617393' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_457894148" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>JUnit</th></tr><tr class="b"><td><p><b>Description: </b>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><b>URL: </b><a class="externalLink" href="http://junit.org">http://junit.org</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/cpl1.0.txt">Common Public License Version 1.0</a></p></td></tr></table></div></li><li>xmlunit:xmlunit:jar:1.0 (test) <img id="_1374352450" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1218796506', '_1374352450' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1218796506" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>xmlunit</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li></ul></li><li>commons-io:commons-io:jar:1.4 (test) <img id="_831994346" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_108890329', '_831994346' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_108890329" style="display:none"><table border="0" class="table table-striped"><tr class="a"><th>Commons IO</th></tr><tr class="b"><td><p><b>Description: </b>Commons-IO contains utility classes, stream implementations, file filters, file comparators and endian classes.</p><p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/io/">http://commons.apache.org/io/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></div></div><a name="Licenses"></a><div class="section"><h2>Licenses<a name="Licenses"></a></h2><p><b>CPL: </b>WSDL4J</p><p><b>Unknown: </b>ant, common, ecore, ecore-xmi, servlet-api, xercesImpl, xmlParserAPIs, xmlunit, xsd</p><p><b>Common Public License Version 1.0: </b>JUnit</p><p><b>The Apache Software License, Version 2.0: </b>Ant Tasks, Axis Runtime Core, Code Generator, Commons IO, Commons Lang, Commons Logging, Discovery, EMF Model for WSDD Files, JAX-RPC API, SAAJ API, Test Utilities</p><p><b>Common Development and Distribution License (CDDL) v1.0: </b>JavaBeans Activation Framework (JAF), JavaMail API</p></div><a name="Dependency_File_Details"></a><div class="section"><h2>Dependency File Details<a name="Dependency_File_Details"></a></h2><table border="0" class="table table-striped"><tr class="a"><th>Filename</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK Rev</th><th>Debug</th></tr><tr class="b"><td>ant-1.5.1.jar</td><td>700.85 kB</td><td>435</td><td>401</td><td>21</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>commons-discovery-0.4.jar</td><td>74.89 kB</td><td>74</td><td>59</td><td>8</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>commons-io-1.4.jar</td><td>106.49 kB</td><td>93</td><td>76</td><td>5</td><td>1.3</td><td>debug</td></tr><tr class="a"><td>commons-lang-2.6.jar</td><td>277.56 kB</td><td>155</td><td>133</td><td>10</td><td>1.3</td><td>debug</td></tr><tr class="b"><td>commons-logging-1.1.1.jar</td><td>59.26 kB</td><td>42</td><td>28</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>activation-1.1.jar</td><td>61.51 kB</td><td>50</td><td>38</td><td>3</td><td>1.4</td><td>debug</td></tr><tr class="b"><td>mail-1.4.1.jar</td><td>437.18 kB</td><td>303</td><td>279</td><td>13</td><td>1.4</td><td>debug</td></tr><tr class="a"><td>servlet-api-2.4.jar</td><td>95.40 kB</td><td>67</td><td>42</td><td>2</td><td>1.2</td><td>debug</td></tr><tr class="b"><td>junit-3.8.2.jar</td><td>117.81 kB</td><td>120</td><td>102</td><td>6</td><td>1.2</td><td>debug</td></tr><tr class="a"><td>axis-codegen-1.4.1-SNAPSHOT.jar</td><td>133.25 kB</td><td>49</td><td>34</td><td>1</td><td>1.4</td><td>debug</td></tr><tr class="b"><td>axis-jaxrpc-1.4.1-SNAPSHOT.jar</td><td>37.06 kB</td><td>75</td><td>54</td><td>9</td><td>1.4</td><td>debug</td></tr><tr class="a"><td>axis-model-1.4.1-SNAPSHOT.jar</td><td>1.63 MB</td><td>908</td><td>859</td><td>34</td><td>1.4</td><td>debug</td></tr><tr class="b"><td>axis-rt-core/target/classes</td><td>-</td><td>0</td><td>0</td><td>0</td><td>-</td><td>release</td></tr><tr class="a"><td>axis-saaj-1.4.1-SNAPSHOT.jar</td><td>24.92 kB</td><td>40</td><td>27</td><td>1</td><td>1.4</td><td>debug</td></tr><tr class="b"><td>axis-testutils-1.4.1-SNAPSHOT.jar</td><td>8.81 kB</td><td>13</td><td>2</td><td>1</td><td>1.4</td><td>debug</td></tr><tr class="a"><td>common-2.2.3.jar</td><td>152.73 kB</td><td>118</td><td>104</td><td>6</td><td>1.2</td><td>debug</td></tr><tr class="b"><td>ecore-2.2.3.jar</td><td>733.07 kB</td><td>430</td><td>394</td><td>13</td><td>1.2</td><td>debug</td></tr><tr class="a"><td>ecore-xmi-2.2.3.jar</td><td>167.03 kB</td><td>96</td><td>84</td><td>3</td><td>1.2</td><td>debug</td></tr><tr class="b"><td>xsd-2.2.3.jar</td><td>687.60 kB</td><td>271</td><td>225</td><td>5</td><td>1.2</td><td>debug</td></tr><tr class="a"><td>wsdl4j-1.6.2.jar</td><td>144.95 kB</td><td>168</td><td>143</td><td>20</td><td>1.2</td><td>release</td></tr><tr class="b"><td>xercesImpl-2.6.2.jar</td><td>986.99 kB</td><td>845</td><td>784</td><td>37</td><td>1.1</td><td>release</td></tr><tr class="a"><td>xmlParserAPIs-2.6.2.jar</td><td>121.80 kB</td><td>238</td><td>207</td><td>17</td><td>1.1</td><td>release</td></tr><tr class="b"><td>xmlunit-1.0.jar</td><td>62.30 kB</td><td>47</td><td>41</td><td>1</td><td>1.2</td><td>debug</td></tr><tr class="a"><th>Total</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK Rev</th><th>Debug</th></tr><tr class="b"><td>23</td><td>6.70 MB</td><td>4,637</td><td>4,116</td><td>218</td><td>1.4</td><td>19</td></tr><tr class="a"><td>compile: 19</td><td>compile: 6.41 MB</td><td>compile: 4,364</td><td>compile: 3,895</td><td>compile: 205</td><td>-</td><td>compile: 15</td></tr><tr class="b"><td>test: 4</td><td>test: 295.42 kB</td><td>test: 273</td><td>test: 221</td><td>test: 13</td><td>-</td><td>test: 4</td></tr></table></div>
                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
              <div class="row span12">Copyright &copy;                    2000-2013
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
                    
      </div>

        
        
                </div>
    </footer>
  </body>
</html>