| <!DOCTYPE html><html lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> |
| <title>Apache Sling :: Apache Sling 12 released</title> |
| <link rel="icon" href="/favicon.ico"/> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css"/> |
| <link rel="stylesheet" href="/res/css/site.css"/> |
| <script src='https://www.apachecon.com/event-images/snippet.js'></script><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/> |
| <script src='https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js'></script><script> |
| hljs.initHighlightingOnLoad(); |
| </script> |
| |
| <!-- Matomo Web Analytics --> |
| <script> |
| var _paq = window._paq = window._paq || []; |
| /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ |
| /* We explicitly disable cookie tracking to avoid privacy issues */ |
| _paq.push(['disableCookies']); |
| _paq.push(['trackPageView']); |
| _paq.push(['enableLinkTracking']); |
| (function() { |
| var u="https://matomo.privacy.apache.org/"; |
| _paq.push(['setTrackerUrl', u+'matomo.php']); |
| _paq.push(['setSiteId', '6']); |
| var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; |
| g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); |
| })(); |
| </script> |
| <!-- End Matomo Code --> |
| <link href='/pagefind/pagefind-ui.css' rel='stylesheet'><script src='/pagefind/pagefind-ui.js' type='text/javascript'></script> |
| <script> |
| window.addEventListener('DOMContentLoaded', (event) => { |
| new PagefindUI({ element: "#searchbox" }); |
| }); |
| </script> |
| |
| </head> <body> |
| <div class="section"> |
| <div class="level is-marginless"> |
| <div class="logo"> |
| <a href="https://sling.apache.org"> |
| <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/> |
| </a> |
| </div><div class="header"> |
| <a href="https://www.apache.org"> |
| <img border="0" alt="Apache" src="/res/logos/apache.png"/> |
| </a> |
| </div> |
| </div><section class="searchbox level is-marginless"> |
| <div id="searchbox"></div> |
| </section><div class="columns is-gapless"> |
| <div class="column is-narrow sidemenu"> |
| <div class="container"> |
| <nav class="menu"> |
| <ul class="menu-list box is-shadowless is-marginless"> |
| <li> |
| <p class="menu-label"> |
| <strong>Documentation</strong> |
| </p><ul> |
| <li><a href="/documentation.html">Overview</a></li><li><a href="/documentation/getting-started.html">Getting Started</a></li><li><a href="/documentation/the-sling-engine.html">The Sling Engine</a></li><li><a href="/documentation/development.html">Development</a></li><li><a href="/documentation/bundles.html">Bundles</a></li><li><a href="/documentation/tutorials-how-tos.html">Tutorials & How-Tos</a></li><li><a href="/components/">Maven Plugins</a></li><li><a href="/documentation/configuration.html">Configuration</a></li> |
| </ul> |
| </li><li> |
| <p class="menu-label"> |
| <strong>API Docs</strong> |
| </p><ul> |
| <li><a href="/apidocs/sling12/index.html">Sling 12</a></li><li><a href="/apidocs/sling11/index.html">Sling 11</a></li><li><a href="/apidocs/sling10/index.html">Sling 10</a></li><li><a href="/apidocs/sling9/index.html">Sling 9</a></li><li><a href="/documentation/apidocs.html">All versions</a></li> |
| </ul> |
| </li><li> |
| <p class="menu-label"> |
| <strong>Support</strong> |
| </p><ul> |
| <li><a href="https://s.apache.org/sling.wiki">Wiki</a></li><li><a href="https://s.apache.org/sling.faq">FAQ</a></li><li><a href="/sitemap.html">Sitemap</a></li> |
| </ul> |
| </li><li> |
| <p class="menu-label"> |
| <strong>Project Info</strong> |
| </p><ul> |
| <li><a href="/downloads.cgi">Downloads</a></li><li><a href="https://www.apache.org/licenses/">License</a></li><li><a href="/news.html">News</a></li><li><a href="/releases.html">Releases</a></li><li><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a></li><li><a href="/links.html">Links</a></li><li><a href="/contributing.html">Contributing</a></li><li><a href="/project-information.html">Project Information</a></li><li><a href="/project-information/security.html">Security</a></li> |
| </ul> |
| </li><li> |
| <p class="menu-label"> |
| <strong>Source</strong> |
| </p><ul> |
| <li><a href="/repolist.html">Repositories</a></li><li><a href="https://gitbox.apache.org/repos/asf?s=sling">Git at Apache</a></li> |
| </ul> |
| </li><li> |
| <p class="menu-label"> |
| <strong>Apache Software<br>Foundation</strong> |
| </p><ul> |
| <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li><li><a href="https://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a></li> |
| </ul> |
| </li><li> |
| <a class="acevent" data-format="square" data-event="random"></a> |
| </li><li> |
| <a href="https://apache.org/foundation/contributing.html" class="column"> |
| <img border="0" alt="Support the Apache Software Foundation!" src="/res/images/SupportApache-small.png" width="125"/> |
| </a> |
| </li> |
| </ul> |
| </nav> |
| </div> |
| </div><div class="column main"> |
| <div class="box is-shadowless is-marginless"> |
| <div class="level"> |
| <div class="pagenav"> |
| <div class="breadcrumb"> |
| <ul> |
| <li> |
| <a href="/"> |
| Home |
| </a> |
| </li><li> |
| <a href="/news.html"> |
| News |
| </a> |
| </li> |
| </ul> |
| </div> |
| </div><div class="tags"> |
| <span class="tag"> |
| <a href="/tags/launchpad.html"> |
| launchpad |
| </a> |
| </span> |
| </div> |
| </div><h1 class="title"> |
| Apache Sling 12 released |
| </h1><nav class="menu"> |
| <ul class="menu-list box is-shadowless is-paddingless"> |
| <li id="generatedToC"> |
| <p class="menu-label"> |
| <strong>Table of Contents</strong> |
| </p> |
| </li> |
| </ul> |
| </nav><script src='/res/jquery-3.2.1.min.js' type='text/javascript'></script><script src='/res/tocjs-1-1-2.js' type='text/javascript'></script><script type='text/javascript'>$(document).ready(function() { $('#generatedToC').toc({'selector':'h1[class!=title],h2,h3','ulClass':'menu-list'}); } );</script><div class="content is-marginless"> |
| <div class="row" data-pagefind-body="true"><div><section><p>The Sling 12 release contains numerous improvements, such as official Java 17 support, complete migration to the [OSGi Feature Model](/documentation/development/feature-model.html], and various performance improvements and updates.</p> |
| <p>Read on to see more details about the individual improvements. To find out more about running Sling, see our <a href="/documentation/getting-started.html">getting started page</a>.</p> |
| <h2><a href="#official-support-for-java-17" id="official-support-for-java-17">Official support for Java 17</a></h2> |
| <p>The Sling Starter and included modules are validated to work on Java 8, 11, and 17. Note that for Java 17 the <code>org.apache.sling.commons.threads</code> will not clean up leftover <code>ThreadLocal</code> instances unless the <code>--add-opens java.base/java.lang=ALL-UNNAMED</code> is passed to the JVM.</p> |
| <p>This fix is already applied to the <a href="https://hub.docker.com/r/apache/sling">official Sling Starter Docker image</a> and we anticipate further fixes in this area.</p> |
| <h2><a href="#update-to-oak-1420" id="update-to-oak-1420">Update to Oak 1.42.0</a></h2> |
| <p><a href="jackrabbit.apache.org/oak/">Apache Jackrabbit Oak</a> 1.42.0 brings numerous performance improvements and new features that are now available in the Sling Starter.</p> |
| <h3><a href="#pre-authenticated-login-for-system-users" id="pre-authenticated-login-for-system-users">Pre-authenticated login for system users</a></h3> |
| <p><a href="https://jackrabbit.apache.org/oak/docs/security/authentication/preauthentication.html">Oak pre-authenticated login</a> without repository involvement presents a number of advantages:</p> |
| <ul> |
| <li>it is faster since the repository is not involved</li> |
| <li>allows mapping a single principal to the repositories of multiple service users, making ACLs easier to define in a fine-grained manner</li> |
| </ul> |
| <h3><a href="#principal-based-authentication" id="principal-based-authentication">Principal-based authentication</a></h3> |
| <p><a href="https://jackrabbit.apache.org/oak/docs/security/authorization/principalbased.html">Oak principal-based authentication</a> is an alternate way of supporting access control entries, with the main difference being that the policy entries are stored together with the user itself, rather than with the content they target.</p> |
| <p>The support has been implemented both in the Sling Starter and in repoinit.</p> |
| <h2><a href="#migration-to-the-feature-model" id="migration-to-the-feature-model">Migration to the feature model</a></h2> |
| <p>The Sling Starter is now built and launched with the [OSGi Feature Model](/documentation/development/feature-model.html]. This aligns our tooling with the upstream OSGi specification work from <a href="https://github.com/osgi/design/blob/master/rfps/rfp-0188-Features.pdf">RFP 188</a> and <a href="https://github.com/osgi/design/tree/master/rfcs/rfc0241">RFC 241</a> and provides significant additional tooling around composing, analysing, and launching Sling applications.</p> |
| <p>Applications based on Apache Sling are encouraged to evaluate migrating to the OSGi feature model.</p> |
| <h3><a href="#new-mechanism-for-launching-the-sling-starter" id="new-mechanism-for-launching-the-sling-starter">New mechanism for launching the Sling Starter</a></h3> |
| <p>The OSGi feature model does not support creating WAR files. The Sling Starter therefore no longer produces WAR files. The currently produced artifacts are:</p> |
| <ul> |
| <li>the <a href="https://hub.docker.com/r/apache/sling"><code>apache/sling:12</code> docker image</a></li> |
| <li>individual feature model files which define the bundles and configurations of the Sling Starter in JSON format</li> |
| <li>aggregate feature model files which contain include all the artifacts needed to launch Sling</li> |
| </ul> |
| <h2><a href="#support-for-content-package-development" id="support-for-content-package-development">Support for content-package development</a></h2> |
| <p>The Sling Starter fully supports development based on content packages. Content packages may be defined in the feature model, deployed via an HTTP API or using the Composum UI.</p> |
| <p>See <a href="/documentation/development/content-packages.html">Content-package based development</a> for more details.</p> |
| <h2><a href="#java-api-for-ordering-resources" id="java-api-for-ordering-resources">Java API for ordering resources</a></h2> |
| <p>The Sling <code>ResourceResolver</code> had gained a new <code>orderBefore</code> method that can be used to order child resources. Support needs to be added by various <code>ResourceProvider</code> implementations. Notably, the JCR ResourceProvider has support for this method.</p> |
| <h2><a href="#scripting-enhancements" id="scripting-enhancements">Scripting enhancements</a></h2> |
| <h3><a href="#new-scripting-engines" id="new-scripting-engines">New scripting engines</a></h3> |
| <p>The Sling Starter includes the Freemarker and Thymeleaf engines out-of-the-box.</p> |
| <h3><a href="#added-support-for-precompiled-scripts" id="added-support-for-precompiled-scripts">Added support for precompiled scripts</a></h3> |
| <p>Java and HTL scripts may now be precompiled for better runtime performance and build-time checks.</p> |
| <h2><a href="#improvements-in-run-mode-support" id="improvements-in-run-mode-support">Improvements in run mode support</a></h2> |
| <p>The Apache Sling Settings bundle now supports the OR (<code>,</code>) and AND (<code>.</code>) combinations of run modes and negations with <code>-</code> .</p> |
| <h2><a href="#running-multiple-versions-of-the-same-bundle-in-parallel" id="running-multiple-versions-of-the-same-bundle-in-parallel">Running multiple versions of the same bundle in parallel</a></h2> |
| <p>The Sling OSGi installer now supports running multiple versions of the same bundle in parallel. See <a href="/documentation/bundles/osgi-installer.html#multi-version-support-1">multi-version support in the OSGi installer</a> for details and limitations.</p> |
| <h2><a href="#performance-improvements-in-resource-resolution" id="performance-improvements-in-resource-resolution">Performance improvements in resource resolution</a></h2> |
| <ol> |
| <li>The result of <code>ResourceResolver.isResourceType</code> is cached</li> |
| <li>Optimised SQL queries are used when optimised alias resolution is enabled, ensuring especially to not touch areas like <code>/jcr:system</code> and <code>/jcr:versionStorage</code>. This applies to both aliases and vanity paths.</li> |
| <li>Spurious change events are no longer fired during content changes</li> |
| </ol> |
| <h2><a href="#repository-maintenance" id="repository-maintenance">Repository maintenance</a></h2> |
| <p>The repository maintenance bundle has been added to the Sling Starter. This allows configuring jobs running maintenance tasks, such as version purge, revision cleanup, and datastore cleanup.</p> |
| <h2><a href="#version-updates" id="version-updates">Version updates</a></h2> |
| <p>Multiple bundles have been updated to the latest versions. On top of other improvements listed in this page we have added the Sling <code>resource.filter</code> bundle and no longer include commons-lang 2 in the Sling Starter.</p> |
| <h3><a href="#osgi-core-r8-compliance" id="osgi-core-r8-compliance">OSGi Core R8 compliance</a></h3> |
| <p>Sling Starter ships with <a href="https://felix.apache.org/documentation/index.html">Apache Felix 7</a> which implements <a href="https://docs.osgi.org/specification/osgi.core/8.0.0/">OSGi Core R8</a> fully. In addition it comes with Felix SCR 2.2.0 which implements <a href="https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.component.html">Declarative Services 1.5</a> (part of OSGi Compendium R8).</p> |
| </section></div></div><div data-pagefind-body="true" data-pagefind-weight="7.0" style="display:none;"> - ( Apache Sling 12 released )</div> |
| </div> |
| </div> |
| </div> |
| </div><footer class="footer"> |
| <div class="content has-text-centered is-small"> |
| <div class="editpagelink"> |
| This page can be edited on GitHub at <a href="https://github.com/apache/sling-site/edit/master/src/main/jbake/content/news/sling-12-released.md"> |
| content/news/sling-12-released.md |
| </a> |
| </div> <div class="revisionInfo"> |
| Last modified by <span class="author">Robert Munteanu</span> on <span class="comment">2022-03-18</span> |
| </div><p> |
| Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project |
| logo are trademarks of The Apache Software Foundation. All other marks mentioned |
| may be trademarks or registered trademarks of their respective owners. |
| </p><p> |
| Copyright © 2007-2024<a href="https://www.apache.org/"> |
| The Apache Software Foundation |
| </a>|<a href="https://privacy.apache.org/policies/privacy-policy-public.html"> |
| Privacy Policy |
| </a> |
| </p> |
| </div> |
| </footer> |
| </div> |
| </body> |
| </html> |