<html>
  <head>
    <title>Analysis of ${repo} (1970.01.01 00:00:00)</title>
    <style type='text/css'>
html, body { background: white; }
.pom { font-weight: bold; color: #7F0055; font-family: monospace; }
.dependency { font-weight: bold; color: #55007F; font-family: monospace; }
.version { font-weight: bold; color: #007F55; font-family: monospace; }
.file { font-weight: bold; color: #00557F; font-family: monospace; }
.files { font-style: italic; }
.padLeft { padding-left: 10px; }
tr:hover { background-color: #D0E0FF; }
.hidden { color: white; }
.error { font-weight: bold; color: red; }
.problem { border-left: 3px solid white; border-bottom: 1px solid #ccc; padding-left: 3px; }
.problem:hover { border-left-color: #cccccc; }
.ignoreKey { color: #ccc; }
</style>
  </head>
  <body>
    <h1>Analysis of ${repo} (1970.01.01 00:00:00)</h1>
    <p>Found 6 POM files</p>
    <p>Found 27 problems</p>
    <h2>Table of Contents</h2>
    <ul class='toc'>
      <li>
        <a href='#toc1'>Plug-ins Which Couldn't be Imported (2)</a>
      </li>
      <li>
        <a href='#toc2'>Plug-ins Without Manifest (2)</a>
      </li>
      <li>
        <a href='#toc3'>Plug-ins With Binary Differences (1)</a>
      </li>
      <li>
        <a href='#toc4'>POMs with same ID but different version (1)</a>
      </li>
      <li>
        <a href='#toc5'>Dependencies Without Version (1)</a>
      </li>
      <li>
        <a href='#toc6'>Dependencies With Different Versions (2)</a>
      </li>
      <li>
        <a href='#toc7'>Missing Dependencies (12)</a>
      </li>
      <li>
        <a href='#toc8'>Snapshot Versions (2)</a>
      </li>
      <li>
        <a href='#toc9'>Path Problems (1)</a>
      </li>
      <li>
        <a href='#toc10'>Artifacts With Several Versions (1)</a>
      </li>
      <li>
        <a href='#toc11'>Multiple Nested JARs (1)</a>
      </li>
      <li>
        <a href='#toc12'>Missing Sources (3)</a>
      </li>
      <li>
        <a href='#poms'>6 POMs in the repository</a>
      </li>
    </ul>
    <h2 id='toc1'>Plug-ins Which Couldn't be Imported</h2>
    <p>
      <a href='http://wiki.eclipse.org/MT4E_E0004'>More information</a>
    </p>
    <p>2 times</p>
    <div class='problem'>
      <span class='message'>Error processing ${input}/plugins/file.txt: java.util.zip.ZipException: error in opening zip file</span>
    </div>
    <div class='problem'>
      <span class='message'>Error processing ${input}/plugins/notajar.jar: java.util.zip.ZipException: error in opening zip file</span>
    </div>
    <h2 id='toc2'>Plug-ins Without Manifest</h2>
    <p>Each plug-in must have a MANFEST.MF file</p>
    <p>
      <a href='http://wiki.eclipse.org/MT4E_E0003'>More information</a>
    </p>
    <p>2 times</p>
    <div class='problem'>
      <div class='ignoreKey'>MissingManifest nomanifest.jar</div>
      <span class='message'>Couldn't find MANIFEST.MF in ${input}/plugins/nomanifest.jar</span>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingManifest unpackedPlugin</div>
      <span class='message'>Couldn't find MANIFEST.MF in ${input}/plugins/unpackedPlugin</span>
    </div>
    <h2 id='toc3'>Plug-ins With Binary Differences</h2>
    <p>Each pair of plug-ins should be identical (same name and version) but the JAR files are different</p>
    <p>
      <a href='http://wiki.eclipse.org/MT4E_W0003'>More information</a>
    </p>
    <p>1 time</p>
    <div class='problem'>
      <div class='ignoreKey'>BinaryDifference org.eclipse.core.resources-3.7.101.jar</div>
      <span class='message'>File /home/adigulla/workspace/org.eclipse.dash.m4e.tools/data/input/mergeTest/repo2/org/eclipse/core/org.eclipse.core.resources/3.7.101/org.eclipse.core.resources-3.7.101.jar differs from /home/adigulla/workspace/org.eclipse.dash.m4e.tools/tmp-test/testMerge/org/eclipse/core/org.eclipse.core.resources/3.7.101/org.eclipse.core.resources-3.7.101.jar</span>
    </div>
    <h2 id='toc4'>POMs with same ID but different version</h2>
    <p>1 time</p>
    <div class='problem'>
      <div class='ignoreKey'>ProblemSameKeyDifferentVersion org.eclipse.core:org.eclipse.core.runtime 3.5.0 3.6.0</div>There are two POMs with the same ID but different version:
      <ul>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.5.0</span>
        </li>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.6.0</span>
        </li>
      </ul>These POMs are used in:
      <ul>
        <li>
          <span class='pom'>org.eclipse.birt:org.eclipse.birt.core:2.6.1</span>
        </li>
      </ul>
    </div>
    <h2 id='toc5'>Dependencies Without Version</h2>
    <p>1 time</p>
    <div class='problem'>POM 
      <span class='pom'>junit.test:missing-version:1.0</span> 
      <span class='message'>Missing version in dependency</span> 
      <span class='dependency'>org.slf4j:slf4j-api:null</span>
    </div>
    <h2 id='toc6'>Dependencies With Different Versions</h2>
    <p>2 times</p>
    <div class='problem'>
      <div class='ignoreKey'>ProblemDifferentVersions null org.eclipse.equinox:org.eclipse.equinox.preferences</div>The dependency 
      <span class='dependency'>org.eclipse.equinox:org.eclipse.equinox.preferences</span> is referenced with 2 different versions:
      <ul>
        <li>Version "
          <span class='version'>[3.2.0,4.0.0)</span>" is used in:
          <ul>
            <li>
              <span class='pom'>org.eclipse.core:org.eclipse.core.runtime</span>:
              <span class='version'>3.5.0</span>
            </li>
          </ul>
        </li>
        <li>Version "
          <span class='version'>[3.3.0,4.0.0)</span>" is used in:
          <ul>
            <li>
              <span class='pom'>org.eclipse.core:org.eclipse.core.runtime</span>:
              <span class='version'>3.6.0</span>
            </li>
          </ul>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>ProblemDifferentVersions null junit:junit</div>The dependency 
      <span class='dependency'>junit:junit</span> is referenced with 2 different versions:
      <ul>
        <li>Version "
          <span class='version'>4.8.1</span>" is used in:
          <ul>
            <li>
              <span class='pom'>junit.test:different-version</span>:
              <span class='version'>1.0</span>
            </li>
          </ul>
        </li>
        <li>Version "
          <span class='version'>4.8.2</span>" is used in:
          <ul>
            <li>
              <span class='pom'>junit.test:missing-version</span>:
              <span class='version'>1.0</span>
            </li>
            <li>
              <span class='pom'>junit.test:snapshot-version</span>:
              <span class='version'>0.3.0-SNAPSHOT</span>
            </li>
          </ul>
        </li>
      </ul>
    </div>
    <h2 id='toc7'>Missing Dependencies</h2>
    <p>The following dependencies are used in POMs in the repository but they couldn't be found in it.</p>
    <p>12 times</p>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency ch.qos.logback:logback-classic</div>The dependency 
      <span class='dependency'>ch.qos.logback:logback-classic</span> is used in 1 POMs:
      <ul>
        <li>
          <span class='pom'>junit.test:missing-version:1.0</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency de.pdark:decentxml</div>The dependency 
      <span class='dependency'>de.pdark:decentxml</span> is used in 1 POMs:
      <ul>
        <li>
          <span class='pom'>junit.test:snapshot-version:0.3.0-SNAPSHOT</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency junit:junit</div>The dependency 
      <span class='dependency'>junit:junit</span> is used in 3 POMs:
      <ul>
        <li>
          <span class='pom'>junit.test:different-version:1.0</span>
        </li>
        <li>
          <span class='pom'>junit.test:missing-version:1.0</span>
        </li>
        <li>
          <span class='pom'>junit.test:snapshot-version:0.3.0-SNAPSHOT</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency org.eclipse.core:org.eclipse.core.contenttype</div>The dependency 
      <span class='dependency'>org.eclipse.core:org.eclipse.core.contenttype</span> is used in 2 POMs:
      <ul>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.5.0</span>
        </li>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.6.0</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency org.eclipse.core:org.eclipse.core.jobs</div>The dependency 
      <span class='dependency'>org.eclipse.core:org.eclipse.core.jobs</span> is used in 2 POMs:
      <ul>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.5.0</span>
        </li>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.6.0</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency org.eclipse.equinox:org.eclipse.equinox.app</div>The dependency 
      <span class='dependency'>org.eclipse.equinox:org.eclipse.equinox.app</span> is used in 2 POMs:
      <ul>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.5.0</span>
        </li>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.6.0</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency org.eclipse.equinox:org.eclipse.equinox.common</div>The dependency 
      <span class='dependency'>org.eclipse.equinox:org.eclipse.equinox.common</span> is used in 2 POMs:
      <ul>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.5.0</span>
        </li>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.6.0</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency org.eclipse.equinox:org.eclipse.equinox.preferences</div>The dependency 
      <span class='dependency'>org.eclipse.equinox:org.eclipse.equinox.preferences</span> is used in 2 POMs:
      <ul>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.5.0</span>
        </li>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.6.0</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency org.eclipse.equinox:org.eclipse.equinox.registry</div>The dependency 
      <span class='dependency'>org.eclipse.equinox:org.eclipse.equinox.registry</span> is used in 2 POMs:
      <ul>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.5.0</span>
        </li>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.6.0</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency org.eclipse.osgi:org.eclipse.osgi</div>The dependency 
      <span class='dependency'>org.eclipse.osgi:org.eclipse.osgi</span> is used in 2 POMs:
      <ul>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.5.0</span>
        </li>
        <li>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.6.0</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency org.mozilla.javascript:org.mozilla.javascript</div>The dependency 
      <span class='dependency'>org.mozilla.javascript:org.mozilla.javascript</span> is used in 1 POMs:
      <ul>
        <li>
          <span class='pom'>org.eclipse.birt:org.eclipse.birt.core:2.6.1</span>
        </li>
      </ul>
    </div>
    <div class='problem'>
      <div class='ignoreKey'>MissingDependency org.slf4j:slf4j-api</div>The dependency 
      <span class='dependency'>org.slf4j:slf4j-api</span> is used in 1 POMs:
      <ul>
        <li>
          <span class='pom'>junit.test:missing-version:1.0</span>
        </li>
      </ul>
    </div>
    <h2 id='toc8'>Snapshot Versions</h2>
    <p>Release Repositories should not contain SNAPSHOTs</p>
    <p>2 times</p>
    <div class='problem'>The POM 
      <span class='pom'>junit.test:snapshot-version:0.3.0-SNAPSHOT</span> uses a snapshot version
    </div>
    <div class='problem'>The dependency 
      <span class='dependency'>de.pdark:decentxml:1.4-SNAPSHOT</span> in POM 
      <span class='pom'>junit.test:snapshot-version:0.3.0-SNAPSHOT</span> uses a snapshot version
    </div>
    <h2 id='toc9'>Path Problems</h2>
    <p>These POMs are not where they should be</p>
    <p>1 time</p>
    <div class='problem'>The path for the POM 
      <span class='pom'>junit.test:different-version:1.0</span> should be
      <span class='file'>${repo}/junit/test/different-version/1.0/different-version-1.0.pom</span> but was 
      <span class='file'>${repo}/junit/test/different-versions/1.0/different-versions-1.0.pom</span>
    </div>
    <h2 id='toc10'>Artifacts With Several Versions</h2>
    <p>
      <a href='http://wiki.eclipse.org/MT4E_E0001'>More information</a>
    </p>
    <p>1 time</p>
    <div class='problem'>
      <div class='ignoreKey'>TwoVersionsProblem org.eclipse.orbit:orbit.org.apache.lucene 1.9.1 2.9.1</div>
      <span class='message'>The artifact org.eclipse.orbit:orbit.org.apache.lucene exists with several versions: 1.9.1 2.9.1</span>
    </div>
    <h2 id='toc11'>Multiple Nested JARs</h2>
    <p>At the moment, MT4E can only handle a single nested JAR</p>
    <p>
      <a href='http://wiki.eclipse.org/MT4E_W0004'>More information</a>
    </p>
    <p>1 time</p>
    <div class='problem'>
      <div class='ignoreKey'>MultipleNestedJarsProblem org/eclipse/birt/org.eclipse.birt.report.data.oda.jdbc.dbprofile/3.7.0.v20110603/org.eclipse.birt.report.data.oda.jdbc.dbprofile-3.7.0.v20110603.jar .,src</div>
      <span class='message'>Found multiple nested JARs in .../m2repo/org/eclipse/birt/org.eclipse.birt.report.data.oda.jdbc.dbprofile/3.7.0.v20110603/org.eclipse.birt.report.data.oda.jdbc.dbprofile-3.7.0.v20110603.jar</span>
    </div>
    <h2 id='toc12'>Missing Sources</h2>
    <p>3 times</p>
    <div class='problem'>
      <p>Missing sources for 3 artifacts</p>
      <ul>
        <li>
          <span class='ignoreKey'>MissingSources </span>
          <span class='pom'>junit.test:missing-version:1.0</span>
        </li>
        <li>
          <span class='ignoreKey'>MissingSources </span>
          <span class='pom'>junit.test:snapshot-version:0.3.0-SNAPSHOT</span>
        </li>
        <li>
          <span class='ignoreKey'>MissingSources </span>
          <span class='pom'>org.eclipse.core:org.eclipse.core.runtime:3.5.0</span>
        </li>
      </ul>
    </div>
    <h2 id='poms'>6 POMs in the repository</h2>
    <table border='0' cellspacing='0' cellpadding='0'>
      <tr>
        <th>Group ID</th>
        <th>Artifact ID + Version</th>
        <th>Files</th>
      </tr>
      <tr>
        <td>junit.test<span class='hidden'>:</span></td>
        <td>
          <span class='pom'>different-version</span><span class='hidden'>:</span>
          <span class='version'>1.0</span>
        </td>
        <td class='padLeft'>
          <span class='error'>No files found; check problems above</span>
        </td>
      </tr>
      <tr>
        <td></td>
        <td>
          <span class='pom'>missing-version</span><span class='hidden'>:</span>
          <span class='version'>1.0</span>
        </td>
        <td class='padLeft'>
          <span class='files'> pom</span>
        </td>
      </tr>
      <tr>
        <td></td>
        <td>
          <span class='pom'>snapshot-version</span><span class='hidden'>:</span>
          <span class='version'>0.3.0-SNAPSHOT</span>
        </td>
        <td class='padLeft'>
          <span class='files'> pom</span>
        </td>
      </tr>
      <tr>
        <td>org.eclipse.birt<span class='hidden'>:</span></td>
        <td>
          <span class='pom'>org.eclipse.birt.core</span><span class='hidden'>:</span>
          <span class='version'>2.6.1</span>
        </td>
        <td class='padLeft'>
          <span class='files'> jar pom sources</span>
        </td>
      </tr>
      <tr>
        <td>org.eclipse.core<span class='hidden'>:</span></td>
        <td>
          <span class='pom'>org.eclipse.core.runtime</span><span class='hidden'>:</span>
          <span class='version'>3.6.0</span>
        </td>
        <td class='padLeft'>
          <span class='files'> jar pom sources</span>
        </td>
      </tr>
    </table>
    <div style='height: 20em;'>&nbsp;</div>
  </body>
</html>