blob: d013374bfbbf2cf8ebebce49e8569b21cc9243f7 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/index.apt.vm at 2023-01-28
| Rendered using Apache Maven Default Skin
-->
<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="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
<title>Apache Tentacles&trade; &#x2013; Introduction</title>
<link rel="stylesheet" href="./css/maven-base.css" />
<link rel="stylesheet" href="./css/maven-theme.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<link href="https://fonts.googleapis.com/css?family=Mate+SC" type="text/css" rel="stylesheet" />
</head>
<body class="composite">
<div id="banner">
<a href="https://www.apache.org/" id="bannerLeft"><img src="https://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" title="The Apache Software Foundation"/></a> <div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2023-01-28</span>
| <span id="projectVersion">Version: 0.2-SNAPSHOT</span>
| <a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a> &gt;
<a href="https://creadur.apache.org/" class="externalLink" title="Creadur">Creadur</a> &gt;
<a href="https://creadur.apache.org/tentacles/" class="externalLink" title="Tentacles">Tentacles</a> &gt;
Introduction
</div>
<div class="xright"> </div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>Apache Tentacles™</h5>
<ul>
<li class="none"><strong>Introducing Tentacles</strong></li>
<li class="none"><a href="apidocs/index.html" title="Javadocs">Javadocs</a></li>
<li class="none"><a href="download_tentacles.cgi" title="Downloads">Downloads</a></li>
<li class="none"><a href="RELEASE_NOTES.txt" title="Changes">Changes</a></li>
</ul>
<h5>Apache Creadur™</h5>
<ul>
<li class="none"><a href="https://creadur.apache.org" class="externalLink" title="Creadur Project Home">Creadur Project Home</a></li>
<li class="none"><a href="https://creadur.apache.org/tentacles" class="externalLink" title="Apache Tentacles">Apache Tentacles</a></li>
<li class="none"><a href="https://creadur.apache.org/whisker" class="externalLink" title="Apache Whisker">Apache Whisker</a></li>
<li class="none"><a href="https://www.apache.org/security/" class="externalLink" title="Security">Security</a></li>
<li class="none"><a href="https://www.apache.org/licenses/" class="externalLink" title="License">License</a></li>
<li class="none"><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a></li>
<li class="none"><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a></li>
</ul>
<h5>The Apache Software Foundation</h5>
<ul>
<li class="none"><a href="https://www.apache.org/foundation" class="externalLink" title="About the Foundation">About the Foundation</a></li>
<li class="none"><a href="https://projects.apache.org" class="externalLink" title="The projects">The projects</a></li>
<li class="none"><a href="https://people.apache.org" class="externalLink" title="The people">The people</a></li>
<li class="none"><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How we work">How we work</a></li>
<li class="none"><a href="https://www.apache.org/foundation/how-it-works.html#history" class="externalLink" title="Our history">Our history</a></li>
<li class="none"><a href="https://blogs.apache.org/foundation/" class="externalLink" title="News">News</a></li>
</ul>
<h5>Contribute</h5>
<ul>
<li class="none"><a href="https://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">Get Involved</a></li>
</ul>
<h5>Committer Info</h5>
<ul>
<li class="none"><a href="https://www.apache.org/dev/committers.html" class="externalLink" title="ASF Committers' FAQ">ASF Committers' FAQ</a></li>
<li class="none"><a href="https://www.apache.org/dev/new-committers-guide.html" class="externalLink" title="New Committers Guide">New Committers Guide</a></li>
<li class="none"><a href="site-publish.html" title="Howto publish this site">Howto publish this site</a></li>
<li class="none"><a href="https://planet.apache.org/committers/" class="externalLink" title="Plant Apache">Plant Apache</a></li>
<li class="none"><a href="https://community.apache.org/" class="externalLink" title="Community">Community</a></li>
<li class="none"><a href="https://www.apache.org/legal/" class="externalLink" title="Legal">Legal</a></li>
<li class="none"><a href="https://www.apache.org/foundation/marks/" class="externalLink" title="Branding">Branding</a></li>
<li class="none"><a href="https://www.apache.org/press/" class="externalLink" title="Media Relations">Media Relations</a></li>
</ul>
<h5>Project Documentation</h5>
<ul>
<li class="expanded"><a href="project-info.html" title="Project Information">Project Information</a>
<ul>
<li class="none"><a href="ci-management.html" title="CI Management">CI Management</a></li>
<li class="none"><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
<li class="none"><a href="dependency-info.html" title="Dependency Information">Dependency Information</a></li>
<li class="none"><a href="dependency-management.html" title="Dependency Management">Dependency Management</a></li>
<li class="none"><a href="distribution-management.html" title="Distribution Management">Distribution Management</a></li>
<li class="none"><strong>About</strong></li>
<li class="none"><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
<li class="none"><a href="licenses.html" title="Licenses">Licenses</a></li>
<li class="none"><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
<li class="none"><a href="plugin-management.html" title="Plugin Management">Plugin Management</a></li>
<li class="none"><a href="plugins.html" title="Plugins">Plugins</a></li>
<li class="none"><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
<li class="none"><a href="summary.html" title="Summary">Summary</a></li>
</ul></li>
<li class="collapsed"><a href="project-reports.html" title="Project Reports">Project Reports</a></li>
</ul>
<a href="https://maven.apache.org/" title="Maven" class="poweredBy">
<img class="poweredBy" alt="Maven" src="https://maven.apache.org/images/logos/maven-feather.png" />
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<section>
<h2><a name="Introduction_to_Apache_Tentacles.26.238482.3B"></a>Introduction to Apache Tentacles&#8482;</h2><section>
<h3><a name="Running"></a>Running</h3>
<p>Apache Tentacles&#8482; will download all the archives from a staging repo, unpack them and create a little report of what is there.</p>
<div class="source">
<pre>java -ea -jar apache-tentacles-0.1-jar-with-dependencies.jar https://repository.apache.org/content/repositories/orgapacheopenejb-090</pre></div>
<p>Assertions must be enabled.</p>
<p>The tool is not specific to maven and will simply recursively walk the provided URL and download all files matching the following pattern:</p>
<div class="source">
<pre>.*\.(jar|zip|war|ear|tar.gz)</pre></div>
<p>Tar.gz files are downloaded though there is currently no support for unpacking them.</p></section><section>
<h3><a name="Output"></a>Output</h3>
<p>Once the tool has run, the following files directories will exist:</p>
<div class="source">
<pre>repo/
content/
archives.html
licenses.html
notices.html
style.css
org.apache.openejb.openejb-core.3.0.4.openejb-core-3.0.4.jar.licenses.html
org.apache.openejb.openejb-core.3.0.4.openejb-core-3.0.4.jar.notices.html
org.apache.openejb.openejb-standalone.3.0.4.openejb-standalone-3.0.4.zip.licenses.html
org.apache.openejb.openejb-standalone.3.0.4.openejb-standalone-3.0.4.zip.notices.html
org.apache.openejb.openejb-tomcat-webapp.3.0.4.openejb-tomcat-webapp-3.0.4.war.licenses.html
org.apache.openejb.openejb-tomcat-webapp.3.0.4.openejb-tomcat-webapp-3.0.4.war.notices.html
...</pre></div><section>
<h4><a name="Folder_repo"></a>Folder repo</h4>
<p>The repo directory will contain the full set of binaries, unmodified. Theoretically, this tool could also download and check signatures though it does not do that now.</p></section><section>
<h4><a name="Folder_content"></a>Folder content</h4>
<p>The content directory will contain the unpacked version of the downloaded binaries</p>
<p>So this file for example:</p>
<div class="source">
<pre>repo/foo.zip</pre></div>
<p>Will be unpacked at the following location:</p>
<div class="source">
<pre>content/foo.zip.contents/
content/foo.zip.contents/LICENSE
content/foo.zip.contents/NOTICE
content/foo.zip.contents/README.txt
content/foo.zip.contents/lib/bar.jar</pre></div>
<p>Unpacking is recursive, so any binaries contained in foo.zip will also be unpacked.</p>
<div class="source">
<pre>content/foo.zip.contents/lib/bar.jar
content/foo.zip.contents/lib/bar.jar.contents/
content/foo.zip.contents/lib/bar.jar.contents/LICENSE
content/foo.zip.contents/lib/bar.jar.contents/NOTICE
content/foo.zip.contents/lib/bar.jar.contents/README.txt
content/foo.zip.contents/lib/bar.jar.contents/org/
content/foo.zip.contents/lib/bar.jar.contents/org/bar/
content/foo.zip.contents/lib/bar.jar.contents/org/bar/Some.class</pre></div></section></section><section>
<h3><a name="Reports"></a>Reports</h3>
<p>The &quot;main&quot; report is currently called archives.html and will list all of the top-level binaires, their LICENSE and NOTICE files and any LICENSE and NOTICE files of any binaries they may contain.</p>
<p>Validation of the output at this point is all still manual. One of the first improvements would be to automatically flag any binaries that:</p>
<ul>
<li>contain no LICENSE and NOTICE files</li>
<li>contain more than one LICENSE or NOTICE file</li></ul>
<p>In this report, each binary will have three links listed after its name '(licenses, notices, contents)'</p><section>
<h4><a name="foo.zip.licenses.html"></a>foo.zip.licenses.html</h4>
<p>This page will display the full text of the LICENSE files included in the binary. There will be two sections <b>Declared</b> and <b>Undeclared</b></p>
<p>The Declared section lists the single LICENSE file that was supplied by the binary itself. As the tool works recursively, it will also collect any LICENSE file text from any binaries contained in the foo.zip. Well call these &quot;sub&quot; LICENSES for simplicity.</p>
<p>Some attempt is made to figure out if the text from sub LICENSE files are contained in the declared LICENSE file. If the sub license text is contained in the declared LICENSE file it is not listed as Undeclared.</p>
<p>The matching is not complete or perfect, but does help in more quickly seeing where there might be a missing LICENSE text that should be declared.</p></section><section>
<h4><a name="foo.zip.notices.html"></a>foo.zip.notices.html</h4>
<p>Functions identical to the previously described LICENSE page with identical matching.</p>
<p>Note on the code, this all could probably be abstracted. We probably don't need separate License and Notice classes.</p></section><section>
<h4><a name="foo.zip.contents"></a>foo.zip.contents</h4>
<p>The unpacked contents of the foo.zip as described above. Can be nice to be able to browse around the zip and look for any jars that might have LICENSE or NOTICE requirements but were overlooked.</p></section></section><section>
<h3><a name="Future_work"></a>Future work</h3>
<p>Overall it would be great if this tool could perform some validation:</p>
<ul>
<li>Existence of LICENSE/NOTICE files: - flag binaries that contain no LICENSE or NOTICE files - flag binaries that contain too many LICENSE or NOTICE files</li>
<li>Contents of LICENSE/NOTICE files: - better matching of missing license/notice text - look false license/notice text, text that applied to &quot;sub&quot; binaries once included in a binary, but are no longer present</li></ul></section></section>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &copy; 2014-2023 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache Creadur, Creadur, Apache Rat, Apache Tentacles, Apache Whisker, Apache and the Apache feather logo are trademarks
of The Apache Software Foundation.
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
All other marks mentioned may be trademarks or registered trademarks of their respective owners.
</div>
<div class="clear">
<hr/>
</div>
</div>
</body>
</html>