| <%-- |
| Copyright (c) 2020 Eclipse contributors and others. |
| |
| This program and the accompanying materials |
| are made available under the terms of the Eclipse Public License 2.0 |
| which accompanies this distribution, and is available at |
| https://www.eclipse.org/legal/epl-2.0/ |
| |
| SPDX-License-Identifier: EPL-2.0 |
| --%> |
| <%@jet |
| package="org.eclipse.justj.codegen.templates.jdeps" |
| class="JdepsIndex" |
| imports="" |
| builder="StringBuilder builder = new StringBuilder()" |
| nlString='"\\n"' |
| minimize="true" |
| skeleton="platform:/resource/org.eclipse.justj.codegen/src/org/eclipse/justj/codegen/model/util/JdepsIndex.java"%> |
| <%String title = "JustJ Jdeps"; |
| int toggleCounter = 0;%> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta http-equiv="content-type" content="text/html; charset=utf-8"/> |
| <title><%=title%></title> |
| <meta name="keywords" content="eclipse,justj"/> |
| <meta name="description" content="JustJ's JDeps Report"/> |
| <link href="//fonts.googleapis.com/css?family=Open+Sans:400,700,300,600,100" rel="stylesheet" type="text/css"/> |
| <link rel="stylesheet" href="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/styles.min.css"/> |
| <link rel="icon" type="image/ico" href="https://www.eclipse.org/justj/justj_favicon.ico"/> |
| <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> |
| <script> |
| function expand_collapse(id, targetId) { |
| var e = document.getElementById(id); |
| var checked = e.checked; |
| var target = document.getElementById(targetId); |
| var targets = target.getElementsByTagName('input'); |
| for (var i = 0; i < targets.length; i++) { |
| var input = targets[i]; |
| input.checked = checked; |
| } |
| } |
| |
| function filter(filter, id, targetClass) { |
| var e = document.getElementById(id); |
| var filterTargets = e.getElementsByClassName('filter-target'); |
| for (var i = 0; i < filterTargets.length; i++) { |
| var target = filterTargets[i]; |
| target.style.display = !filter ? target.localName = "li" ? "" : "block" : "none"; |
| } |
| if (filter) { |
| var filterTargetsArray = [].slice.call(filterTargets); |
| var targets = e.getElementsByClassName(targetClass); |
| for (var i = 0; i < targets.length; i++) { |
| var target = targets[i]; |
| target.style.display = "block"; |
| for (var parent = target.parentNode; parent != e; parent = parent.parentNode) { |
| if (filterTargetsArray.includes(parent)) { |
| parent.style.display = parent.localName = "li" ? "" : "block"; |
| } |
| } |
| } |
| } |
| } |
| |
| var oldOnload = window.onload; |
| window.onload = function() { |
| document.getElementsByTag |
| var inputs = document.getElementsByTagName('input'); |
| for (index = 0; index < inputs.length; ++index) { |
| var input = inputs[index]; |
| input.checked = false; |
| } |
| if(oldOnload != null) { |
| oldUnload(); |
| } |
| } |
| </script> |
| </head> |
| |
| <body id="body_solstice"> |
| <style> |
| .toggle { |
| display: none; |
| } |
| |
| .toggle-label { |
| font-size: 100%; |
| margin-bottom: 0px; |
| font-weight: normal; |
| } |
| |
| .toggle + .toggle-label + .toggle-content { |
| max-height: 0; |
| opacity: 0; |
| overflow: hidden; |
| transition: all .4s ease-in-out; |
| } |
| |
| .toggle + .toggle-label > .toggle-state-on { |
| display: none; |
| } |
| |
| .toggle + .toggle-label > .toggle-state-off { |
| display: inherit; |
| } |
| |
| .toggle:checked + .toggle-label > .toggle-state-on { |
| display: inherit; |
| } |
| |
| .toggle:checked + .toggle-label > .toggle-state-off { |
| display: none; |
| } |
| |
| .toggle:checked + .toggle-label + .toggle-content { |
| max-height: none; |
| opacity: 1; |
| } |
| |
| .toggle-content { |
| padding-left: 2em; |
| } |
| |
| .toggle-label:hover, .toggle-label:hover * { |
| cursor: pointer; |
| } |
| |
| .plain:link, .plain:visited { |
| color: inherit; |
| } |
| |
| label:target { |
| border: 1px solid black; |
| } |
| </style> |
| |
| <header role="banner" id="header-wrapper"> |
| <div class="container"> |
| <div class="row" id="header-row"> |
| <div class="hidden-xs col-sm-8 col-md-6 col-lg-5" id="header-left"> |
| <div class="wrapper-logo-default"> |
| <a href="https://www.eclipse.org/justj?page=index"> |
| <img class="logo-eclipse-default img-responsive hidden-xs" style="height: 50px; space: nowrap; display: inline-block;" alt="Project Logo" src="https://www.eclipse.org/justj/justj_title.svg"/> |
| </a> |
| </div> |
| </div> |
| </div> |
| </div> |
| </header> |
| |
| <section class="hidden-print default-breadcrumbs" id="breadcrumb"> |
| <div class="container"> |
| <h3 class="sr-only">Breadcrumbs</h3> |
| <div class="row"> |
| <div class="col-sm-16 padding-left-30"> |
| <ol class="breadcrumb"> |
| <li><a href="https://www.eclipse.org/">Home</a></li> |
| <li><a href="https://www.eclipse.org/projects/">Projects</a></li> |
| <li><a href="https://www.eclipse.org/justj?page=download">JustJ</a></li> |
| <li><a href="https://download.eclipse.org/justj/jdeps">Jdeps</a></li> |
| <%for (Map.Entry<String, String> entry : getBreadcrumbs().entrySet()) {%> |
| <%if (entry.getValue() == null) {%> |
| <li class="active"><%=entry.getKey()%></li> |
| <%} else if (entry.getValue().trim().isEmpty()) {%> |
| <li><%=entry.getKey()%></li> |
| <%} else {%> |
| <li><a href="<%=entry.getValue()%>"><%=entry.getKey()%></a></li> |
| <%}%> |
| <%}%> |
| </ol> |
| </div> |
| <div class="col-sm-8 margin-top-15"></div> |
| </div> |
| </div> |
| </section> |
| |
| <main class="no-promo"> |
| <div class="novaContent container" id="novaContent"> |
| |
| <div id="maincontent"> |
| <h2 style=""> |
| <%=title%>: |
| <a style="font-size: 66%;" href="<%=repoURI%>"><%=repoURI%></a> |
| <a href="justj.modules" target="modules" style="float: right; font-size: 75%;"><img style="height: 2ex; display: inline-block;" alt="justj" src="https://www.eclipse.org/justj/justj_title.svg"/>.modules</a> |
| </h2> |
| <p> |
| The plugins of this repository have been analyzed for module dependencies using jdeps. |
| The plugin dependencies of each module and the module dependencies of each plugin are summarized below. |
| </p> |
| <p> |
| The jdeps analysis of a plugin may produce warnings about split packages, |
| i.e., if the jar exports packages that are the same as exported by the module on which it depends, |
| or it may fail, i.e., if the jar has module dependencies that don't resolve. |
| Filters are provided to show only these issues. |
| </p> |
| |
| <hr/> |
| <h4> |
| Module Dependencies |
| <input type="checkbox" id="toggle-id-<%=++toggleCounter%>" class="toggle" onclick="expand_collapse('toggle-id-<%=toggleCounter%>', 'mod-deps');"/> |
| <label for="toggle-id-<%=toggleCounter%>" class="toggle-label"><%=getToggleExpand(true)%></label> |
| <%if (!splitPackages.isEmpty()) {%> |
| <input name="module-split-packages" type="checkbox" onclick="filter(this.checked, 'mod-deps', 'split-package');" onload="this.value = '';"/> |
| <label for="module-split-packages" style="font-size: 75%;">Show Only Split Packages</label> |
| <%}%> |
| </h4> |
| |
| <div id="mod-deps"> |
| <%for (Map.Entry<String, Set<Plugin>> entry : modulePlugins.entrySet()) { |
| String module = entry.getKey(); |
| int mainID = ++toggleCounter;%> |
| <div class="filter-target"> |
| <input type="checkbox" id="toggle-id-<%=mainID%>" class="toggle"/> |
| <label for="toggle-id-<%=mainID%>" class="toggle-label" id="<%=module%>"><%=getToggleExpand(true)%> <%=module%></label> |
| <ul class="toggle-content filter-target" style="margin-left: 1em; margin-bottom: 0;"> |
| <%for (Plugin plugin : entry.getValue()) {%> |
| <li class="filter-target"> |
| <a href="#<%=plugin%>" class="plain"><%=plugin.getId()%> <span style="color: DarkOliveGreen; font-size: 90%;"><%=plugin.getVersion()%></span></a> |
| <%Set<String> splitPackages = getSplitPackages(module, plugin); |
| if (!splitPackages.isEmpty()) {%> |
| <ul style="margin-left: -2em; margin-top: 0; margin-bottom: 0; color: #E8BB14;" class="split-package filter-target"> |
| <%for (String packageName : splitPackages) {%> |
| <li><%=packageName%></li> |
| <%}%> |
| </ul> |
| <%}%> |
| </li> |
| <%}%> |
| </ul> |
| </div> |
| <%}%> |
| </div> |
| |
| <hr/> |
| <h4> |
| Plugin Dependencies |
| <input type="checkbox" id="toggle-id-<%=++toggleCounter%>" class="toggle" onclick="expand_collapse('toggle-id-<%=toggleCounter%>', 'plugin-deps');"/> |
| <label for="toggle-id-<%=toggleCounter%>" class="toggle-label"><%=getToggleExpand(true)%></label> |
| <%if (!pluginErrors.isEmpty()) {%> |
| <input name="plugin-errors" type="checkbox" onclick="filter(this.checked, 'plugin-deps', 'jdeps-error');" onload="this.value = '';"/> |
| <label for="plugin-errors" style="font-size: 75%;">Show Only Errors</label> |
| <%}%> |
| </h4> |
| |
| <div id="plugin-deps"> |
| <%for (Map.Entry<Plugin, Set<String>> entry : pluginModules.entrySet()) { |
| Plugin plugin = entry.getKey(); |
| Set<String> modules = entry.getValue(); |
| List<String> errors = pluginErrors.get(plugin); |
| int mainID = ++toggleCounter;%> |
| <div class="filter-target"> |
| <input type="checkbox" id="toggle-id-<%=mainID%>" class="toggle"/> |
| <label for="toggle-id-<%=mainID%>" class="toggle-label" id="<%=plugin%>"> |
| <%=getToggleExpand(!modules.isEmpty() || errors != null)%> |
| <%=plugin.getId()%> |
| <span style="color: DarkOliveGreen; font-size: 90%;"><%=plugin.getVersion()%></label> |
| <ul class="toggle-content filter-target" style="margin-left: 1em; margin-bottom: 0;"> |
| <%for (String module : modules) {%> |
| <li class="filter-target"> |
| <a href="#<%=module%>" class="plain"><%=module%></a> |
| <%Set<String> splitPackages = getSplitPackages(module, plugin); |
| if (!splitPackages.isEmpty()) {%> |
| <ul style="margin-left: -2em; margin-top: 0; margin-bottom: 0; color: #E8BB14;"> |
| <%for (String packageName : splitPackages) {%> |
| <li><%=packageName%></li> |
| <%}%> |
| </ul> |
| <%}%> |
| </li> |
| <%}%> |
| <%if (errors != null) {%> |
| <li style="color: FireBrick; font-size: 80%;" class="jdeps-error"> |
| <%for (String error : errors) {%> |
| <%=error%><br/> |
| <%}%> |
| </li> |
| <%}%> |
| </ul> |
| </div> |
| <%}%> |
| </div> |
| |
| </div> |
| </div> |
| </main> |
| </body> |
| </html> |