https://tools.jboss.org/JBoss Tools2023-11-06T14:24:11+00:00https://tools.jboss.org/blog/4.29.0.final.htmlJBoss Tools 4.29.0.Final for Eclipse 2023-092023-11-06T14:24:11+00:002023-11-02T00:00:00+00:00sbouchet
Happy to announce 4.29.0.Final build for Eclipse 2023-09.
Downloads available at JBoss Tools 4.29.0 Final.
What is New?
Full info is at this page. Some highlights are below.
General
Components Removal
As outlined and announced in a prior blog post, the subsequent components have been excluded from the latest JBoss Tools distribution:
WebServices
Batch
Hibernate Tools
Hibernate Runtime Provider Updates
Multiple additions and updates have been performed on the available Hibernate runtime providers.
New Runtime Provider
A new Hibernate 6.3 runtime provider incorporates Hibernate Core version 6.3.1.Final, Hibernate Ant version 6.3.1.Final and Hibernate Tools version 6.3.1.Final.
Runtime Provider Updates
The Hibernate 6.2 runtime provider now incorporates Hibernate Core version 6.2.13.Final, Hibernate Ant version 6.2.13.Final and...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.29.0.Final build for Eclipse 2023-09.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2023-09/4.29.0.Final.html">JBoss Tools 4.29.0 Final</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.29.0.Final.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="components-removal"><a class="anchor" href="#components-removal"></a>Components Removal</h4>
<div class="paragraph">
<p>As outlined and announced in a prior blog post, the subsequent components have been excluded from the latest JBoss Tools distribution:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>WebServices</p>
</li>
<li>
<p>Batch</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
</div>
</div>
</div>
<div class="sect1">
<h2 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Multiple additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect2">
<h3 id="new-runtime-provider"><a class="anchor" href="#new-runtime-provider"></a>New Runtime Provider</h3>
<div class="paragraph">
<p>A new Hibernate 6.3 runtime provider incorporates Hibernate Core version 6.3.1.Final, Hibernate Ant version 6.3.1.Final and Hibernate Tools version 6.3.1.Final.</p>
</div>
</div>
<div class="sect2">
<h3 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h3>
<div class="paragraph">
<p>The Hibernate 6.2 runtime provider now incorporates Hibernate Core version 6.2.13.Final, Hibernate Ant version 6.2.13.Final and Hibernate Tools version 6.2.13.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.32.Final and Hibernate Tools version 5.3.32.Final.</p>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="new-server-view-based-on-rsp"><a class="anchor" href="#new-server-view-based-on-rsp"></a>New Server view based on RSP</h4>
<div class="paragraph">
<p>In JBoss Tools, a fresh perspective has been introduced, known as the "RSP Servers View," which utilizes the Remote Server Protocol (RSP).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/server/images/RSP_View_1.png" alt="Empty RSP View at start" />
</div>
</div>
<div class="paragraph">
<p>To begin, you must initiate the server connector responsible for managing the servers. Simply right-click on any entry for the Server connector, and choose the "Start RSP" option.</p>
</div>
<div class="paragraph">
<p>The server connector is now starting and it’s status will change to [STARTED].</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/server/images/RSP_View_2.png" alt="Empty RSP View started" />
</div>
</div>
<div class="paragraph">
<p>You can then choose between download a server or use a local server.</p>
</div>
<div class="paragraph">
<p>Now, let’s create a new server. Simply right-click on the active Server connector and select "Download Server." Choose any runtime from the list and confirm by clicking OK.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/server/images/RSP_View_3.png" alt="Selecting Wildfly server runtime" />
</div>
</div>
<div class="paragraph">
<p>Follow the dialog steps for additional parameters and wait for the installation to finish. You can see a new entry on the server view with the selected server.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/server/images/RSP_View_4.png" alt="Wildfly server runtime installed" />
</div>
</div>
<div class="paragraph">
<p>Now start the server runtime using "Start Server" context menu action. The console view opens and display any message from the server.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/server/images/RSP_View_5.png" alt="Wildfly server runtime started" />
</div>
</div>
<div class="paragraph">
<p>Now you can add any deployment to the server. This can be either a folder or a file, present on your local computer. For example, let’s deploy a basic web application.</p>
</div>
<div class="paragraph">
<p>Right click on the started server runtime and select "Add deployment". Then select a web archive to be added to the server.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/server/images/RSP_View_6.png" alt="Adding a simple web application to the runtime" />
</div>
</div>
<div class="paragraph">
<p>It will automatically deploy the application and display any message in the console.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/server/images/RSP_View_7.png" alt="Simple web application added to the runtime" />
</div>
</div>
<div class="paragraph">
<p>Now you can enjoy the application on your browser !</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/server/images/RSP_View_8.png" alt="Simple web application running" />
</div>
</div>
<div class="paragraph">
<p>We are welcoming any suggestion to this new view, either on our JIRA/Github, or using our <a href="https://matrix.to/#/#redhat-developer_server-connector:gitter.im">gitter chatroom</a></p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.29.0.Final.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Stéphane Bouchet</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.28.0.final.htmlJBoss Tools 4.28.0.Final for Eclipse 2023-062023-11-06T14:24:11+00:002023-07-03T00:00:00+00:00sbouchet
Happy to announce 4.28.0.Final build for Eclipse 2023-06.
Downloads available at JBoss Tools 4.28.0 Final.
What is New?
Full info is at this page. Some highlights are below.
General
Components Depreciation
As communicated in a previous blog article, the following components are now deprecated:
Openshift CDK Tooling
Openshift Explorer view (already hidden by default) and wizards, targeting Openshift v3
The current openshift Application Explorer view, based on odo v3 is now the default supported tooling.
Related JIRA: JBIDE-29044
Hibernate Tools
Runtime Provider Updates
The Hibernate 6.2 runtime provider now incorporates Hibernate Core version 6.2.5.Final, Hibernate Ant version 6.2.5.Final and Hibernate Tools version 6.2.5.Final.
The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.30.Final...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.28.0.Final build for Eclipse 2023-06.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2023-06/4.28.0.Final.html">JBoss Tools 4.28.0 Final</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.28.0.Final.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="components-depreciation"><a class="anchor" href="#components-depreciation"></a>Components Depreciation</h4>
<div class="paragraph">
<p>As communicated in a previous blog article, the following components are now deprecated:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Openshift CDK Tooling</p>
</li>
<li>
<p>Openshift Explorer view (already hidden by default) and wizards, targeting Openshift v3</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The current openshift Application Explorer view, based on odo v3 is now the default supported tooling.</p>
</div>
<p>Related JIRA: <a href="https://issues.jboss.org/browse/JBIDE-29044">JBIDE-29044</a></p>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 6.2 runtime provider now incorporates Hibernate Core version 6.2.5.Final, Hibernate Ant version 6.2.5.Final and Hibernate Tools version 6.2.5.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.30.Final and Hibernate Tools version 5.3.30.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="new-back-end-usage"><a class="anchor" href="#new-back-end-usage"></a>New Back-end usage</h3>
<div class="paragraph">
<p>We changed the backend system used in the usage bundle from Google Analytocs to Segment. This as no impact on how we collected usage inforamtion, neither change the opt-in choice made in previous version of JBossTools.</p>
</div>
<div class="paragraph">
<p>As always, neither Eclipse nor JBoss will use any information unless a user has opted in, nor is there ever any personal information sent unless it is provided on the Preferences page.</p>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.28.0.Final.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Stéphane Bouchet</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.28.0.am1.htmlJBoss Tools for Eclipse 2023-06M22023-07-05T10:12:25+00:002023-06-05T00:00:00+00:00sbouchet
Happy to announce 4.28.0.AM1 (Developer Milestone 1) build for Eclipse 2023-06M2.
Downloads available at JBoss Tools 4.28.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
General
Components Depreciation
Fuse Tooling is now deprecated. More information here.
Components Removal
As previously announced here, we’ve removed the Central / update tab, SEAM and JSF support from JBossTools.
For central update tab, all the existing central extensions can be installed with the marketplace client, using the entries listed here.
Future releases cadences
Starting from 4.28.0.Final, there will be no more .AM1 releases. The .Final releases can be now scheduled close to the Eclipse releases.
Hibernate Tools
Runtime Provider Updates
The Hibernate...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.28.0.AM1 (Developer Milestone 1) build for Eclipse 2023-06M2.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2023-06/4.28.0.AM1.html">JBoss Tools 4.28.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.28.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="components-depreciation"><a class="anchor" href="#components-depreciation"></a>Components Depreciation</h4>
<div class="paragraph">
<p>Fuse Tooling is now deprecated. <a href="https://issues.redhat.com/browse/FUSETOOLS-3685">More information here.</a></p>
</div>
</div>
<div class="sect3">
<h4 id="components-removal"><a class="anchor" href="#components-removal"></a>Components Removal</h4>
<div class="paragraph">
<p>As previously announced <a href="https://issues.redhat.com/browse/JBIDE-28678">here</a>, we’ve removed the Central / update tab, SEAM and JSF support from JBossTools.</p>
</div>
<div class="paragraph">
<p>For central update tab, all the existing central extensions can be installed with the marketplace client, using the entries listed <a href="https://issues.redhat.com/browse/JBIDE-28853">here.</a></p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="future-releases-cadences"><a class="anchor" href="#future-releases-cadences"></a>Future releases cadences</h3>
<div class="paragraph">
<p>Starting from 4.28.0.Final, there will be no more .AM1 releases. The .Final releases can be now scheduled close to the Eclipse releases.</p>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 6.2 runtime provider incorporates Hibernate Core version 6.2.3.Final, Hibernate Ant version 6.2.3.Final and Hibernate Tools version 6.2.3.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.28.0.AM1.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Stéphane Bouchet</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.27.0.final.htmlJBoss Tools 4.27.0.Final for Eclipse 2023-032023-07-05T10:12:25+00:002023-04-07T00:00:00+00:00sbouchet
Happy to announce 4.27.0.Final build for Eclipse 2023-03.
Downloads available at JBoss Tools 4.27.0 Final.
What is New?
Full info is at this page. Some highlights are below.
General
We made several fixes in our server and javaee component to support jakarta namespaces.
Hibernate Tools
Runtime Provider Updates
The Hibernate 6.2 runtime provider now incorporates Hibernate Core version 6.2.0.CR4, Hibernate Ant version 6.2.0.CR4 and Hibernate Tools version 6.2.0.CR4.
And more…
You can find more noteworthy updates in on this page.
Enjoy!
Stéphane Bouchet
...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.27.0.Final build for Eclipse 2023-03.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2023-03/4.27.0.Final.html">JBoss Tools 4.27.0 Final</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.27.0.Final.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="paragraph">
<p>We made several fixes in our server and javaee component to support jakarta namespaces.</p>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 6.2 runtime provider now incorporates Hibernate Core version 6.2.0.CR4, Hibernate Ant version 6.2.0.CR4 and Hibernate Tools version 6.2.0.CR4.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.27.0.Final.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Stéphane Bouchet</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.27.0.am1.htmlJBoss Tools for Eclipse 2023-03M32023-03-11T12:06:25+00:002023-03-10T00:00:00+00:00sbouchet
Happy to announce 4.27.0.AM1 (Developer Milestone 1) build for Eclipse 2023-03M3.
Downloads available at JBoss Tools 4.27.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
General
Components Depreciation
As previously announced here, we’re in the process to remove the Central / update tab from JBossTools in next release. This work can be followed here.
That means that all the current extra features that can be installed via this tab needs to be available through a new channel. This channel already exists as p2 repo, but using Eclipse Marketplace Client is more close to what’s existing right now.
Most of those additional features...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.27.0.AM1 (Developer Milestone 1) build for Eclipse 2023-03M3.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2023-03/4.27.0.AM1.html">JBoss Tools 4.27.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.27.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="components-depreciation"><a class="anchor" href="#components-depreciation"></a>Components Depreciation</h4>
<div class="paragraph">
<p>As previously announced <a href="https://issues.redhat.com/browse/JBIDE-28678">here</a>, we’re in the process to remove the Central / update tab from JBossTools in next release. This work can be followed <a href="https://issues.redhat.com/browse/JBIDE-28852">here</a>.</p>
</div>
<div class="paragraph">
<p>That means that all the current extra features that can be installed via this tab needs to be available through a new channel. This channel already exists as p2 repo, but using <a href="https://www.eclipse.org/mpc/">Eclipse Marketplace Client</a> is more close to what’s existing right now.</p>
</div>
<div class="paragraph">
<p>Most of those additional features are already present in the <a href="https://marketplace.eclipse.org/content/jboss-tools">Jboss marketplace entry</a>, so it’s just a matter of use it to install your favorite feature.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="openshift-application-explorer-view-service-creation-support"><a class="anchor" href="#openshift-application-explorer-view-service-creation-support"></a>OpenShift Application Explorer view service creation support</h4>
<div class="paragraph">
<p>The missing create service feature that was available with odo 2.X is now back in this release.</p>
</div>
<div class="paragraph">
<p><a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.21.0.AM1.html#operator-based-services">See the previous annoucement</a> on this feature</p>
</div>
</div>
<div class="sect3">
<h4 id="openshift-application-explorer-view-service-binding-support"><a class="anchor" href="#openshift-application-explorer-view-service-binding-support"></a>OpenShift Application Explorer view service binding support</h4>
<div class="paragraph">
<p>Once you have created a service, you can link it to a component using a binding.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/link-service.gif" alt="link service" width="80%" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>A new Hibernate 6.2 runtime provider incorporates Hibernate Core version 6.2.0.CR2, Hibernate Ant version 6.2.0.CR2 and Hibernate Tools version 6.2.0.CR2.</p>
</div>
<div class="paragraph">
<p>The Hibernate 6.1 runtime provider now incorporates Hibernate Core version 6.1.7.Final, Hibernate Ant version 6.1.7.Final and Hibernate Tools version 6.1.7.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.15.Final and Hibernate Tools version 5.6.15.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.27.0.AM1.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Stéphane Bouchet</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.26.0.final.htmlJBoss Tools 4.26.0.Final for Eclipse 2022-122022-12-20T14:10:47+00:002022-12-20T00:00:00+00:00jeffmaury
Happy to announce 4.26.0.Final build for Eclipse 2022-12.
Downloads available at JBoss Tools 4.26.0 Final.
What is New?
Full info is at this page. Some highlights are below.
General
Components removal
As planned and communicated in a previous blog article, the following components have been
removed from the JBoss Tools distribution:
Forge
Livereload
Angular
JSDT
Please note that the following components are obsoleted so they are still part of this JBoss
Tools distribution but they will be removed from the next JBoss Tools release:
WebServices
JSF
Seam
Batch
Visual Page Editor
Central installation
OpenShift
OpenShift Application Explorer view based on odo 3.x
The OpenShift Application Explorer view based based on odo 2.x in previous versions of
JBoss Tools. It already leverages the power...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.26.0.Final build for Eclipse 2022-12.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2022-12/4.26.0.Final.html">JBoss Tools 4.26.0 Final</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.26.0.Final.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="components-removal"><a class="anchor" href="#components-removal"></a>Components removal</h4>
<div class="paragraph">
<p>As planned and communicated in a previous blog article, the following components have been
removed from the JBoss Tools distribution:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Forge</p>
</li>
<li>
<p>Livereload</p>
</li>
<li>
<p>Angular</p>
</li>
<li>
<p>JSDT</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Please note that the following components are obsoleted so they are still part of this JBoss
Tools distribution but they will be removed from the next JBoss Tools release:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>WebServices</p>
</li>
<li>
<p>JSF</p>
</li>
<li>
<p>Seam</p>
</li>
<li>
<p>Batch</p>
</li>
<li>
<p>Visual Page Editor</p>
</li>
<li>
<p>Central installation</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="openshift-application-explorer-view-based-on-odo-3-x"><a class="anchor" href="#openshift-application-explorer-view-based-on-odo-3-x"></a>OpenShift Application Explorer view based on odo 3.x</h4>
<div class="paragraph">
<p>The OpenShift Application Explorer view based based on odo 2.x in previous versions of
JBoss Tools. It already leverages the power of devfiles to describe your development
environment, odo 3.x enhances and simplifies the workflow.</p>
</div>
<div class="paragraph">
<p>With odo 3.x, you can create a component (unit of deployment) from your source files and once
the component is created, you can start it in dev mode: a new deployment will be created on the
cluster, application will be built on the cluster and then, each time you modify some of the source
files on your local workstation, the change will be broadcasted to the remote cluster.</p>
</div>
<div class="paragraph">
<p>In order to test your application, you can open a browser of the OpenShift Application Explorer and
browse your application running on the cluster.</p>
</div>
<div class="paragraph">
<p>Once your component is running in dev mode, you can start a local debugger (Java, Node.js, Python) that
will connect to the deployment on the cluster and let’s you troubleshoot and analyze more complex use cases.</p>
</div>
<div class="paragraph">
<p>This addresses the inner loop style of development where you can get instant feedback on your changes.</p>
</div>
<div class="paragraph">
<p>odo 3.x also supports outloop style of development: once you think your application in ready to be deployed
on an staging, integration or production cluster, you can start your component in deploy mode: a new image
defined by yourself will then be built and deployed on the cluster.</p>
</div>
<div class="paragraph">
<p>In the following example, we will start from a Quarkus application generated from <a href="https://code.quarkus.io" class="bare">https://code.quarkus.io</a>,
create the component, start the dev mode, check that we can access the application, start the debugger and
check that we can reach a breakpoint.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/odo3-workflow.gif" alt="odo3 workflow" width="80%" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 6.1 runtime provider now incorporates Hibernate Core version 6.1.5.Final, Hibernate Ant version 6.1.5.Final and Hibernate Tools version 6.1.5.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.14.Final and Hibernate Tools version 5.6.14.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.27.Final and Hibernate Tools version 5.3.27.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.26.0.AM1.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Stéphane Bouchet</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.26.0.am1.htmlJBoss Tools for Eclipse 2022-12M22022-11-24T09:05:38+00:002022-11-23T00:00:00+00:00sbouchet
Happy to announce 4.26.0.AM1 (Developer Milestone 1) build for Eclipse 2022-12M2.
Downloads available at JBoss Tools 4.26.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
General
Components Removal
As previously announced, we removed some components in this release :
Forge
Livereload
Angular
JSDT
Hibernate Tools
Runtime Provider Updates
The Hibernate 6.1 runtime provider now incorporates Hibernate Core version 6.1.5.Final, Hibernate Ant version 6.1.5.Final and Hibernate Tools version 6.1.5.Final.
The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.13.Final and Hibernate Tools version 5.6.13.Final.
The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.28.Final and Hibernate Tools version 5.3.28.Final.
And more…
You can find more noteworthy updates in on this...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.26.0.AM1 (Developer Milestone 1) build for Eclipse 2022-12M2.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2022-12/4.26.0.AM1.html">JBoss Tools 4.26.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.26.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="components-removal"><a class="anchor" href="#components-removal"></a>Components Removal</h4>
<div class="paragraph">
<p>As previously announced, we removed some components in this release :</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Forge</p>
</li>
<li>
<p>Livereload</p>
</li>
<li>
<p>Angular</p>
</li>
<li>
<p>JSDT</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 6.1 runtime provider now incorporates Hibernate Core version 6.1.5.Final, Hibernate Ant version 6.1.5.Final and Hibernate Tools version 6.1.5.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.13.Final and Hibernate Tools version 5.6.13.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.28.Final and Hibernate Tools version 5.3.28.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.26.0.AM1.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Stéphane Bouchet</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/2022-11-09-component-lifetime-policy.htmlDeprecating and removing components from JBoss Tools2022-11-10T08:15:24+00:002022-11-09T00:00:00+00:00jeffmaury
JBoss Tools is a set of Eclipse plugins and features that can be installed from the
Eclipse marketplace.
It represents a huge code base and is divided into
bigger artificats that are called components. The component grouping of plugins and
features represents major and independant functionnality: there is one component for
OpenShift and another one for Quarkus for example.
So there are components that have been started a while ago as the JBoss Tools code base
is quite old and other ones that have been started quite recently (eg Quarkus).
So there are components that are related to a technology that is not anymore widely used
so the component...
<div><div class="paragraph">
<p>JBoss Tools is a set of Eclipse plugins and features that can be installed from the
<a href="https://marketplace.eclipse.com">Eclipse marketplace</a>.</p>
</div>
<div class="paragraph">
<p>It represents a huge <a href="https://github.com/jbosstools">code base</a> and is divided into
bigger artificats that are called components. The component grouping of plugins and
features represents major and independant functionnality: there is one component for
OpenShift and another one for Quarkus for example.</p>
</div>
<div class="paragraph">
<p>So there are components that have been started a while ago as the JBoss Tools code base
is quite old and other ones that have been started quite recently (eg Quarkus).</p>
</div>
<div class="paragraph">
<p>So there are components that are related to a technology that is not anymore widely used
so the component code base is not updated at all.</p>
</div>
<div class="paragraph">
<p>Those components are candidates to be removed from the bits that are published with each
JBoss Tools release.</p>
</div>
<div class="paragraph">
<p>So we decided to follow the following policy for those components:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>such a component will first be declared obsolete but will still be part of the next
Jboss Tools release. It will be listed as such in the release notes</p>
</li>
<li>
<p>then this component will be removed from the following JBoss Tools release</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>We think that let users react accordingly as they will have at least 3 monthes before the
component is removed from the distribution.</p>
</div>
<div class="paragraph">
<p>So in the next JBoss Tools release (4.26.0.Final), we are declaring obsolete the following
components:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>WebServices</p>
</li>
<li>
<p>JSF</p>
</li>
<li>
<p>Seam</p>
</li>
<li>
<p>Batch</p>
</li>
<li>
<p>Visual Page Editor</p>
</li>
<li>
<p>Central installation</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Also, as they were declared obsolete a while ago, we are removing the following components:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Forge</p>
</li>
<li>
<p>Livereload</p>
</li>
<li>
<p>Angular</p>
</li>
<li>
<p>JSDT</p>
</li>
</ul>
</div></div>
https://tools.jboss.org/blog/4.25.0.final.htmlJBoss Tools 4.25.0.Final for Eclipse 2022-092022-10-18T14:08:29+00:002022-10-17T00:00:00+00:00jeffmaury
Happy to announce 4.25.0.Final build for Eclipse 2022-09.
Downloads available at JBoss Tools 4.25.0.Final.
What is New?
Full info is at this page. Some highlights are below.
General
Java 17 requirement
Java 17 is now a minimum requirement to run JBoss Tools.
JBoss Tools continues to support running servers and applications with older Java versions.
Quarkus Tools
Improvement to the new Quarkus project wizard
The Quarkus extension ecosystem is composed of extensions that are part of the platform and the others. The Quarkus project wizard has
been extended to allow exclusion of extensions that are not part of the platform.
Hibernate Tools
New Runtime Provider
A new runtime provider has been added for Hibernate...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.25.0.Final build for Eclipse 2022-09.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2022-09/4.25.0.Final.html">JBoss Tools 4.25.0.Final</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.25.0.Final.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="java-17-requirement"><a class="anchor" href="#java-17-requirement"></a>Java 17 requirement</h4>
<div class="paragraph">
<p>Java 17 is now a minimum requirement to <strong>run</strong> JBoss Tools.
JBoss Tools continues to support running servers and applications with older Java versions.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quarkus-tools"><a class="anchor" href="#quarkus-tools"></a>Quarkus Tools</h3>
<div class="sect3">
<h4 id="improvement-to-the-new-quarkus-project-wizard"><a class="anchor" href="#improvement-to-the-new-quarkus-project-wizard"></a>Improvement to the new Quarkus project wizard</h4>
<div class="paragraph">
<p>The Quarkus extension ecosystem is composed of extensions that are part of the platform and the others. The Quarkus project wizard has
been extended to allow exclusion of extensions that are not part of the platform.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus46.gif" alt="quarkus46" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="new-runtime-provider"><a class="anchor" href="#new-runtime-provider"></a>New Runtime Provider</h4>
<div class="paragraph">
<p>A new runtime provider has been added for Hibernate 6.1. It incorporates Hibernate Core version 6.1.3.Final and Hibernate Tools version 6.1.3.Final.</p>
</div>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.12.Final and Hibernate Tools version 5.6.12.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.24.0.AM1.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.25.0.am1.htmlJBoss Tools for Eclipse 2022-09RC12022-09-30T06:21:31+00:002022-09-29T00:00:00+00:00jeffmaury
Happy to announce 4.25.0.AM1 (Developer Milestone 1) build for Eclipse 2022-09RC1.
Downloads available at JBoss Tools 4.25.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
General
Java 17 requirement
Java 17 is now a minimum requirement to run JBoss Tools.
JBoss Tools continues to support running servers and applications with older Java versions.
Quarkus Tools
Improvement to the new Quarkus project wizard
The Quarkus extension ecosystem is composed of extensions that are part of the platform and the others. The Quarkus project wizard has
been extended to allow exclusion of extensions that are not part of the platform.
Hibernate Tools
New Runtime Provider
A new runtime provider has...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.25.0.AM1 (Developer Milestone 1) build for Eclipse 2022-09RC1.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2022-09/4.25.0.AM1.html">JBoss Tools 4.25.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.25.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="java-17-requirement"><a class="anchor" href="#java-17-requirement"></a>Java 17 requirement</h4>
<div class="paragraph">
<p>Java 17 is now a minimum requirement to <strong>run</strong> JBoss Tools.
JBoss Tools continues to support running servers and applications with older Java versions.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quarkus-tools"><a class="anchor" href="#quarkus-tools"></a>Quarkus Tools</h3>
<div class="sect3">
<h4 id="improvement-to-the-new-quarkus-project-wizard"><a class="anchor" href="#improvement-to-the-new-quarkus-project-wizard"></a>Improvement to the new Quarkus project wizard</h4>
<div class="paragraph">
<p>The Quarkus extension ecosystem is composed of extensions that are part of the platform and the others. The Quarkus project wizard has
been extended to allow exclusion of extensions that are not part of the platform.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus46.gif" alt="quarkus46" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="new-runtime-provider"><a class="anchor" href="#new-runtime-provider"></a>New Runtime Provider</h4>
<div class="paragraph">
<p>A new runtime provider has been added for Hibernate 6.1. It incorporates Hibernate Core version 6.1.1.Final and Hibernate Tools version 6.1.1.Final.</p>
</div>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.10.Final and Hibernate Tools version 5.6.10.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.24.0.AM1.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.24.0.final.htmlJBoss Tools for Eclipse 2022-062022-07-06T12:07:23+00:002022-07-04T00:00:00+00:00jeffmaury
Happy to announce 4.24.0.Final build for Eclipse 2022-06.
Downloads available at JBoss Tools 4.24.0.Final.
What is New?
Full info is at this page. Some highlights are below.
Quarkus Tools
Improvement to the new Quarkus project wizard
When the new Quarkus project wizard was initially design, there were a few Quarkus extensions so it was not difficult to find one from the
total list. Now that the Quarkus ecosystem is growing fast, it was difficult even of the extensions were grouped into categories.
In order to cope with this issue, the extensions and categories are now displayed in a tree (first level is categories, second level is
extensions).
This new tree...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.24.0.Final build for Eclipse 2022-06.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2022-06/4.24.0.Final.html">JBoss Tools 4.24.0.Final</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.24.0.Final.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="quarkus-tools"><a class="anchor" href="#quarkus-tools"></a>Quarkus Tools</h3>
<div class="sect3">
<h4 id="improvement-to-the-new-quarkus-project-wizard"><a class="anchor" href="#improvement-to-the-new-quarkus-project-wizard"></a>Improvement to the new Quarkus project wizard</h4>
<div class="paragraph">
<p>When the new Quarkus project wizard was initially design, there were a few Quarkus extensions so it was not difficult to find one from the
total list. Now that the Quarkus ecosystem is growing fast, it was difficult even of the extensions were grouped into categories.</p>
</div>
<div class="paragraph">
<p>In order to cope with this issue, the extensions and categories are now displayed in a tree (first level is categories, second level is
extensions).</p>
</div>
<div class="paragraph">
<p>This new tree can now be filtered through a text field. If user enter some characters, only extensions matching this filter will be displayed
in the tree.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus45.gif" alt="quarkus45" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 6.0 runtime provider (Preview) now incorporates Hibernate Core version 6.0.2.Final and Hibernate Tools version 6.0.2.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.9.Final and Hibernate Tools version 5.6.9.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.27.Final and Hibernate Tools version 5.3.27.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.24.0.Final.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.24.0.am1.htmlJBoss Tools for Eclipse 2022-06M22022-07-06T12:07:23+00:002022-06-14T00:00:00+00:00jeffmaury
Happy to announce 4.24.0.AM1 (Developer Milestone 1) build for Eclipse 2022-06M2.
Downloads available at JBoss Tools 4.24.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
Quarkus Tools
Improvement to the new Quarkus project wizard
When the new Quarkus project wizard was initially design, there were a few Quarkus extensions so it was not difficult to find one from the
total list. Now that the Quarkus ecosystem is growing fast, it was difficult even of the extensions were grouped into categories.
In order to cope with this issue, the extensions and categories are now displayed in a tree (first level is categories, second...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.24.0.AM1 (Developer Milestone 1) build for Eclipse 2022-06M2.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2022-06/4.24.0.AM1.html">JBoss Tools 4.24.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.24.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="quarkus-tools"><a class="anchor" href="#quarkus-tools"></a>Quarkus Tools</h3>
<div class="sect3">
<h4 id="improvement-to-the-new-quarkus-project-wizard"><a class="anchor" href="#improvement-to-the-new-quarkus-project-wizard"></a>Improvement to the new Quarkus project wizard</h4>
<div class="paragraph">
<p>When the new Quarkus project wizard was initially design, there were a few Quarkus extensions so it was not difficult to find one from the
total list. Now that the Quarkus ecosystem is growing fast, it was difficult even of the extensions were grouped into categories.</p>
</div>
<div class="paragraph">
<p>In order to cope with this issue, the extensions and categories are now displayed in a tree (first level is categories, second level is
extensions).</p>
</div>
<div class="paragraph">
<p>This new tree can now be filtered through a text field. If user enter some characters, only extensions matching this filter will be displayed
in the tree.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus45.gif" alt="quarkus45" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 6.0 runtime provider (Preview) now incorporates Hibernate Core version 6.0.2.Final and Hibernate Tools version 6.0.2.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.9.Final and Hibernate Tools version 5.6.9.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.26.Final and Hibernate Tools version 5.3.26.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.24.0.AM1.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.23.0.final.htmlJBoss Tools for Eclipse 2022-032022-04-16T13:36:59+00:002022-04-15T00:00:00+00:00jeffmaury
JBoss Tools 4.23.0
for Eclipse 2022-03 is here waiting for you. Check it out!
We highly recommand to download or update to this latest version.
Note for Red Hat CodeReady Studio users
The Red Hat CodeReady Studio product has reached end of life. The last release for the product was 12.21.3.GA. So there is no equivalent version of
Red Hat CodeReady Studio for this version of JBoss Tools. Existing users of Red Hat CodeReady Studio can upgrade to this version of JBoss Tools.
For more information, see this article
Installation
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.23 (2022-03)...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2022-03/4.23.0.Final.html">JBoss Tools 4.23.0</a>
for Eclipse 2022-03 is here waiting for you. Check it out!</p>
</div>
<div class="paragraph">
<p>We highly recommand to download or update to this latest version.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="note-for-red-hat-codeready-studio-users"><a class="anchor" href="#note-for-red-hat-codeready-studio-users"></a>Note for Red Hat CodeReady Studio users</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Red Hat CodeReady Studio product has reached end of life. The last release for the product was 12.21.3.GA. So there is no equivalent version of
Red Hat CodeReady Studio for this version of JBoss Tools. Existing users of Red Hat CodeReady Studio can upgrade to this version of JBoss Tools.</p>
</div>
<div class="paragraph">
<p>For more information, see <a href="https://developers.redhat.com/articles/2022/04/06/announcement-red-hat-codeready-studio-reaches-end-life">this article</a></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.23 (2022-03) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2022-03/r/eclipse-ide-enterprise-java-and-web-developers">Eclipse 4.23 2022-03 JEE Bundle</a></p>
</div>
<div class="paragraph">
<p>since then you get most of the dependencies preinstalled.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java11 is now required to run JBoss Tools (this is a requirement from Eclipse 4.17). So make sure to select a Java11 JDK in the installer.
You can still work with pre-Java11 JDK/JRE and projects in the tool.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools".</p>
</div>
<div class="paragraph">
<p>You can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>https://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 6.0 runtime provider (Preview) now incorporates Hibernate Core version 6.0.0.CR2 and Hibernate Tools version 6.0.0.CR2.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.7.Final and Hibernate Tools version 5.6.7.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 4.3 runtime provider now incorporates Hibernate Tools version 4.3.6.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 3.6 runtime provider now incorporates Hibernate Tools version 3.6.2.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 3.5 runtime provider now incorporates Hibernate Tools version 3.5.3.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quarkus-tools"><a class="anchor" href="#quarkus-tools"></a>Quarkus Tools</h3>
<div class="sect3">
<h4 id="qute-templates-support"><a class="anchor" href="#qute-templates-support"></a>Qute templates support</h4>
<div class="paragraph">
<p>Qute templates support has been added. This allows Quarkus developers to get enhanced editing experience to Qute templates located in their projects.</p>
</div>
<div class="paragraph">
<p>A Qute template is any file located under <code>src/main/resources/templates</code> and with the <code>html</code>, <code>yaml</code>, <code>yml</code>, <code>json</code> or <code>txt</code> extension.</p>
</div>
<div class="paragraph">
<p>Qute support is enabled on any project that has a dependency on the Qute library.</p>
</div>
<div class="paragraph">
<p>You can generate a Qute enabled project with the Quarkus project wizard and choosing the RESTEasy Classic Qute extension</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus33.gif" alt="quarkus33" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="qute-features"><a class="anchor" href="#qute-features"></a>Qute features</h4>
<div class="paragraph">
<p>Features included into the Qute support are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Integration between Java files and Qute templates files</p>
</li>
<li>
<p>Method parameter support in Qute template files</p>
</li>
<li>
<p>Java Type Hover Support for Qute Templates</p>
</li>
<li>
<p>Linked Editing Range Support in Qute Templates</p>
</li>
<li>
<p>Qute Section Completion</p>
</li>
<li>
<p>Support for Qute Validation</p>
</li>
<li>
<p>Completion for Qute Value Resolvers</p>
</li>
<li>
<p>Support for @TemplateExtension Methods</p>
</li>
<li>
<p>Support for Directly Injecting Beans into Qute Templates</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="integration-between-java-files-and-qute-templates-files"><a class="anchor" href="#integration-between-java-files-and-qute-templates-files"></a>Integration between Java files and Qute templates files</h4>
<div class="paragraph">
<p>Any reference to a Qute template file from a Java file show the option to generate the Qute template file (if the Qute template file has not been found in the project) or navigate to the Qute template file.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus34.gif" alt="quarkus34" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="method-parameter-support-in-qute-template-files"><a class="anchor" href="#method-parameter-support-in-qute-template-files"></a>Method parameter support in Qute template files</h4>
<div class="paragraph">
<p>The Qute language server has support for built-in and user-defined Java classes, including parameter completion and validation for their methods. Take advantage of this to easily avoid Java related mistakes.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus35.gif" alt="quarkus35" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-type-hover-support-for-qute-templates"><a class="anchor" href="#java-type-hover-support-for-qute-templates"></a>Java Type Hover Support for Qute Templates</h4>
<div class="paragraph">
<p>When hovering over an expression in a Qute template, the Java type (built-in or user defined) will be displayed.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus36.gif" alt="quarkus36" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="linked-editing-range-support-in-qute-templates"><a class="anchor" href="#linked-editing-range-support-in-qute-templates"></a>Linked Editing Range Support in Qute Templates</h4>
<div class="paragraph">
<p>Similar to most language, linked editing is now supported for Qute templates , allowing for simultaneous renaming of multiple parameter expressions.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus37.gif" alt="quarkus37" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="qute-section-completion"><a class="anchor" href="#qute-section-completion"></a>Qute Section Completion</h4>
<div class="paragraph">
<p>Qute templates use sections in its templating language to power any logic required when compiling and displaying the resulting document. To support this, the extension’s Qute support populates a completion list with all available Qute sections, along with any parameters they take and a small code snippet of its usage.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus38.gif" alt="quarkus38" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="support-for-qute-validation"><a class="anchor" href="#support-for-qute-validation"></a>Support for Qute Validation</h4>
<div class="paragraph">
<p>Java and Qute validation is included for Qute templates with Quarkus Tools, including diagnostics and quick fix suggestions.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus39.gif" alt="quarkus39" />
</div>
</div>
<div class="paragraph">
<p>The developer has the ability to disable this validation in their settings through the <code>Window</code> → <code>Preferences</code> → <code>JBoss Tools</code> → <code>Qute</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus40.png" alt="quarkus40" />
</div>
</div>
<div class="paragraph">
<p>The second table contains a list of Qute templates (as regular expressions) for which validation will be excluded.</p>
</div>
<div class="paragraph">
<p>If any of the available validation is disturbing your development, you can disable Qute validation for the file project with a single click, using a “Quick Fix” that appears on every Qute related diagnostic</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus41.gif" alt="quarkus41" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="completion-for-qute-value-resolvers"><a class="anchor" href="#completion-for-qute-value-resolvers"></a>Completion for Qute Value Resolvers</h4>
<div class="paragraph">
<p>Paired with corresponding Java methods, built-in Java classes also have built-in Qute value resolvers made available by the Qute templating engine that is evaluated and outputs, or resolves to, a value. Quarkus Tools supports completion, hover and snippet generation for these built-in value resolvers.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus42.gif" alt="quarkus42" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="support-for-templateextension-methods"><a class="anchor" href="#support-for-templateextension-methods"></a>Support for @TemplateExtension Methods</h4>
<div class="paragraph">
<p>Template extension methods are used to extend the set of accessible properties of data objects. Qute support in Quarkus Tools has support for marked @TemplateExtension Java methods, which extend a given data model.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus43.gif" alt="quarkus43" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="support-for-directly-injecting-beans-into-qute-templates"><a class="anchor" href="#support-for-directly-injecting-beans-into-qute-templates"></a>Support for Directly Injecting Beans into Qute Templates</h4>
<div class="paragraph">
<p>A CDI bean annotated with @Named can be referenced in any template through cdi and/or inject namespaces. Quarkus Tools provides completion and definition navigation support for Beans.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus44.gif" alt="quarkus44" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.23.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.23.0 out we are already working on the next release.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.23.0.am1.htmlJBoss Tools for Eclipse 2022-03RC12022-07-06T12:07:23+00:002022-03-24T00:00:00+00:00jeffmaury
Happy to announce 4.23.0.AM1 (Developer Milestone 1) build for Eclipse 2022-03RC1.
Downloads available at JBoss Tools 4.23.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
Hibernate Tools
Hibernate Runtime Provider Updates
A number of additions and updates have been performed on the available Hibernate runtime providers.
Runtime Provider Updates
The Hibernate 6.0 runtime provider (Preview) now incorporates Hibernate Core version 6.0.0.CR1 and Hibernate Tools version 6.0.0.CR1.
The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.5.Final and Hibernate Tools version 5.6.5.Final.
And more…
You can find more noteworthy updates in on this page.
Enjoy!
Jeff Maury
...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.23.0.AM1 (Developer Milestone 1) build for Eclipse 2022-03RC1.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2022-03/4.23.0.AM1.html">JBoss Tools 4.23.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.23.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 6.0 runtime provider (Preview) now incorporates Hibernate Core version 6.0.0.CR1 and Hibernate Tools version 6.0.0.CR1.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.5.Final and Hibernate Tools version 5.6.5.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.23.0.AM1.html">this page</a>.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.21.3.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2021-092022-02-08T07:28:19+00:002022-02-08T00:00:00+00:00jeffmaury
JBoss Tools 4.21.3 and
Red Hat CodeReady Studio 12.21.3
for Eclipse 2021-09 are here waiting for you. Check it out!
We’ve released new versions of JBoss Tools and Red Hat CodeReady Studio that switches the version of Apache Log4j to 2.17.1.
We highly recommand to download or update to this latest version.
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.21 (2021-09) but we recommend
using the latest Eclipse 4.21 2021-09...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2021-09/4.21.3.Final.html">JBoss Tools 4.21.3</a> and
<a href="https://tools.jboss.org/downloads/devstudio/2021-09/12.21.3.GA.html">Red Hat CodeReady Studio 12.21.3</a>
for Eclipse 2021-09 are here waiting for you. Check it out!</p>
</div>
<div class="paragraph">
<p>We’ve released new versions of JBoss Tools and Red Hat CodeReady Studio that switches the version of Apache Log4j to 2.17.1.</p>
</div>
<div class="paragraph">
<p>We highly recommand to download or update to this latest version.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.21 (2021-09) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2021-09/r/eclipse-ide-enterprise-java-and-web-developers">Eclipse 4.21 2021-09 JEE Bundle</a></p>
</div>
<div class="paragraph">
<p>since then you get most of the dependencies preinstalled.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So make sure to select a Java11 JDK in the installer.
You can still work with pre-Java11 JDK/JRE and projects in the tool.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="platform"><a class="anchor" href="#platform"></a>Platform</h4>
<div class="sect4">
<h5 id="apache-log4j-cves"><a class="anchor" href="#apache-log4j-cves"></a>Apache Log4j CVEs</h5>
<div class="paragraph">
<p>The platform now embeds Apache Log4j 2.17.1.</p>
</div>
<div class="paragraph">
<p>So the following CVEs:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CVE-2021-44228</p>
</li>
<li>
<p>CVE-2021-45046</p>
</li>
<li>
<p>CVE-2021-45105</p>
</li>
<li>
<p>CVE-2021-44832</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>have been fixed.</p>
</div>
<div class="paragraph">
<p>As Apache Log4j 1.x is also embedded but is not maintained anymore, the Apache Log4j bundle (1.2.15) has been patched in order to remove:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>JMSSink</p>
</li>
<li>
<p>JBDCAppender</p>
</li>
<li>
<p>Chainsaw</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 6.0 runtime provider (Preview) now incorporates Hibernate Core version 6.0.0.Beta2 and Hibernate Tools version 6.0.0.Beta2.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.3.Final and Hibernate Tools version 5.6.3.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.5 runtime provider now incorporates Hibernate Core version 5.5.9.Final and Hibernate Tools version 5.5.9.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.33.Final and Hibernate Tools version 5.4.33.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.25.Final and Hibernate Tools version 5.3.25.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.2 runtime provider now incorporates Hibernate Core version 5.2.13.Final and Hibernate Tools version 5.2.13.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.1 runtime provider now incorporates Hibernate Core version 5.1.12.Final and Hibernate Tools version 5.1.12.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.0 runtime provider now incorporates Hibernate Core version 5.0.7.Final and Hibernate Tools version 5.0.7.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.19.1.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.21.3 and Red Hat CodeReady Studio 12.21.3 out we are already working on the next release.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.21.2.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2021-09 security fix release for Apache Log4j CVE-2021-45105 and CVE-2021-448322022-01-18T08:29:33+00:002022-01-13T00:00:00+00:00jeffmaury
Apache Log4j CVE-2021-44832 statement
A remote code execution vulnerability in the Apache Log4j 2 Java library when using a JDBC Appender with a JNDI LDAP data source URI (see https://logging.apache.org/log4j/2.x/index.html#News or https://nvd.nist.gov/vuln/detail/CVE-2021-44832) has been releaved to the public audience on Tuesday Dec 28th, 2021.
Apache Log4j CVE-2021-45105 statement
A denial of service vulnerability in the Apache Log4j 2 Java library (see https://logging.apache.org/log4j/2.x/index.html#News or https://nvd.nist.gov/vuln/detail/CVE-2021-45105) has been releaved to the public audience on Thursday Dec 30th, 2021.
We’ve released new versions of JBoss Tools and Red Hat CodeReady Studio that switches the version of Apache Log4j to 2.17.1.
We highly recommand to download or update to...
<div><div class="sect1">
<h2 id="apache-log4j-cve-2021-44832-statement"><a class="anchor" href="#apache-log4j-cve-2021-44832-statement"></a>Apache Log4j CVE-2021-44832 statement</h2>
<div class="sectionbody">
<div class="paragraph">
<p>A remote code execution vulnerability in the Apache Log4j 2 Java library when using a JDBC Appender with a JNDI LDAP data source URI (see <a href="https://logging.apache.org/log4j/2.x/index.html#News" class="bare">https://logging.apache.org/log4j/2.x/index.html#News</a> or <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44832" class="bare">https://nvd.nist.gov/vuln/detail/CVE-2021-44832</a>) has been releaved to the public audience on Tuesday Dec 28th, 2021.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="apache-log4j-cve-2021-45105-statement"><a class="anchor" href="#apache-log4j-cve-2021-45105-statement"></a>Apache Log4j CVE-2021-45105 statement</h2>
<div class="sectionbody">
<div class="paragraph">
<p>A denial of service vulnerability in the Apache Log4j 2 Java library (see <a href="https://logging.apache.org/log4j/2.x/index.html#News" class="bare">https://logging.apache.org/log4j/2.x/index.html#News</a> or <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-45105" class="bare">https://nvd.nist.gov/vuln/detail/CVE-2021-45105</a>) has been releaved to the public audience on Thursday Dec 30th, 2021.</p>
</div>
<div class="paragraph">
<p>We’ve released new versions of JBoss Tools and Red Hat CodeReady Studio that switches the version of Apache Log4j to 2.17.1.</p>
</div>
<div class="paragraph">
<p>We highly recommand to download or update to this latest version.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.21 (2021-09) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2021-09/r/eclipse-ide-enterprise-java-and-web-developers">Eclipse 4.21 2021-09 JEE Bundle</a></p>
</div>
<div class="paragraph">
<p>since then you get most of the dependencies preinstalled.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So make sure to select a Java11 JDK in the installer.
You can still work with pre-Java11 JDK/JRE and projects in the tool.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.21.2.am1.htmlJBoss Tools 4.21.2.AM1 for Eclipse 2021-092021-12-24T08:18:06+00:002021-12-22T00:00:00+00:00jeffmaury
Happy to announce 4.21.2.AM1 (Developer Milestone 1) build for Eclipse 2021-09.
Downloads available at JBoss Tools 4.21.2.AM1.
What is New?
Full info is at this page. Some highlights are below.
Quarkus Tools
Quarkus stream selection in the new Quarkus project wizard
When a new Quarkus project/module is to be generated, it is now possible to select the Quarkus stream (see this article) on which the generated application will be based on.
By default, the recommended (latest release) will be selected but you can choose another one:
Enhanced code completion in Java files
When you want to define a fallback method thanks to the @Fallback annotation from MicroProfile Fault Tolerance,...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.21.2.AM1 (Developer Milestone 1) build for Eclipse 2021-09.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2021-09/4.21.2.AM1.html">JBoss Tools 4.21.2.AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.21.2.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="quarkus-tools"><a class="anchor" href="#quarkus-tools"></a>Quarkus Tools</h3>
</div>
</div>
</div>
<div class="sect1">
<h2 id="quarkus-stream-selection-in-the-new-quarkus-project-wizard"><a class="anchor" href="#quarkus-stream-selection-in-the-new-quarkus-project-wizard"></a>Quarkus stream selection in the new Quarkus project wizard</h2>
<div class="sectionbody">
<div class="paragraph">
<p>When a new Quarkus project/module is to be generated, it is now possible to select the Quarkus stream (see <a href="https://quarkus.io/blog/quarkus-2x-platform-quarkiverse-registry/">this article</a>) on which the generated application will be based on.</p>
</div>
<div class="paragraph">
<p>By default, the recommended (latest release) will be selected but you can choose another one:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus31.gif" alt="quarkus31" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="enhanced-code-completion-in-java-files"><a class="anchor" href="#enhanced-code-completion-in-java-files"></a>Enhanced code completion in Java files</h2>
<div class="sectionbody">
<div class="paragraph">
<p>When you want to define a fallback method thanks to the <code>@Fallback</code> annotation from MicroProfile Fault Tolerance, the code completion is activated on the <code>fallbackMethod</code> member and will propose you available target methods.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus32.gif" alt="quarkus32" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="quarkus-launch-configuration-workspace-resolution"><a class="anchor" href="#quarkus-launch-configuration-workspace-resolution"></a>Quarkus launch configuration workspace resolution</h2>
<div class="sectionbody">
<div class="paragraph">
<p>When you define a Quarkus launch/debug configuration, it is linked to a specific project from your workspace. If this project has a dependency on another project from the workspace, it will be resolved against the workspace and you don’t have to install the dependency in the local Maven/Gradle cache so that it can be resolved.</p>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.6 runtime provider now incorporates Hibernate Core version 5.6.1.Final and Hibernate Tools version 5.6.1.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.8.Final and Hibernate Tools version 5.4.8.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.24.Final and Hibernate Tools version 5.3.24.Final.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.21.1.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2021-09 security fix release for Apache Log4j CVE-2021-442282021-12-18T09:51:47+00:002021-12-16T00:00:00+00:00jeffmaury
Apache Log4j CVE-2021-44228 statement
A remote code execution vulnerability in the Apache Log4j 2 Java library dubbed Log4Shell (see https://logging.apache.org/log4j/2.x/index.html#News or https://nvd.nist.gov/vuln/detail/CVE-2021-44228) has been releaved to the public audience on Friday Dec 9th, 2021.
We’ve released new versions of JBoss Tools and Red Hat CodeReady Studio that switches the version of Apache Log4j to 2.16.0.
We highly recommand to download or update to this latest version.
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This...
<div><div class="sect1">
<h2 id="apache-log4j-cve-2021-44228-statement"><a class="anchor" href="#apache-log4j-cve-2021-44228-statement"></a>Apache Log4j CVE-2021-44228 statement</h2>
<div class="sectionbody">
<div class="paragraph">
<p>A remote code execution vulnerability in the Apache Log4j 2 Java library dubbed Log4Shell (see <a href="https://logging.apache.org/log4j/2.x/index.html#News" class="bare">https://logging.apache.org/log4j/2.x/index.html#News</a> or <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44228" class="bare">https://nvd.nist.gov/vuln/detail/CVE-2021-44228</a>) has been releaved to the public audience on Friday Dec 9th, 2021.</p>
</div>
<div class="paragraph">
<p>We’ve released new versions of JBoss Tools and Red Hat CodeReady Studio that switches the version of Apache Log4j to 2.16.0.</p>
</div>
<div class="paragraph">
<p>We highly recommand to download or update to this latest version.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.21 (2021-09) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2021-09/r/eclipse-ide-enterprise-java-and-web-developers">Eclipse 4.21 2021-09 JEE Bundle</a></p>
</div>
<div class="paragraph">
<p>since then you get most of the dependencies preinstalled.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So make sure to select a Java11 JDK in the installer.
You can still work with pre-Java11 JDK/JRE and projects in the tool.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.21.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2021-092021-10-05T05:54:02+00:002021-10-05T00:00:00+00:00jeffmaury
JBoss Tools 4.21.0 and
Red Hat CodeReady Studio 12.21.0
for Eclipse 2021-09 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.21 (2021-09) but we recommend
using the latest Eclipse 4.21 2021-09 JEE Bundle
since then you get most of the dependencies preinstalled.
Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2021-09/4.21.0.Final.html">JBoss Tools 4.21.0</a> and
<a href="https://tools.jboss.org/downloads/devstudio/2021-09/12.21.0.GA.html">Red Hat CodeReady Studio 12.21.0</a>
for Eclipse 2021-09 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.21 (2021-09) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2021-09/r/eclipse-ide-enterprise-java-and-web-developers">Eclipse 4.21 2021-09 JEE Bundle</a></p>
</div>
<div class="paragraph">
<p>since then you get most of the dependencies preinstalled.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So make sure to select a Java11 JDK in the installer.
You can still work with pre-Java11 JDK/JRE and projects in the tool.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was an improved tooling for container based development and bug fixing.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="operator-based-services"><a class="anchor" href="#operator-based-services"></a>Operator based services</h4>
<div class="paragraph">
<p>When developing cloud native applications on OpenShift, developer may need to
launch services (databases, messaging system,…) that the application under
development may need to connect to. The OpenShift tooling allowed to launch such
services but it was based on the service catalog which is not available anymore on OpenShift 4.</p>
</div>
<div class="paragraph">
<p>The new feature is based on operators which is the devops way of installing and
managing software on Kubernetes clusters. So when you want to launch a service
for your application, you will have to choose from the list of installed
operators on your cluster and then select type of deployment you want.</p>
</div>
<div class="paragraph">
<p>In the following example, there are two operators installed on our cluster:
the <a href="https://strimzi.io">Strimzi</a> operator for setting up Kafka clusters on Kubernetes
and a Postgresql operator.</p>
</div>
<div class="paragraph">
<p>For each operator, we can select the type of deployment we want to setup. For each type
of deployment, specific parameters may be specified. In this example, we decided to
set the replicas number to 4 for a Kafka cluster.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/operator-based-services3.gif" alt="operator based services3" width="80%" />
</div>
</div>
<div class="paragraph">
<p>After you’ve entered the name of your service, it will appear in the application explorer view:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/operator-based-services2.png" alt="operator based services2" width="80%" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="new-runtime-provider"><a class="anchor" href="#new-runtime-provider"></a>New Runtime Provider</h5>
<div class="paragraph">
<p>A new runtime provider has been added for Hibernate 5.6. It incorporates Hibernate Core version 5.6.0.Beta2 and Hibernate Tools version 5.6.0.Beta2. This runtime is in preview mode.</p>
</div>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 5.5 runtime provider now incorporates Hibernate Core version 5.5.7.Final and Hibernate Tools version 5.5.7.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.22.Final and Hibernate Tools version 5.3.22.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="platform"><a class="anchor" href="#platform"></a>Platform</h3>
<div class="sect3">
<h4 id="views-dialogs-and-toolbar"><a class="anchor" href="#views-dialogs-and-toolbar"></a>Views, Dialogs and Toolbar</h4>
</div>
<div class="sect3">
<h4 id="new-clean-message-dialog-api"><a class="anchor" href="#new-clean-message-dialog-api"></a>New clean message dialog api</h4>
<div class="paragraph">
<p>A new API in the class PlainMessageDialog is introduced. It uses a builder pattern to create an immutable instance of PlainMessageDialog. It has a clean API and consists of methods for e.g. the button labels, the message and the image.</p>
</div>
<div class="paragraph">
<p>Example Usage:
<code>int answer = PlainMessageDialog.getBuilder(myShell, "The new dialog").image(SWT.ICON_Question).message("Like it?").buttLabels(Arrays.asList(IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL)).build().open();</code></p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/plain_message_dialog_usage.png" alt="plain message dialog usage" />
</div>
</div>
<div class="sect4">
<h5 id="accepted-licenses-remembered-permanently"><a class="anchor" href="#accepted-licenses-remembered-permanently"></a>Accepted licenses remembered permanently</h5>
<div class="paragraph">
<p>Before accepted licenses were only remembered during runtime and not persisted between restarts. The user selection of accepted licenses is now persisted between restarts.</p>
</div>
</div>
<div class="sect4">
<h5 id="export-certificate-during-installation"><a class="anchor" href="#export-certificate-during-installation"></a>Export certificate during installation</h5>
<div class="paragraph">
<p>When installing a software into the workbench and the software is signed but with an untrusted certificate, the dialog to review trusted certificates now shows a button to 📥 <strong>Export…</strong> the selected certificate into their own *.der file. This can facilitate review of the certificate, for example in order to get it audited by some other external service, tool or workflow before approval.</p>
</div>
</div>
<div class="sect4">
<h5 id="quick-search-mentions-max-occurrences-reached"><a class="anchor" href="#quick-search-mentions-max-occurrences-reached"></a>Quick Search mentions max occurrences reached</h5>
<div class="paragraph">
<p>The Quick Search dialog features a label to depict the number of matches that were found. Additionally, if the result set exceeds a now configurable limit, the label shows that the limit has been reached and the search process stops. Besides this new "Max Results" configuration option, the preference page has been overhauled with information decorators to describe the properties in more detail.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/quick-search.png" alt="quick search" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/quick-search-preferences.png" alt="quick search preferences" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="themes-and-styling"><a class="anchor" href="#themes-and-styling"></a>Themes and Styling</h4>
<div class="sect4">
<h5 id="new-close-icon-on-tabs"><a class="anchor" href="#new-close-icon-on-tabs"></a>New close icon on tabs</h5>
<div class="paragraph">
<p>The drawing of the close icon of tabs has been updated to align better with the operating system.</p>
</div>
<div class="paragraph">
<p>Old:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/old-light-x.png" alt="old light x" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/old-dark-x.png" alt="old dark x" />
</div>
</div>
<div class="paragraph">
<p>New:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/new-light-x.png" alt="new light x" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/new-dark-x.png" alt="new dark x" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="eclipse-windows-now-supports-dark-theme-tool-tips"><a class="anchor" href="#eclipse-windows-now-supports-dark-theme-tool-tips"></a>Eclipse Windows now supports dark-theme tool-tips</h5>
<div class="paragraph">
<p>Eclipse on Windows now support dark-theme tool-tips. Refer below screens-shot which show various tool-tips@dark-theme:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/swt-win-darkthemed-tooltips.png" alt="swt win darkthemed tooltips" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="preferences"><a class="anchor" href="#preferences"></a>Preferences</h4>
<div class="sect4">
<h5 id="history-for-derived-files"><a class="anchor" href="#history-for-derived-files"></a>History for derived files</h5>
<div class="paragraph">
<p>The Local history for derived files is now <strong>disabled</strong> by default. The behaviour can now be configured to the previous (enabled) behaviour in <strong>Preferences > General > Workspace > Local History</strong> page, by checking the <strong>History for derived files</strong> checkbox.</p>
</div>
<div class="paragraph">
<p>Derived files are for example automatically created as the output of java annotation processing or XText. As they are automatically created one could also recreate old versions of the output by compiling older versions of the input, thereby wasting time and space to store the history of the derived files for most users.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/history-for-derived-files-preferences.png" alt="history for derived files preferences" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="general-updates"><a class="anchor" href="#general-updates"></a>General Updates</h4>
<div class="sect4">
<h5 id="eclipse-support-for-mac-aarch64arm64"><a class="anchor" href="#eclipse-support-for-mac-aarch64arm64"></a>Eclipse support for Mac AArch64(Arm64)</h5>
<div class="paragraph">
<p>Eclipse SDK downloads for the Mac AArch64(Arm64) architecture are now available. Please note that a Mac AArch64 JVM is required to run Eclipse for Mac AArch64. Eclipse for Mac AArch64 will be formally supported in the Target Environments in a future release.</p>
</div>
<div class="paragraph">
<p>Eclipse and SWT for Mac x86_64 architecture can already run on Apple Silicon hardware under Rosetta translation mode using a x86_64 JVM.</p>
</div>
</div>
<div class="sect4">
<h5 id="new-method-createint-style-in-griddatafactory"><a class="anchor" href="#new-method-createint-style-in-griddatafactory"></a>New method create(int style) in GridDataFactory</h5>
<div class="paragraph">
<p>GridDataFactory contains a new static method <code>create(int style)</code> which returns a new GridDataFactory instance.
This method is similar to <code>new GridData(int style)</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="minimum-java-version-for-swt"><a class="anchor" href="#minimum-java-version-for-swt"></a>Minimum Java version for SWT</h5>
<div class="paragraph">
<p>SWT now requires minimum Java 11 to run SWT.</p>
</div>
</div>
<div class="sect4">
<h5 id="ant-1-10-11"><a class="anchor" href="#ant-1-10-11"></a>Ant 1.10.11</h5>
<div class="paragraph">
<p>Eclipse has adopted Ant version 1.10.11.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="java-17-support"><a class="anchor" href="#java-17-support"></a>Java™ 17 Support</h4>
</div>
<div class="sect3">
<h4 id="java-17"><a class="anchor" href="#java-17"></a>Java 17</h4>
<div class="paragraph">
<p>Java 17 is out and Eclipse JDT supports Java 17 in 4.21 via Marketplace.</p>
</div>
<div class="paragraph">
<p>The release notably includes the following Java 17 features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>JEP 306: Restore Always-Strict Floating-Point Semantics.</p>
</li>
<li>
<p>JEP 406: Pattern Matching for switch (Preview).</p>
</li>
<li>
<p>JEP 409: Sealed Classes (Final).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Please note that preview option should be on for preview language features. For an informal introduction of the support, please refer to <a href="https://wiki.eclipse.org/Java17/Examples">Java 17 Examples wiki</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="java-16-support"><a class="anchor" href="#java-16-support"></a>Java™ 16 Support</h4>
</div>
<div class="sect3">
<h4 id="java-16"><a class="anchor" href="#java-16"></a>Java 16</h4>
<div class="paragraph">
<p>Java 16 is out and Eclipse JDT supports Java 16 in 4.20.</p>
</div>
<div class="paragraph">
<p>The release notably includes the following Java 16 features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>JEP 394: Pattern Matching for Instanceof (Final).</p>
</li>
<li>
<p>JEP 395: Records (Final).</p>
</li>
<li>
<p>JEP 397: Sealed Classes (Second Preview).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Please note that preview option should be on for preview language features. For an informal introduction of the support, please refer to <a href="https://wiki.eclipse.org/Java16/Examples">Java 16 Examples wiki</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="junit"><a class="anchor" href="#junit"></a>JUnit</h4>
</div>
<div class="sect3">
<h4 id="mockito-argumentmatchers-added-to-favorites-in-java-tooling"><a class="anchor" href="#mockito-argumentmatchers-added-to-favorites-in-java-tooling"></a>mockito ArgumentMatchers.* added to favorites in Java tooling</h4>
<div class="paragraph">
<p>Mockito based tests frequently use <code>org.mockito.ArgumentMatchers.<strong>*</strong></code>. This has been added to the Java favorites in the preferences under <strong>Java > Editor > Content Assist > Favorites</strong>. This way the organize imports action in the IDE will automatically add static imports for these classes if you use them in your tests.</p>
</div>
<div class="sect4">
<h5 id="bree-update-for-jdt-junit-runtime-bundles"><a class="anchor" href="#bree-update-for-jdt-junit-runtime-bundles"></a>BREE update for JDT JUnit runtime bundles</h5>
<div class="paragraph">
<p>The bundle required execution environment (BREE) for the <code>org.eclipse.jdt.junit.runtime</code> and <code>org.eclipse.jdt.junit4.runtime</code> bundles is now JavaSE-1.8.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="use-stringbuilder-instead-of-stringbuffer-clean-up"><a class="anchor" href="#use-stringbuilder-instead-of-stringbuffer-clean-up"></a>Use StringBuilder instead of StringBuffer clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that converts code to use <code>StringBuilder</code> (added in Java 1.5) rather than <code>StringBuffer</code> which has synchronized methods and is slower than using <code>StringBuilder</code>.</p>
</div>
<div class="paragraph">
<p>There is a sub-option where changes will only occur to local variables which is on by default. When this sub-option is on, changes will only occur to <code>StringBuffer</code> variables that are local to a method. When a method calls other methods with such variables or assigns to/from fields/parameters, the method contents will not be converted. It is permitted to append <code>StringBuffer</code> fields or parameters to local <code>StringBuffer</code> variables which can then still be converted to <code>StringBuilder</code>.</p>
</div>
<div class="paragraph">
<p>When the option is selected and the sub-option for local variables is off,all usage of <code>StringBuffer</code> in the selected files are changed to <code>StringBuilder</code> regardless of usage. It should be noted that in this case, the clean up will not track down non-selected classes and methods that are referenced and might require changes to compile successfully.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select the <strong>Use StringBuilder instead of StringBuffer</strong> check box on the <strong>Performance</strong> tab in your clean up profile. To specify just for local variables, select the <strong>Only for local variables</strong> check box found just below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/stringbuffer-to-stringbuilder-prefs.png" alt="stringbuffer to stringbuilder prefs" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/stringbuffer-to-stringbuilder-before.png" alt="stringbuffer to stringbuilder before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/stringbuffer-to-stringbuilder-after.png" alt="stringbuffer to stringbuilder after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="convert-while-to-dowhile"><a class="anchor" href="#convert-while-to-dowhile"></a>Convert while to do/while</h5>
<div class="paragraph">
<p>A new quick-assist has been added to convert appropriate <strong>while</strong> loops into <strong>do/while</strong> loops. Appropriate <strong>while</strong> loops require the first evaluation of the while expression is guaranteed to be true and that the evaluation is passive.</p>
</div>
<div class="paragraph">
<p>For the following loop:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/while-to-do-while-before.png" alt="while to do while before" />
</div>
</div>
<div class="paragraph">
<p>One is offered:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/while-to-do-while-after.png" alt="while to do while after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="extract-superclass-enhancement"><a class="anchor" href="#extract-superclass-enhancement"></a>Extract Superclass Enhancement</h5>
<div class="paragraph">
<p>The <strong>Extract Superclass</strong> refactoring has been enhanced to support movement of uninitialized non-static final fields. In the past, a warning was issued for extracting uninitialized non-static final fields as the resultant code would be in error. The refactoring has been enhanced to add additional parameters to the moved constructors and to pass initialization values from the original class constructors.</p>
</div>
<div class="paragraph">
<p>For the following class:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/extract-superclass-original-before.png" alt="extract superclass original before" />
</div>
</div>
<div class="paragraph">
<p>Extracting to Superclass and choosing all fields, one gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/extract-superclass-original-after.png" alt="extract superclass original after" />
</div>
</div>
<div class="paragraph">
<p>and</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/extract-superclass-superclass-after.png" alt="extract superclass superclass after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="raw-paste"><a class="anchor" href="#raw-paste"></a>Raw Paste</h5>
<div class="paragraph">
<p>A new menu item has been added for doing a raw paste when editing Java files. The menu item <strong>Raw Paste</strong> can be found in the <strong>Edit</strong> pull-down menu and by right-clicking in the edit window to bring up the context-menu. The menu item performs a paste action but toggles off the smart insert feature, if required, and restores it, if necessary, after the paste. For end-users in smart insert mode, this is the same as doing a <strong>Shift+Ctrl+Insert</strong> followed by <strong>Ctrl+V</strong>, followed by <strong>Shift+Ctrl+Insert</strong> to retoggle into smart insert mode again.</p>
</div>
</div>
<div class="sect4">
<h5 id="default-type-filters"><a class="anchor" href="#default-type-filters"></a>Default Type Filters</h5>
<div class="paragraph">
<p>Default values have been added to the <strong>Java > Appearance > Type Filters</strong> preferences. Types matching these filters will be excluded from appearing in the Open Type dialog, content assist, quick fix, and organize imports. These filter patterns do not affect the Package Explorer and Type Hierarchy views.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/default-type-filters.png" alt="default type filters" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="change-project-compliance-and-jre-on-using-multi-constant-case-labels"><a class="anchor" href="#change-project-compliance-and-jre-on-using-multi-constant-case-labels"></a>Change project compliance and JRE on using multi-constant case labels</h5>
<div class="paragraph">
<p>A new quick fix (<strong>Ctrl+1</strong>) has been added to change the project compliance and JRE when multi-constant case labels are used in a project below Java 14:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/change-compliance-jre-multi-constant-labels.png" alt="change compliance jre multi constant labels" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="quick-fix-to-declare-sealed-interface-as-super-interface"><a class="anchor" href="#quick-fix-to-declare-sealed-interface-as-super-interface"></a>Quick fix to declare sealed interface as super interface</h5>
<div class="paragraph">
<p>You can use the following quick fix (<strong>Ctrl+1</strong>) to declare a sealed interface as super interface of its permitted types:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/declare-sealed-interface-as-super-interface.png" alt="declare sealed interface as super interface" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="quick-fix-to-declare-sealed-class-as-super-class"><a class="anchor" href="#quick-fix-to-declare-sealed-class-as-super-class"></a>Quick fix to declare sealed class as super class</h5>
<div class="paragraph">
<p>You can use the following quick fix (<strong>Ctrl+1</strong>) to declare a sealed class as super class of its permitted classes:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/declare-sealed-class-as-super-class.png" alt="declare sealed class as super class" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="quick-fix-to-add-the-sub-type-to-permitted-types-of-sealed-super-type"><a class="anchor" href="#quick-fix-to-add-the-sub-type-to-permitted-types-of-sealed-super-type"></a>Quick fix to add the sub type to permitted types of sealed super type</h5>
<div class="paragraph">
<p>You can use the following quick fix (<strong>Ctrl+1</strong>) to add a sub type to permitted types of a sealed super type:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/add-subtype-to-permitted-types-of-supertype.png" alt="add subtype to permitted types of supertype" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="better-type-for-the-local-variable-creation-quick-fix"><a class="anchor" href="#better-type-for-the-local-variable-creation-quick-fix"></a>Better type for the local variable creation quick fix</h5>
<div class="paragraph">
<p>The quick fix <strong>Create a new local variable</strong> has been enhanced. When it creates a variable that is the expression on which a foreach loop iterates, its type is an array of the type of the loop parameter:</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/foreach-expression-type-before.png" alt="foreach expression type before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/foreach-expression-type-after.png" alt="foreach expression type after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-instanceof-clean-up"><a class="anchor" href="#use-instanceof-clean-up"></a>Use instanceof clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that uses an <code>instanceof</code> expression to check an object against a hardcoded class.</p>
</div>
<div class="paragraph">
<p>The expression must be a supertype of the targeted class.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Use instanceof keyword instead of Class.isInstance()</strong> check box on the <strong>Code Style</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/use-instanceof-preferences.png" alt="use instanceof preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/use-instanceof-before.png" alt="use instanceof before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/use-instanceof-after.png" alt="use instanceof after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="operand-factorization-clean-up"><a class="anchor" href="#operand-factorization-clean-up"></a>Operand factorization clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces <code>(X && Y) || (X && Z) by (X && (Y || Y))</code>.</p>
</div>
<div class="paragraph">
<p>The operands must be passive and primitive.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Replace (X && Y) || (X && Z) by (X && (Y || Z))</strong> check box on the <strong>Duplicate code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/operand-factorization-preferences.png" alt="operand factorization preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/operand-factorization-before.png" alt="operand factorization before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/operand-factorization-after.png" alt="operand factorization after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="pull-out-a-duplicate-if-from-an-ifelse-clean-up"><a class="anchor" href="#pull-out-a-duplicate-if-from-an-ifelse-clean-up"></a>Pull out a duplicate 'if' from an if/else clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that moves a duplicate inner <code>if</code> condition around an outer <code>if</code> condition.</p>
</div>
<div class="paragraph">
<p>The inner <code>if</code> condition should be common to both <code>if/else</code> clauses of the outer <code>if</code> statement.</p>
</div>
<div class="paragraph">
<p>The <code>if</code> conditions should be passive.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Pull out a duplicate 'if' from an if/else</strong> check box on the <strong>Duplicate code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/pull-out-if-preferences.png" alt="pull out if preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/pull-out-if-before.png" alt="pull out if before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/pull-out-if-after.png" alt="pull out if after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="one-if-rather-than-duplicate-blocks-that-fall-through-clean-up"><a class="anchor" href="#one-if-rather-than-duplicate-blocks-that-fall-through-clean-up"></a>One if rather than duplicate blocks that fall through clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that merges consecutive <code>if</code> statements with same code block that end with a jump statement.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Single 'if' statement rather than duplicate blocks that fall through</strong> check box on the <strong>Duplicate code</strong> tab in your clean up profile.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/one-falling-through-if-before.png" alt="one falling through if before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/one-falling-through-if-after.png" alt="one falling through if after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="uses-string-isblank-clean-up"><a class="anchor" href="#uses-string-isblank-clean-up"></a>Uses String.isBlank() clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces the check of the emptiness of <code>String.strip()</code> by the use of <code>String.isBlank()</code>.</p>
</div>
<div class="paragraph">
<p>It avoids the cost of the creation of a stripped string.</p>
</div>
<div class="paragraph">
<p>You may use Java 11 or higher to use it.</p>
</div>
<div class="paragraph">
<p>In order to apply this cleanup also to <code>trim().isEmpty()</code>, you might consider to replace <code>trim()</code>, which exists since the beginning of Java, with <code>strip()</code> that has been introduced in Java 11 together with <code>isBlank()</code>,</p>
</div>
<div class="paragraph">
<p>But watch out, <code>trim()</code> and <code>strip()</code> differ: <code>trim()</code> removes leading and trailing characters with an ASCII code up to 32, including some non white space ASCII control characters and missing some Unicode white space characters, whereas <code>strip()</code> removes all and only leading and trailing white space.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>String.isBlank()` rather than `String.strip().isEmpty()</strong> check box on the <strong>Optimization</strong> tab (the <strong>Performance</strong> tab in Eclipse 2021-09) in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/isblank-preferences.png" alt="isblank preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/isblank-before.png" alt="isblank before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/isblank-after.png" alt="isblank after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="valueof-rather-than-instantiation-clean-up"><a class="anchor" href="#valueof-rather-than-instantiation-clean-up"></a>valueOf() rather than instantiation clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces unnecessary primitive wrappers instance creations by using static factory methods (<code>valueOf()</code>).</p>
</div>
<div class="paragraph">
<p>It dramatically improves the space performance.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>valueOf() rather than instantiation</strong> check box on the <strong>Optimization</strong> tab (the <strong>Performance</strong> tab in Eclipse 2021-09) in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/valueof-rather-than-instantiation-preferences.png" alt="valueof rather than instantiation preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/valueof-rather-than-instantiation-before.png" alt="valueof rather than instantiation before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/valueof-rather-than-instantiation-after.png" alt="valueof rather than instantiation after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="primitive-rather-than-wrapper-clean-up"><a class="anchor" href="#primitive-rather-than-wrapper-clean-up"></a>Primitive rather than wrapper clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces a primitive wrapper object by the primitive type when an object is not necessary.</p>
</div>
<div class="paragraph">
<p>The variable must be not <code>null</code>. The result should not make more autoboxing/unboxing than the original code.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Primitive type rather than wrapper class</strong> check box on the <strong>Optimization</strong> tab (the <strong>Performance</strong> tab in Eclipse 2021-09) in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/primitive-rather-than-wrapper-preferences.png" alt="primitive rather than wrapper preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/primitive-rather-than-wrapper-before.png" alt="primitive rather than wrapper before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/primitive-rather-than-wrapper-after.png" alt="primitive rather than wrapper after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="redundant-truth-clean-up"><a class="anchor" href="#redundant-truth-clean-up"></a>Redundant truth clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that directly checks boolean values instead of comparing them with <code>true/false</code>.</p>
</div>
<div class="paragraph">
<p>The operator can be equals, not equals or XOR. The constants can be a literal or a <code>java.lang.Boolean</code> constant. One operand should be primitive so no new <code>null</code> pointer exceptions may occur.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Boolean value rather than comparison</strong> check box on the <strong>Unnecessary Code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/redundant-truth-preferences.png" alt="redundant truth preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/redundant-truth-before.png" alt="redundant truth before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/redundant-truth-after.png" alt="redundant truth after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="implicit-comparator-clean-up"><a class="anchor" href="#implicit-comparator-clean-up"></a>Implicit comparator clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that removes the comparator declaration if it is the default one.</p>
</div>
<div class="paragraph">
<p>The declared comparator should be an equivalent to the natural order. It removes anonymous class, lambda, <code>Comparator.comparing()</code>, <code>Comparator.naturalOrder()</code> and <code>null</code>. It applies on <code>List.sort(Comparator)</code>, <code>Collections.sort(List, Comparator)</code>, <code>Collections.max(Collection, Comparator)</code> and <code>Collections.min(Collection, Comparator)</code>. If the comparator is used in the method <code>List.sort(Comparator)</code>, the method is converted into <code>Collections.sort(List)</code>.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Use implicit comparator when possible</strong> check box on the <strong>Unnecessary Code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/implicit-comparator-preferences.png" alt="implicit comparator preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/implicit-comparator-before.png" alt="implicit comparator before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/implicit-comparator-after.png" alt="implicit comparator after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="initialize-array-with-curly-clean-up"><a class="anchor" href="#initialize-array-with-curly-clean-up"></a>Initialize array with curly clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces the new instance syntax by curly brackets to create an array.</p>
</div>
<div class="paragraph">
<p>It must be an initialization of a declaration. The declaration must have the same type.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Create array with curly when possible</strong> check box on the <strong>Unnecessary Code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/array-with-curly-preferences.png" alt="array with curly preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/array-with-curly-before.png" alt="array with curly before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/array-with-curly-after.png" alt="array with curly after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="remove-variable-assignment-before-return-clean-up"><a class="anchor" href="#remove-variable-assignment-before-return-clean-up"></a>Remove variable assignment before return clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that removes unnecessary local variable declaration or unnecessary variable assignment before a return statement.</p>
</div>
<div class="paragraph">
<p>An explicit type is added for arrays.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Remove variable assignment before return</strong> check box on the <strong>Unnecessary Code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/return-without-assignment-preferences.png" alt="return without assignment preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/return-without-assignment-before.png" alt="return without assignment before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/return-without-assignment-after.png" alt="return without assignment after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="replace-system-getproperty-calls-clean-up"><a class="anchor" href="#replace-system-getproperty-calls-clean-up"></a>Replace System.getProperty() calls clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces certain <code>System.getProperty()</code> calls with alternative Java method calls or constants instead. Using these calls/constants may end up using system defaults (e.g. system default file separator) and thus can no longer be overridden at runtime.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Replace system property with constant</strong> check box on the <strong>Java Feature</strong> tab in your clean up profile. This enables you to check one or more sub-options: <strong>File separator</strong>, <strong>Path separator</strong>, <strong>Line separator</strong>, <strong>File encoding</strong>, or <strong>Boolean property</strong>. The last option is used for arbitrary boolean options specified by <strong>-Dsome-arbitrary-option</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/system-properties-preferences.png" alt="system properties preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/system-properties-before.png" alt="system properties before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/system-properties-after.png" alt="system properties after" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-compiler"><a class="anchor" href="#java-compiler"></a>Java Compiler</h4>
<div class="sect4">
<h5 id="find-external-annotations-anywhere"><a class="anchor" href="#find-external-annotations-anywhere"></a>Find external annotations anywhere</h5>
<div class="paragraph">
<p>External annotations, which are used for annotation based null analysis, can now be associated to unannotated classes more freely.</p>
</div>
<div class="paragraph">
<p>Previously, all external annotations where declared per build path entry. I.e., whenever a project of yours uses a library for which external annotations exist, you would need to explicitly declare where the corresponding external annotations for this particular library can be found.</p>
</div>
<div class="paragraph">
<p>A new compiler preference has been added by which you can instruct the compiler to search for external annotations in all build path locations of the current project.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/external_annotations_all_locations.png" alt="external annotations all locations" />
</div>
</div>
<div class="paragraph">
<p>When enabled, this strategy will be applied to all class files encountered during compilation.</p>
</div>
<div class="paragraph">
<p>Some examples, where this option is useful:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A project A contains generated sources (in a separate source folder), which are decorated using external annotations in the same project. When project A ships a jar containing also the external annotations, any client of A will immediately see the generated classes with their external annotations applied.</p>
</li>
<li>
<p>When dedicated jars have been created, each containing external annotations for a set of libraries, you only have to add these annotation jars to your build path and enable the new option, without worrying which annotation jar corresponds to which individual dependency (dependencies). The compiler will match external annotations to class files with no further help.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For batch compilation a corresponding option already exists. To match the above strategy in CI-builds, just add the following to the compiler command line (verbatim):
<code>-annotationpath CLASSPATH</code></p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-views-and-dialogs"><a class="anchor" href="#java-views-and-dialogs"></a>Java Views and Dialogs</h4>
<div class="sect4">
<h5 id="differentiate-search-filter-for-normal-imports-from-static-imports"><a class="anchor" href="#differentiate-search-filter-for-normal-imports-from-static-imports"></a>Differentiate search filter for normal imports from static imports</h5>
<div class="paragraph">
<p>The <strong>Search</strong> view now supports a new filter dedicated for <strong>static imports</strong>. Consequently, the existing imports filter is dedicated for non-static imports only. As a result, you will now by default find statically imported references of a class or an interface.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/static-import-filter.png" alt="static import filter" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="create-module-info-java-option-during-new-java-project-creation"><a class="anchor" href="#create-module-info-java-option-during-new-java-project-creation"></a>Create module-info.java option during New Java Project creation</h5>
<div class="paragraph">
<p><strong>Create module-info.java</strong> option has been moved to the first page of <strong>New Java Project</strong> creation wizard. This option will be enabled only for Java projects with JRE 9 or above. New Java Project creation wizard will also remember the previous choice made by the user and select this option by default accordingly.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/create-moduleinfo.png" alt="create moduleinfo" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="default-java-cleanup-profile-of-eclipse-has-been-updated"><a class="anchor" href="#default-java-cleanup-profile-of-eclipse-has-been-updated"></a>Default Java cleanup profile of Eclipse has been updated</h5>
<div class="paragraph">
<p>The default cleanup profile of the Java development tools has been updated to include more cleanups. All included cleanups have been well tested and proven to be stable in the Eclipse code base. Please see the preference under <strong>Java > Clean-up</strong> for details.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/cleanup-profile.png" alt="cleanup profile" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="evaluate-variables-in-current-execution-stack"><a class="anchor" href="#evaluate-variables-in-current-execution-stack"></a>Evaluate variables in current execution stack</h5>
<div class="paragraph">
<p>In debug mode, regardless of the selected stack frame now you can evaluate variables which are in the scope of the current execution stack frame and stack frames below it which are defined in the current focused java class.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.21/images/debug_eval_intrim_stack.png" alt="debug eval intrim stack" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="copy-run-configuration-item-details"><a class="anchor" href="#copy-run-configuration-item-details"></a>Copy Run Configuration item details</h5>
<div class="paragraph">
<p>A new <strong>Copy</strong> button has been added to the <strong>Dependencies/Classpath</strong> tab of Run Configuration dialog. This can be used to copy the details of the selected item.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/configuration-copyjars.png" alt="configuration copyjars" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="debug-hover-for-chain-of-variables"><a class="anchor" href="#debug-hover-for-chain-of-variables"></a>Debug hover for chain of variables</h5>
<div class="paragraph">
<p>When hovering over chain of variables, the debug hover will now show the variable value under the cursor.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/debug_hover_chain_var.png" alt="debug hover chain var" />
</div>
</div>
<div class="paragraph">
<p>It even works for array length.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.20/images/debug_hover_array_length.png" alt="debug hover array length" />
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.19.1.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.21.0 and Red Hat CodeReady Studio 12.21.0 out we are already working on the next release.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.21.0.am1.htmlJBoss Tools 4.21.0.AM1 for Eclipse 2021-092021-09-09T13:37:10+00:002021-09-07T00:00:00+00:00jeffmaury
Happy to announce 4.21.0.AM1 (Developer Milestone 1) build for Eclipse 2021-09.
Downloads available at JBoss Tools 4.21.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
OpenShift
Operator based services
When developing cloud native applications on OpenShift, developer may need to
launch services (databases, messaging system,…) that the application under
development may need to connect to. The OpenShift tooling allowed to launch such
services but it was based on the service catalog which is not available anymore on OpenShift 4.
The new feature is based on operators which is the devops way of installing and
managing software on Kubernetes clusters. So when you want to launch...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.21.0.AM1 (Developer Milestone 1) build for Eclipse 2021-09.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2021-09/4.21.0.AM1.html">JBoss Tools 4.21.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.21.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="operator-based-services"><a class="anchor" href="#operator-based-services"></a>Operator based services</h4>
<div class="paragraph">
<p>When developing cloud native applications on OpenShift, developer may need to
launch services (databases, messaging system,…) that the application under
development may need to connect to. The OpenShift tooling allowed to launch such
services but it was based on the service catalog which is not available anymore on OpenShift 4.</p>
</div>
<div class="paragraph">
<p>The new feature is based on operators which is the devops way of installing and
managing software on Kubernetes clusters. So when you want to launch a service
for your application, you will have to choose from the list of installed
operators on your cluster and then select type of deployment you want.</p>
</div>
<div class="paragraph">
<p>In the following example, there are two operators installed on our cluster:
the <a href="https://strimzi.io">Strimzi</a> operator for setting up Kafka clusters on Kubernetes
and a Postgresql operator.</p>
</div>
<div class="paragraph">
<p>For each operator, we can select the type of deployment we want to setup.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/operator-based-services1.gif" alt="operator based services1" width="80%" />
</div>
</div>
<div class="paragraph">
<p>After you’ve entered the name of your service, it will appear in the application explorer view:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/operator-based-services2.png" alt="operator based services2" width="80%" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.5 runtime provider now incorporates Hibernate Core version 5.5.7.Final and Hibernate Tools version 5.5.7.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.22.Final and Hibernate Tools version 5.3.22.Final.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.19.1.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2021-032021-07-16T13:22:52+00:002021-07-16T00:00:00+00:00jeffmaury
JBoss Tools 4.19.1 and
Red Hat CodeReady Studio 12.19.1
for Eclipse 2021-03 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.19 (2021-03) but we recommend
using the latest Eclipse 4.19 2021-03 JEE Bundle
since then you get most of the dependencies preinstalled.
Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2021-03/4.19.1.Final.html">JBoss Tools 4.19.1</a> and
<a href="https://tools.jboss.org/downloads/devstudio/2021-03/12.19.1.GA.html">Red Hat CodeReady Studio 12.19.1</a>
for Eclipse 2021-03 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.19 (2021-03) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2021-03/r/eclipse-ide-enterprise-java-and-web-developers">Eclipse 4.19 2021-03 JEE Bundle</a></p>
</div>
<div class="paragraph">
<p>since then you get most of the dependencies preinstalled.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So make sure to select a Java11 JDK in the installer.
You can still work with pre-Java11 JDK/JRE and projects in the tool.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was an improved tooling for the Quarkus framework, improvements for container based development and bug fixing.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="improved-openshift-application-explorer"><a class="anchor" href="#improved-openshift-application-explorer"></a>Improved OpenShift Application explorer</h4>
<div class="paragraph">
<p>When the OpenShift cluster has no applications or projects, user is required to create them. However,
it may not be obvious for the user that the corresponding function is available from a sub menu of the
New context menu.</p>
</div>
<div class="paragraph">
<p>So now, a link will be provided within the tree with an explanation message.</p>
</div>
<div class="paragraph">
<p>If no projects are available, user will be guided to create one:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer-enhanced-navigation1.gif" alt="application explorer enhanced navigation1" width="80%" />
</div>
</div>
<div class="paragraph">
<p>If no applications are available in a project, user will be guided to create a new component:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer-enhanced-navigation2.gif" alt="application explorer enhanced navigation2" width="80%" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-24-server-adapter"><a class="anchor" href="#wildfly-24-server-adapter"></a>Wildfly 24 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 24.</p>
</div>
</div>
<div class="sect3">
<h4 id="eap-7-4-beta-server-adapter"><a class="anchor" href="#eap-7-4-beta-server-adapter"></a>EAP 7.4 Beta Server Adapter</h4>
<div class="paragraph">
<p>The server adapter has been adapted to work with EAP 7.4 Beta.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="new-runtime-provider"><a class="anchor" href="#new-runtime-provider"></a>New Runtime Provider</h5>
<div class="paragraph">
<p>The new Hibernate 5.5 runtime provider has been added. It incorporates Hibernate Core version 5.5.3.Final and Hibernate Tools version 5.5.3.Final</p>
</div>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.32.Final and Hibernate Tools version 5.4.32.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.19.1.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.19.1 and Red Hat CodeReady Studio 12.19.1 out we are already working on the next release.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.19.1.am1.htmlJBoss Tools 4.19.1.AM1 for Eclipse 2021-032021-06-18T06:40:22+00:002021-06-15T00:00:00+00:00jeffmaury
Happy to announce 4.19.1.AM1 (Developer Milestone 1) build for Eclipse 2021-03.
Downloads available at JBoss Tools 4.19.1 AM1.
What is New?
Full info is at this page. Some highlights are below.
OpenShift
Improved OpenShift Application explorer
When the OpenShift cluster has no applications or projects, user is required to create them. However,
it may not be obvious for the user that the corresponding function is available from a sub menu of the
New context menu.
So now, a link will be provided within the tree with an explanation message.
If no projects are available, user will be guided to create one:
If no applications are available in a project, user will...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.19.1.AM1 (Developer Milestone 1) build for Eclipse 2021-03.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2021-03/4.19.1.AM1.html">JBoss Tools 4.19.1 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.19.1.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="improved-openshift-application-explorer"><a class="anchor" href="#improved-openshift-application-explorer"></a>Improved OpenShift Application explorer</h4>
<div class="paragraph">
<p>When the OpenShift cluster has no applications or projects, user is required to create them. However,
it may not be obvious for the user that the corresponding function is available from a sub menu of the
New context menu.</p>
</div>
<div class="paragraph">
<p>So now, a link will be provided within the tree with an explanation message.</p>
</div>
<div class="paragraph">
<p>If no projects are available, user will be guided to create one:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer-enhanced-navigation1.gif" alt="application explorer enhanced navigation1" width="80%" />
</div>
</div>
<div class="paragraph">
<p>If no applications are available in a project, user will be guided to create a new component:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer-enhanced-navigation2.gif" alt="application explorer enhanced navigation2" width="80%" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.32.Final and Hibernate Tools version 5.4.32.Final.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.19.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2021-032021-04-20T08:20:51+00:002021-04-20T00:00:00+00:00jeffmaury
JBoss Tools 4.19.0 and
Red Hat CodeReady Studio 12.19
for Eclipse 2021-03 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.19 (2021-03) but we recommend
using the latest Eclipse 4.19 2021-03 JEE Bundle
since then you get most of the dependencies preinstalled.
Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2021-03/4.19.0.Final.html">JBoss Tools 4.19.0</a> and
<a href="https://tools.jboss.org/downloads/devstudio/2021-03/12.19.0.GA.html">Red Hat CodeReady Studio 12.19</a>
for Eclipse 2021-03 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.19 (2021-03) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2021-03/r/eclipse-ide-java-developers">Eclipse 4.19 2021-03 JEE Bundle</a>
since then you get most of the dependencies preinstalled.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So make sure to select a Java11 JDK in the installer.
You can still work with pre-Java11 JDK/JRE and projects in the tool.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was an improved tooling for the Quarkus framework, improvements for container based development and bug fixing.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="login-to-developer-sandbox-from-the-tooling"><a class="anchor" href="#login-to-developer-sandbox-from-the-tooling"></a>Login to Developer Sandbox from the tooling</h4>
<div class="paragraph">
<p>Red Hat provides an online OpenShift environment called
<a href="https://red.ht/dev-sandbox">Developer Sandbox</a> that makes it easy for developers to build, test and deploy cloud
native applications and microservices.</p>
</div>
<div class="paragraph">
<p>In order to use Developer Sandbox, you must own a Red Hat SSO account (which can be linked to social accounts like
GitHub,…). Once logged in into Red Hat SSO, you will get an environment provisioned in Developer Sandbox but
the first time you will try to login in to Developer Sandbox, your account needs to be verified (in order to
prevent crypto miners and robots) thus you need to go through a verification phase where you will be asked to provide:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>first your phone number and country code</p>
</li>
<li>
<p>then a verification code that you will receive on your smartphone.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>So it is now possible to provision and log in to Developer Sandbox from the OpenShift tooling and connect it to the Developer Sandbox environment.</p>
</div>
<div class="paragraph">
<p>Open the <code>OpenShift Application Explorer</code> view (<code>Window → Show View → Other…</code>, enter <code>open</code> and double click on <code>OpenShift Application Explorer</code>):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox1.png" alt="devsandbox1" width="600" />
</div>
</div>
<div class="paragraph">
<p>Right click on the first node and select the <code>Login</code> context menu:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox2.png" alt="devsandbox2" width="600" />
</div>
</div>
<div class="paragraph">
<p>In order to provision the Developer Sandbox environment, click on the <code>Red Hat Developer Sandbox</code> link: a browser window will open and you will be required to login to your Red Hat SSO account:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox3.png" alt="devsandbox3" width="600" />
</div>
</div>
<div class="paragraph">
<p>Login to your account (please note that if you don’t have a Red Hat account, you can create a new one). Once
you’re logged in, you should see the following window:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox4.png" alt="devsandbox4" width="600" />
</div>
</div>
<div class="paragraph">
<p>Enter your contry code (+XX) and phone number and click the <code>Verify</code> button:</p>
</div>
<div class="paragraph">
<p>You will be required to provide the verification code that you should have received on your phone:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox5.png" alt="devsandbox5" width="600" />
</div>
</div>
<div class="paragraph">
<p>Once your Developer Sandbox environment is provisioned; you will see the following window:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox6.png" alt="devsandbox6" width="600" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code>Ǹext</code> button to log in to your Developer Sandbox environment:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox7.png" alt="devsandbox7" width="600" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code>DevSandbox</code> link and log in with the same credentials: you will see the following window:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox8.png" alt="devsandbox8" width="600" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code>Display Token</code> link and the click on the <code>Finish</code> button, you should be back to the Login wizard:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox9.png" alt="devsandbox9" width="600" />
</div>
</div>
<div class="paragraph">
<p>Please note that the <code>URL</code> and <code>Token</code> fields have been updated. Click the <code>Finish</code> button, the <code>OpenShift Application Explorer</code> will be updated with the Developer
Sandbox URL and if you expand it, you will see 3 namespaces/projects available for you to start playing with:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devsandbox10.png" alt="devsandbox10" width="600" />
</div>
</div>
<div class="paragraph">
<p>You’re now ready to work against this environment for free !!!.</p>
</div>
</div>
<div class="sect3">
<h4 id="browser-based-login-to-an-openshift-cluster"><a class="anchor" href="#browser-based-login-to-an-openshift-cluster"></a>Browser based login to an OpenShift cluster</h4>
<div class="paragraph">
<p>When it comes to login to a cluster, OpenShift Tools supported two different authentication mechanisms:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>user/password</p>
</li>
<li>
<p>token</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The drawback is that it does not cover clusters where a more enhanced and modern authentication infrastructure is in place. So it is now possible to login to the cluster through an embedded web browser.</p>
</div>
<div class="paragraph">
<p>In order to use it, go to the Login context menu from the Application Explorer view:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/weblogin1.png" alt="weblogin1" width="600" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code>Retrieve token</code> button and an embedded web browser will be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/weblogin2.png" alt="weblogin2" width="600" />
</div>
</div>
<div class="paragraph">
<p>Complete the workflow until you see a page that contains <code>Display Token</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/weblogin3.png" alt="weblogin3" width="600" />
</div>
</div>
<div class="paragraph">
<p>Click on <code>Display Token</code>:</p>
</div>
<div class="paragraph">
<p>The web browser is automatically closed and you’ll notice that the retrieved token has been set in the original dialog:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/weblogin4.png" alt="weblogin4" width="600" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="devfile-registries-management"><a class="anchor" href="#devfile-registries-management"></a>Devfile registries management</h4>
<div class="paragraph">
<p>Since JBoss Tools 4.18.0.Final, the preferred way of developing components is now based on devfile, which is a YAML file that describe how to build the component and if required, launch other containers with other containers.
When you create a component, you need to specify a devfile that describe your component. So either you component source contains its own devfile or you need to pick a devfile that is related to your component.
In the second case, OpenShift Tools supports devfile registries that contains a set of different devfiles. There is a default registry (<a href="https://github.com/odo-devfiles/registry" class="bare">https://github.com/odo-devfiles/registry</a>) but you may want to have your own registries. It is now possible to add and remove registries as you want.</p>
</div>
<div class="paragraph">
<p>The registries are displayed in the OpenShift Application Explorer under the <code>Devfile registries</code> node:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/registries1.png" alt="registries1" width="600" />
</div>
</div>
<div class="paragraph">
<p>Please note that expanding the registry node will list all devfiles from that registry with a description:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/registries2.png" alt="registries2" width="600" />
</div>
</div>
<div class="paragraph">
<p>A context menu on the <code>Devfile registries</code> node allows you to add new registries, and on the registry node to delete it.</p>
</div>
</div>
<div class="sect3">
<h4 id="devfile-enhanced-editing-experience"><a class="anchor" href="#devfile-enhanced-editing-experience"></a>Devfile enhanced editing experience</h4>
<div class="paragraph">
<p>Although devfile registries can provide ready-to-use devfiles, there may be some advanced cases where users need to write their own devfile. As the syntax is quite complex, the YAML editor has been completed so that to provide:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>syntax validation</p>
</li>
<li>
<p>content assist</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="support-for-python-based-components"><a class="anchor" href="#support-for-python-based-components"></a>Support for Python based components</h4>
<div class="paragraph">
<p>Python-based components were supported but debugging was not possible. This release brings integration between the Eclipse debugger and the Python runtime.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quarkus"><a class="anchor" href="#quarkus"></a>Quarkus</h3>
<div class="sect3">
<h4 id="support-for-environment-variables-in-rundebug-quarkus-configurations"><a class="anchor" href="#support-for-environment-variables-in-rundebug-quarkus-configurations"></a>Support for environment variables in Run/debug Quarkus configurations</h4>
<div class="paragraph">
<p>Environment variables is one way to override properties values in the Quarkus properties file. It is now possible
to specify environment variables in a Run/debug Quarkus configuration.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-23-server-adapter"><a class="anchor" href="#wildfly-23-server-adapter"></a>Wildfly 23 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 23.</p>
</div>
</div>
<div class="sect3">
<h4 id="eap-7-4-beta-server-adapter"><a class="anchor" href="#eap-7-4-beta-server-adapter"></a>EAP 7.4 Beta Server Adapter</h4>
<div class="paragraph">
<p>The server adapter has been adapted to work with EAP 7.4 Beta.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.30.Final and Hibernate Tools version 5.4.30.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="platform"><a class="anchor" href="#platform"></a>Platform</h3>
<div class="sect3">
<h4 id="views-dialogs-and-toolbar"><a class="anchor" href="#views-dialogs-and-toolbar"></a>Views, Dialogs and Toolbar</h4>
<div class="sect4">
<h5 id="filter-field-for-configuration-details"><a class="anchor" href="#filter-field-for-configuration-details"></a>Filter field for configuration details</h5>
<div class="paragraph">
<p>A filter field has been added to the <strong>Installation Details > Configuration</strong> tab. This allows much faster lookup of specific information from the system details by showing only lines containing the filter criteria.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/configuration-filter.png" alt="configuration filter" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="preference-to-remember-the-last-used-page-in-search-dialog"><a class="anchor" href="#preference-to-remember-the-last-used-page-in-search-dialog"></a>Preference to remember the last used page in search dialog</h5>
<div class="paragraph">
<p>The <strong>Remember last used page</strong> check box was previously available from the <strong>Search dialog > Customize… > Search Page Selection</strong> dialog, which was not intuitive and hard to find. Now, the check box is moved to the Search preference page.</p>
</div>
<div class="paragraph">
<p>A new preference <strong>Remember last used page in the Search dialog</strong> has been added to <strong>Preferences > General > Search</strong> page. This new preference is enabled by default.
image::https://www.eclipse.org/eclipse/news/4.18/images/remember-last-used.png[]</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="text-editors"><a class="anchor" href="#text-editors"></a>Text Editors</h4>
<div class="sect4">
<h5 id="horizontal-scrolling-in-text-editor"><a class="anchor" href="#horizontal-scrolling-in-text-editor"></a>Horizontal Scrolling in Text Editor</h5>
<div class="paragraph">
<p>You can now scroll horizontally in the <strong>Text Editor</strong> using <strong>Shift+Mouse Wheel</strong> and <strong>touchpad gestures</strong> on Windows. Horizontal scrolling with touchpad already works on Linux and macOS.</p>
</div>
</div>
<div class="sect4">
<h5 id="open-with-does-not-store-the-editor-relationship-anymore"><a class="anchor" href="#open-with-does-not-store-the-editor-relationship-anymore"></a>Open-with does not store the editor relationship anymore</h5>
<div class="paragraph">
<p>The menu entry <strong><span class="menuseq"><b class="menu">Open With</b> <i class="fa fa-angle-right caret"></i> <b class="menuitem">…</b></span></strong> does not store the selected editor as default editor for the selected file as this was undesired in most cases and lead to confusion. Also, removing this association was not easy for the end user. The user can still assign a editor to a certain file type via the <strong><span class="menuseq"><b class="menu">Open With</b> <i class="fa fa-angle-right caret"></i> <b class="menuitem">Other…</b></span></strong> dialog.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="find-nextprevious-in-console-view"><a class="anchor" href="#find-nextprevious-in-console-view"></a>Find Next/Previous in Console View</h5>
<div class="paragraph">
<p>In the <strong>Console</strong> view, you can repeat your last search in the forward or backward direction in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Right-click in the Console view, then select <strong>Find Next</strong> or <strong>Find Previous</strong>.</p>
</li>
<li>
<p>Use the keyboard shortcuts <strong>Ctrl+K</strong> or <strong>Ctrl+Shift+K</strong>.</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/console-find-next-find-previous-45017.png" alt="console find next find previous 45017" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="disable-all-in-breakpoints-view"><a class="anchor" href="#disable-all-in-breakpoints-view"></a>Disable All in Breakpoints view</h5>
<div class="paragraph">
<p>In the <strong>Breakpoints</strong> view, you can disable all the breakpoints using the new <strong>Disable All</strong> context-menu option available on right-click.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/disable-allbreakpoints.png" alt="disable allbreakpoints" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="terminate-descendants-of-operating-system-processes-launched-by-eclipse"><a class="anchor" href="#terminate-descendants-of-operating-system-processes-launched-by-eclipse"></a>Terminate descendants of operating-system processes launched by Eclipse</h5>
<div class="paragraph">
<p>Some types of launch-configurations start operating-system processes when launched from Eclipse. When you terminate the corresponding process before it completes (for example by clicking the <strong>terminate</strong> button, the red square) that operating-system process is destroyed. Now the descendants of that process, its child-processes created by the main-process and their children recursively, are destroyed too.</p>
</div>
</div>
<div class="sect4">
<h5 id="termination-of-child-processes-of-launched-os-processes-can-be-configured"><a class="anchor" href="#termination-of-child-processes-of-launched-os-processes-can-be-configured"></a>Termination of child processes of launched OS processes can be configured</h5>
<div class="paragraph">
<p>Since Eclipse 4.18 child processes (descendants) of an operating system process launched from Eclipse are terminated too, when the launched process is terminated (for example by clicking the terminate button).</p>
</div>
<div class="paragraph">
<p>It is now possible to configure in the Launch Configuration whether the child processes of a launched process should be terminated too or if they should stay alive, in case the launched processes is terminated. You can control this with the checkbox <strong>Terminate child processes if terminating the launched process</strong> in the <strong>Common</strong> tab of the <strong>Run/Debug Configurations</strong> dialog. By default this checkbox is selected and child processes are terminated too.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/configure-child-process-termination.png" alt="configure child process termination" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="preferences"><a class="anchor" href="#preferences"></a>Preferences</h4>
<div class="sect4">
<h5 id="external-browsers-on-windows"><a class="anchor" href="#external-browsers-on-windows"></a>External browsers on Windows</h5>
<div class="paragraph">
<p>On Windows, the list of recognized External web browsers has been updated to include:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Microsoft Edge</strong> (%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe)</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/browsers-windows-update.png" alt="browsers windows update" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="enable-word-wrap-on-console-output"><a class="anchor" href="#enable-word-wrap-on-console-output"></a>Enable word wrap on console output</h4>
<div class="paragraph">
<p>A new preference <strong>Enable word wrap</strong> is available in the <strong>Console</strong> preference page. This setting persists the current state of the "Word wrap" toggle on the console view between user sessions. By default, word wrapping is disabled on console output.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/console-preferences-word-wrap.png" alt="console preferences word wrap" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="themes-and-styling"><a class="anchor" href="#themes-and-styling"></a>Themes and Styling</h4>
<div class="sect4">
<h5 id="new-system-theme"><a class="anchor" href="#new-system-theme"></a>New "System" theme</h5>
<div class="paragraph">
<p>A new <strong>"System"</strong> theme is available in the <strong>Appearance</strong> preference page. This theme is built using system colors, and as a consequence integrates well in any OS and OS theme.</p>
</div>
<div class="paragraph">
<p>This screenshot shows the System theme in action under several GTK themes:</p>
</div>
<div class="paragraph">
<p>GTK Adwaita:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/systemTheme-gtkAdawaita.png" alt="systemTheme gtkAdawaita" />
</div>
</div>
<div class="paragraph">
<p>GTK Adwaita Dark:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/systemTheme-gtkAdawaitaDark.png" alt="systemTheme gtkAdawaitaDark" />
</div>
</div>
<div class="paragraph">
<p>GTK Kripton:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/systemTheme-gtkKripton.png" alt="systemTheme gtkKripton" />
</div>
</div>
<div class="paragraph">
<p>GTK Dark Mint:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/systemTheme-gtkDarkMint.png" alt="systemTheme gtkDarkMint" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="windows-dark-theme-styles-progress-bars"><a class="anchor" href="#windows-dark-theme-styles-progress-bars"></a>Windows dark theme styles progress bars</h5>
<div class="paragraph">
<p>The progress bar in the dark theme on Windows OS is now styled:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/progressbar-dark-win32.png" alt="progressbar dark win32" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="light-theme-on-macos"><a class="anchor" href="#light-theme-on-macos"></a>Light theme on macOS</h5>
<div class="paragraph">
<p>The <strong>Light</strong> theme for macOS has been updated to fit the latest macOS design.</p>
</div>
<div class="paragraph">
<p>Old:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/macTheme-light-old.png" alt="macTheme light old" />
</div>
</div>
<div class="paragraph">
<p>New:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/macTheme-light-new.png" alt="macTheme light new" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="general-updates"><a class="anchor" href="#general-updates"></a>General Updates</h4>
<div class="sect4">
<h5 id="equinox-linux-security-jna-fragment"><a class="anchor" href="#equinox-linux-security-jna-fragment"></a>Equinox Linux Security JNA Fragment</h5>
<div class="paragraph">
<p>A new fragment has been added for Linux password security using JNA. This new fragment replaces the old JNI x86_64-specific fragment and supports all Linux architectures.</p>
</div>
</div>
<div class="sect4">
<h5 id="ant-1-10-9"><a class="anchor" href="#ant-1-10-9"></a>Ant 1.10.9</h5>
<div class="paragraph">
<p>Eclipse has adopted Ant version 1.10.9.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="junit"><a class="anchor" href="#junit"></a>JUnit</h4>
<div class="sect4">
<h5 id="junit-5-7-1"><a class="anchor" href="#junit-5-7-1"></a>JUnit 5.7.1</h5>
<div class="paragraph">
<p>JUnit 5.7.1 is here and Eclipse JDT has been updated to use this version.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="quick-assist-to-create-try-with-resources"><a class="anchor" href="#quick-assist-to-create-try-with-resources"></a>Quick assist to create try-with-resources</h5>
<div class="paragraph">
<p>For expressions returning a type that is <code>AutoCloseable</code> there’s a new quick assist (<strong>Ctrl+1</strong>) available: <strong>Assign to new local variable in try-with-resources</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/try-with-resources-before.png" alt="try with resources before" />
</div>
</div>
<div class="paragraph">
<p>It creates a new try-with-resources block with the expression assigned to a resource variable. The variable type and name can be selected from a few suggestions:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/try-with-resources-after.png" alt="try with resources after" />
</div>
</div>
<div class="paragraph">
<p>The default hotkey sequence for this quick assist is <strong>Ctrl+2</strong> followed by <strong>T</strong>.</p>
</div>
</div>
<div class="sect4">
<h5 id="add-catch-clause-to-try-with-resources-assists"><a class="anchor" href="#add-catch-clause-to-try-with-resources-assists"></a>Add catch clause to try-with-resources assists</h5>
<div class="paragraph">
<p>There are multiple assists to surround auto-closeable statements in a try-with-resources statement including <strong>Surround with > Try-with-resources Block</strong>. Now, all forms will add a <code>catch</code> clause for any exceptions (such as <code>IOException</code>) thrown by the auto-close if not already handled via an existing <code>catch</code> clause or <code>throws</code> directive. In the case where the existing code catches or throws an exception that sub-classes the exceptions of the new <code>catch</code> clause, an additional <code>catch</code> clause will be added to rethrow the exception to ensure code logic remains consistent.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/add-catch-clause-to-try-with-resources-before.png" alt="add catch clause to try with resources before" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/add-catch-clause-to-try-with-resources-after.png" alt="add catch clause to try with resources after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="quick-fix-to-create-permitted-type-declaration"><a class="anchor" href="#quick-fix-to-create-permitted-type-declaration"></a>Quick fix to create permitted type declaration</h5>
<div class="paragraph">
<p>You can use the following quick fixes (<strong>Ctrl+1</strong>) to create a new permitted class or interface declaration:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/create-permitted-type-declaration.png" alt="create permitted type declaration" />
</div>
</div>
<div class="paragraph">
<p>The created type will declare the <code>sealed</code> type as its super type and it can be declared as final, non-sealed, or sealed with the available quick fixes for further inheritance control.</p>
</div>
</div>
<div class="sect4">
<h5 id="java-feature-clean-ups"><a class="anchor" href="#java-feature-clean-ups"></a>Java Feature clean ups</h5>
<div class="paragraph">
<p>A new tab named <strong>Java Feature</strong> has been added to the <strong>Clean Up</strong> preferences. It lists the clean up options that introduce the use of language features from different Java versions. Relevant clean up options from other tabs have also been moved to this new tab.</p>
</div>
<div class="paragraph">
<p>You can use these clean ups while upgrading the Java version in your code.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/java-feature-preferences.png" alt="java feature preferences" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="pattern-matching-for-instanceof-clean-up"><a class="anchor" href="#pattern-matching-for-instanceof-clean-up"></a>Pattern matching for instanceof clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that uses pattern matching for the <code>instanceof</code> operator when possible.</p>
</div>
<div class="paragraph">
<p>It is only applicable for Java 15 or higher when preview features are enabled.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Pattern matching for instanceof</strong> check box on the <strong>Java Feature</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/pattern-matching-preferences.png" alt="pattern matching preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/pattern-matching-before.png" alt="pattern matching before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/pattern-matching-after.png" alt="pattern matching after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="reduce-indentation-clean-up"><a class="anchor" href="#reduce-indentation-clean-up"></a>Reduce indentation clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that removes useless indentation when the opposite workflow falls through.</p>
</div>
<div class="paragraph">
<p>When several blocks fall through, it reduces the block with the greatest indentation. It can negate an <code>if</code> condition if the else statements fall through.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Reduce indentation when possible</strong> check box on the <strong>Code Style</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/reduce-indentation-preferences.png" alt="reduce indentation preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/reduce-indentation-before.png" alt="reduce indentation before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/reduce-indentation-after.png" alt="reduce indentation after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="extract-increment-clean-up"><a class="anchor" href="#extract-increment-clean-up"></a>Extract increment clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that moves increment or decrement outside an expression.</p>
</div>
<div class="paragraph">
<p>A prefix increment/decrement (<code>i`) first changes the value of the variable and then returns the updated value. A postfix increment/decrement (`i</code>) first returns the original value and then changes the value of the variable.</p>
</div>
<div class="paragraph">
<p>But let’s look at this code:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">int i = j++;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Most of the developers hardly remember which from the increment or the assignment comes first. One way to make the code obvious is to write the increment/decrement in a dedicated statement:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">int i = j;
j++;</code></pre>
</div>
</div>
<div class="paragraph">
<p>And so for the prefix expressions:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">int i = ++j;</code></pre>
</div>
</div>
<div class="paragraph">
<p>…it goes like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">j++;
int i = j;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The cleanup moves a prefix expression above the statement and a postfix expression below. It does not move increments from loop condition and it does not cleanup several increments in the same statement. The increment/decrement is always rewritten as a postfix expression for standardization.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Extract increment/decrement from statement</strong> check box on the <strong>Code Style</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/extract-increment-preferences.png" alt="extract increment preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/extract-increment-before.png" alt="extract increment before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/extract-increment-after.png" alt="extract increment after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-comparator-comparing-clean-up"><a class="anchor" href="#use-comparator-comparing-clean-up"></a>Use Comparator.comparing() clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces a plain comparator instance by a lambda expression passed to a <code>Comparator.comparing()</code> method.</p>
</div>
<div class="paragraph">
<p>The feature is enabled only with Java 8 or higher.</p>
</div>
<div class="paragraph">
<p>The <code>Comparator</code> type must be inferred by the destination of the comparator. The algorithm of the comparator must be standard and based on one field or method. The cleanup can handle the null values and reversed orders.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Use Comparator.comparing()</strong> check box on the <strong>Java Feature</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/comparator-comparing-preferences.png" alt="comparator comparing preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/comparator-comparing-before.png" alt="comparator comparing before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/comparator-comparing-after.png" alt="comparator comparing after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="multi-catch-clean-up"><a class="anchor" href="#multi-catch-clean-up"></a>Multi-catch clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that converts catch clauses with same body to Java 7’s multi-catch.</p>
</div>
<div class="paragraph">
<p>The feature is enabled only with Java 7 or higher.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Use Multi-catch</strong> check box on the <strong>Java Feature</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/multi-catch-preferences.png" alt="multi catch preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/multi-catch-before.png" alt="multi catch before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/multi-catch-after.png" alt="multi catch after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="convert-fields-into-local-variables"><a class="anchor" href="#convert-fields-into-local-variables"></a>Convert fields into local variables</h5>
<div class="paragraph">
<p>A new clean up has been added that refactors a field into a local variable if its use is only local.</p>
</div>
<div class="paragraph">
<p>The previous value should not be read. The field should be <code>private</code>. The field should not be <code>final</code>. The field should be primitive. The field should not have annotations.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Convert fields into local variables if the use is only local</strong> check box on the <strong>Optimization</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/convert-fields-preferences.png" alt="convert fields preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/convert-fields-before.png" alt="convert fields before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/convert-fields-after.png" alt="convert fields after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="static-inner-class-clean-up"><a class="anchor" href="#static-inner-class-clean-up"></a>Static inner class clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that makes inner class <code>static</code> if it doesn’t use top level class members.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Make inner classes static where possible</strong> check box on the <strong>Optimization</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/static-inner-class-preferences.png" alt="static inner class preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/static-inner-class-before.png" alt="static inner class before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/static-inner-class-after.png" alt="static inner class after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-string-replace-clean-up"><a class="anchor" href="#use-string-replace-clean-up"></a>Use String.replace() clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces <code>String.replaceAll()</code> by <code>String.replace()</code> when the pattern is a plain text.</p>
</div>
<div class="paragraph">
<p>The pattern must be constant.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Use String.replace() instead of String.replaceAll() when no regex used</strong> check box on the <strong>Optimization</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/string-replace-preferences.png" alt="string replace preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/string-replace-before.png" alt="string replace before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/string-replace-after.png" alt="string replace after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="primitive-comparison-clean-up"><a class="anchor" href="#primitive-comparison-clean-up"></a>Primitive comparison clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces the <code>compareTo()</code> method by a comparison on primitive.</p>
</div>
<div class="paragraph">
<p>It improves the space and time performance. The compared value must be a primitive.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Primitive comparison</strong> check box on the <strong>Optimization</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/primitive-comparison-preferences.png" alt="primitive comparison preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/primitive-comparison-before.png" alt="primitive comparison before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/primitive-comparison-after.png" alt="primitive comparison after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="primitive-parsing-clean-up"><a class="anchor" href="#primitive-parsing-clean-up"></a>Primitive parsing clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that avoids to create primitive wrapper when parsing a string.</p>
</div>
<div class="paragraph">
<p>The object should be used as a primitive and not as a wrapper.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Primitive parsing</strong> check box on the <strong>Optimization</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/primitive-parsing-preferences.png" alt="primitive parsing preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/primitive-parsing-before.png" alt="primitive parsing before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/primitive-parsing-after.png" alt="primitive parsing after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="pull-down-common-code-from-ifelse-statement-clean-up"><a class="anchor" href="#pull-down-common-code-from-ifelse-statement-clean-up"></a>Pull down common code from if/else statement clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that extracts common code from the end of an <code>if / else if / else</code> control flow.</p>
</div>
<div class="paragraph">
<p>Ultimately it removes the empty and passive <code>if</code> conditions.</p>
</div>
<div class="paragraph">
<p>The control flow should have an <code>else</code> clause and the duplicate code should not rely on variables declared in the block.</p>
</div>
<div class="paragraph">
<p>The statement matching performs a deep analysis. All the blocks should end with the same set of statements, or the blocks with different code should fall through with a jump statement (<code>return</code>, <code>throw</code>, <code>continue</code> or <code>break</code>).</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Pull down common code from if/else statement</strong> check box on the <strong>Duplicate code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/control-flow-merge-preferences.png" alt="control flow merge preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/control-flow-merge-before.png" alt="control flow merge before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/control-flow-merge-after.png" alt="control flow merge after" />
</div>
</div>
<div class="paragraph">
<p>And for the given code where all tails of blocks are identical except one block which falls through:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/control-flow-merge-jump-statement-before.png" alt="control flow merge jump statement before" />
</div>
</div>
<div class="paragraph">
<p>The identical tails of blocks have been pulled down from the control flow and the falling through block has been left as it is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/control-flow-merge-jump-statement-after.png" alt="control flow merge jump statement after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="string-substring-clean-up"><a class="anchor" href="#string-substring-clean-up"></a>String.substring() clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that removes the second <code>substring()</code> parameter if this parameter is the length of the string. It’s the default value.</p>
</div>
<div class="paragraph">
<p>It must reference the same expression.</p>
</div>
<div class="paragraph">
<p>The expression must be passive.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Redundant String.substring() parameter</strong> check box on the <strong>Unnecessary code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/substring-preferences.png" alt="substring preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/substring-before.png" alt="substring before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/substring-after.png" alt="substring after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="unreachable-block-clean-up"><a class="anchor" href="#unreachable-block-clean-up"></a>Unreachable block clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that detects two <code>if</code> conditions that are identical and removes the second one.</p>
</div>
<div class="paragraph">
<p>The conditions should be passive.</p>
</div>
<div class="paragraph">
<p>No exceptions should be awaited.</p>
</div>
<div class="paragraph">
<p>It doesn’t create unreachable code below the <code>if</code> statement which would create a compile error. That is to say it avoids the case where only the removed block doesn’t fall through, all the other cases fall through, there are an <code>else</code> clause (not only <code>if/else</code> clauses) and a statement after the control workflow.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Unreachable block</strong> check box on the <strong>Unnecessary code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/unreachable-block-preferences.png" alt="unreachable block preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/unreachable-block-before.png" alt="unreachable block before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/unreachable-block-after.png" alt="unreachable block after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="unlooped-while-clean-up"><a class="anchor" href="#unlooped-while-clean-up"></a>Unlooped while clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces a <code>while</code> loop that always terminates during the first iteration by an if.</p>
</div>
<div class="paragraph">
<p>The loop should not contain any <code>continue</code> statement.</p>
</div>
<div class="paragraph">
<p>The loop should only contain <code>break</code> statements without statements after.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Convert loop into if when possible</strong> check box on the <strong>Unnecessary code</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/unlooped-while-preferences.png" alt="unlooped while preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/unlooped-while-before.png" alt="unlooped while before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/unlooped-while-after.png" alt="unlooped while after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="source-fixing-clean-ups"><a class="anchor" href="#source-fixing-clean-ups"></a>Source Fixing clean ups</h5>
<div class="paragraph">
<p>A new tab named <strong>Source Fixing</strong> has been added to the <strong>Clean Up</strong> preferences. It lists the clean up options that fixes the behavior of the code. The <strong>Compare with != 0 for bitwise expression</strong> clean up option from <strong>Code style</strong> tab have also been moved to this new tab.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Use it carefully. You may get an unexpected behavior. It may trigger zombie code. A zombie code is a dead code that is dead because an error occurs before. The day someone fixes the error, the zombie code comes back to life and alters the behavior. Although most of the cleanups need review, those ones need testing.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/source-fixing-preferences.png" alt="source fixing preferences" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="object-equals-on-non-null-clean-up"><a class="anchor" href="#object-equals-on-non-null-clean-up"></a>Object.equals() on non null clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that inverts calls to <code>Object.equals(Object)</code> and <code>String.equalsIgnoreCase(String)</code> to avoid useless null pointer exception.</p>
</div>
<div class="paragraph">
<p>The caller must be nullable.</p>
</div>
<div class="paragraph">
<p>The parameter must not be nullable.</p>
</div>
<div class="paragraph">
<p>Beware! By avoiding null pointer exceptions, the behavior may change!</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Avoid Object.equals() or String.equalsIgnoreCase() on null objects</strong> check box on the <strong>Source Fixing</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/invert-equals-preferences.png" alt="invert equals preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/invert-equals-before.png" alt="invert equals before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/invert-equals-after.png" alt="invert equals after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="comparison-to-zero-clean-up"><a class="anchor" href="#comparison-to-zero-clean-up"></a>Comparison to zero clean up</h5>
<div class="paragraph">
<p>A new clean up has been added that fixes <code>Comparable.compareTo()</code> usage.</p>
</div>
<div class="paragraph">
<p>The code is not supposed to predict the <code>1</code> and <code>-1</code> values; it is supposed to get zero or a value lesser or greater than zero.</p>
</div>
<div class="paragraph">
<p>Beware! The behavior may change if you implement a custom comparator!</p>
</div>
<div class="paragraph">
<p>To apply the clean up, select <strong>Compare to zero</strong> check box on the <strong>Source Fixing</strong> tab in your clean up profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/comparison-zero-preferences.png" alt="comparison zero preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/comparison-zero-before.png" alt="comparison zero before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/comparison-zero-after.png" alt="comparison zero after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="completion-overwrites-in-java-editor"><a class="anchor" href="#completion-overwrites-in-java-editor"></a>Completion overwrites in Java editor</h5>
<div class="paragraph">
<p>The <strong>Java Editor</strong> now uses Completion overwrites as the default. If Completion overwrites is on, the completion text replaces the characters following the caret position until the end of the word. If Completion inserts is on, the completion text is inserted at the caret position, so it never overwrites any existing text. Note that pressing Ctrl when applying a completion proposal toggles between the two insertion modes.</p>
</div>
<div class="paragraph">
<p>You can change the default in the <strong>Java > Editor > Content Assist</strong> preference page.</p>
</div>
</div>
<div class="sect4">
<h5 id="insert-best-guessed-parameters-in-java-editor"><a class="anchor" href="#insert-best-guessed-parameters-in-java-editor"></a>Insert best guessed parameters in Java editor</h5>
<div class="paragraph">
<p>Instead of simply inserting the method parameter names as placeholders, when a method is completed, the <strong>Java Editor</strong> now inserts the best guessed parameters by default.</p>
</div>
<div class="paragraph">
<p>You can change the default in the <strong>Java > Editor > Content Assist</strong> preference page.</p>
</div>
</div>
<div class="sect4">
<h5 id="quick-assist-to-create-new-implementation"><a class="anchor" href="#quick-assist-to-create-new-implementation"></a>Quick assist to create new implementation</h5>
<div class="paragraph">
<p>Invoking the <strong>Quick Assist</strong> (<strong>Ctrl+1</strong>) to create new implementation on an interface or abstract class declaration launches the <strong>New Java Class</strong> wizard:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/quick_assist_interface.png" alt="quick assist interface" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="quick-fixes-on-permitted-types"><a class="anchor" href="#quick-fixes-on-permitted-types"></a>Quick fixes on permitted types</h5>
<div class="paragraph">
<p>You can add <code>sealed</code>, <code>non-sealed</code>, or <code>final</code> modifiers on permitted type declarations, as applicable, using the new <strong>Quick Fixes</strong> (<strong>Ctrl+1</strong>).</p>
</div>
<div class="paragraph">
<p>On a permitted class declaration:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/permitted_class.png" alt="permitted class" />
</div>
</div>
<div class="paragraph">
<p>On a permitted interface declaration:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/permitted_interface.png" alt="permitted interface" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="convert-to-switch-expression"><a class="anchor" href="#convert-to-switch-expression"></a>Convert to switch expression</h5>
<div class="paragraph">
<p>A new quick assist and clean up has been added that converts switch statements to switch expressions (Java 14 or higher) where possible.</p>
</div>
<div class="paragraph">
<p>Switch statements that use control statements such as nested switch statements, if/else blocks, for/while loops are not considered as is the case for return/continue statements. All cases of the switch statement must either have a last assignment statement that sets the same variable/field as other cases, or else has a <code>throw</code> statement. Fall-through is allowed between cases but only if there are no other statements in between. The switch statement must have a <code>default</code> case unless the switch expression is an enum type and all possible enum values are represented in the cases.</p>
</div>
<div class="paragraph">
<p>To apply the quick assist, press <strong>Ctrl+1</strong> on the target switch statement and select <strong>Convert to switch expression</strong>, if offered.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Convert to switch expression</strong> check box on the <strong>Code Style</strong> tab (or the <strong>Java Feature</strong> tab starting from Eclipse 2021-03).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/switch-expressions-preferences.png" alt="switch expressions preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/switch-expressions-before.png" alt="switch expressions before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/switch-expressions-after.png" alt="switch expressions after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="uses-the-else-if-pseudo-keyword"><a class="anchor" href="#uses-the-else-if-pseudo-keyword"></a>Uses the else-if pseudo keyword</h5>
<div class="paragraph">
<p>A new clean up has been added that combines nested <code>if</code> statement in <code>else</code> block to <code>else if</code>.</p>
</div>
<div class="paragraph">
<p>Beware for any comments after the <code>else</code> keyword. It will be lost.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Combine nested 'if' statement in 'else' block to 'else if'</strong> check box on the <strong>Code Style</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/else-if-before.png" alt="else if before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/else-if-after.png" alt="else if after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="bitwise-expressions-in-comparisons"><a class="anchor" href="#bitwise-expressions-in-comparisons"></a>Bitwise expressions in comparisons</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces the <code>></code> operator with <code>!=</code> when the comparison expression has a bitwise expression operand and a <code>0</code> operand.</p>
</div>
<div class="paragraph">
<p>This resolves an anti-pattern for such kind of comparisons, which can also be a bug when the bitwise expression is involving a negative constant value. This code smell is further described by the FindBugs project as bug description "BIT: Check for sign of bitwise operation".</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog select <strong>Compare with != 0 for bitwise expression</strong> on the <strong>Code Style</strong> tab (or the <strong>Source fixing</strong> tab starting from Eclipse 2021-03).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/bitwise-expressions-preferences.png" alt="bitwise expressions preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/bitwise-expressions-before.png" alt="bitwise expressions before" />
</div>
</div>
<div class="paragraph">
<p>You get this after the clean up:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/bitwise-expressions-after.png" alt="bitwise expressions after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="pull-up-assignment"><a class="anchor" href="#pull-up-assignment"></a>Pull up assignment</h5>
<div class="paragraph">
<p>A new clean up has been added that moves assignments inside an <code>if</code> condition above the <code>if</code> node.</p>
</div>
<div class="paragraph">
<p>It improves the readability of the code.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Pull up assignment</strong> check box on the <strong>Code Style</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/pull-up-assignment-before.png" alt="pull up assignment before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/pull-up-assignment-after.png" alt="pull up assignment after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-switch"><a class="anchor" href="#use-switch"></a>Use switch</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces <code>if/else if/else</code> blocks to use <code>switch</code> when possible.</p>
</div>
<div class="paragraph">
<p>It converts to <code>switch</code> when there are more than two cases.</p>
</div>
<div class="paragraph">
<p>It does not convert if the discriminant can be <code>null</code>, that is to say only primitive.</p>
</div>
<div class="paragraph">
<p>It does a variable conflict analyze.</p>
</div>
<div class="paragraph">
<p>The case value can be literals or constants.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Convert if/else if/else chain to switch</strong> check box on the <strong>Code Style</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/use-switch-before.png" alt="use switch before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/use-switch-after.png" alt="use switch after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="add-elements-in-collections-without-loop"><a class="anchor" href="#add-elements-in-collections-without-loop"></a>Add elements in collections without loop</h5>
<div class="paragraph">
<p>A new clean up has been added that uses <code>Collection.addAll()</code> or <code>Collections.addAll()</code> instead of a <code>for</code> loop.</p>
</div>
<div class="paragraph">
<p>It refactors <code>for</code> loops with index, <code>for</code> loops with iterator and <code>foreach</code> loops.</p>
</div>
<div class="paragraph">
<p>If the source is an array, the list is raw, and the Java version is 1.5 or higher, we use <code>Arrays.asList()</code> to handle the erasure type. It doesn’t decrease the performance.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Add elements in collections without loop</strong> check box on the <strong>Code Style</strong> tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/add-remove-preferences.png" alt="add remove preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/add-remove-before.png" alt="add remove before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/add-remove-after.png" alt="add remove after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-ternary-operator"><a class="anchor" href="#use-ternary-operator"></a>Use ternary operator</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces <code>(X && Y) || (!X && Z)</code> by <code>X ? Y : Z</code>.</p>
</div>
<div class="paragraph">
<p>The operands must be passive and boolean.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Replace (X && Y) || (!X && Z) by X ? Y : Z</strong> check box on the <strong>Duplicate Code</strong> tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/ternary-operator-preferences.png" alt="ternary operator preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/ternary-operator-before.png" alt="ternary operator before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/ternary-operator-after.png" alt="ternary operator after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-or-on-booleans"><a class="anchor" href="#use-or-on-booleans"></a>Use '==' or '^' on booleans</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces <code>(X && !Y) || (!X && Y)</code> by <code>X ^ Y</code> and replaces <code>(X && Y) || (!X && !Y)</code> by <code>X == Y</code>.</p>
</div>
<div class="paragraph">
<p>It only works on boolean.</p>
</div>
<div class="paragraph">
<p>It works with lazy or eager operators.</p>
</div>
<div class="paragraph">
<p>The operands must be passive.</p>
</div>
<div class="paragraph">
<p>It does not matter an operand is on the left or right.</p>
</div>
<div class="paragraph">
<p>It does a deep negation expression analyze.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Use '==' or '^' on booleans</strong> check box on the <strong>Duplicate Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/xor-before.png" alt="xor before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/xor-after.png" alt="xor after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="redundant-falling-through-blocks"><a class="anchor" href="#redundant-falling-through-blocks"></a>Redundant falling through blocks</h5>
<div class="paragraph">
<p>A new clean up has been added that detects a list of statements that ends with a jump statement (<code>return</code>, <code>break</code>, <code>continue</code> or <code>throw</code>), and has the same list of statements below that.</p>
</div>
<div class="paragraph">
<p>It detects similar statements. It also checks that the declarations of the variables in the statements are the same. It looks for redundant statements in <code>if</code>, <code>else</code>, <code>catch</code> and <code>finally</code> but not in loops.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Remove redundant end of block with jump statement</strong> check box on the <strong>Duplicate Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-falling-blocks-before.png" alt="redundant falling blocks before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-falling-blocks-after.png" alt="redundant falling blocks after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="redundant-if-condition"><a class="anchor" href="#redundant-if-condition"></a>Redundant if condition</h5>
<div class="paragraph">
<p>A new clean up has been added that removes a condition on an <code>else</code> that is negative to the condition of the previous <code>if</code>.</p>
</div>
<div class="paragraph">
<p>The condition must be passive. The removed code should not throw an expected exception. The cleanup uses a deep condition comparison algorithm.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Redundant if condition</strong> check box on the <strong>Duplicate Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/if-condition-before.png" alt="if condition before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/if-condition-after.png" alt="if condition after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-objects-hash"><a class="anchor" href="#use-objects-hash"></a>Use Objects.hash()</h5>
<div class="paragraph">
<p>A new clean up has been added that rewrites Eclipse-autogenerated <code>hashCode()</code> method by Eclipse-autogenerated <code>hashCode()</code> method for Java 7 using <code>Objects.hash()</code>.</p>
</div>
<div class="paragraph">
<p>Let’s remind that you can autogenerate your <code>hashCode()</code> and <code>equals()</code> methods by right-clicking on your class, selecting <strong>Source</strong> and clicking on <strong>Generate hashCode() and equals() methods….</strong> Since Eclipse 2018-09, a checkbox allows you to generate your methods using Java 7 API. This cleanup rewrites your method as if it has been generated using this option.</p>
</div>
<div class="paragraph">
<p>This clean up does not generate again your method from scratch, it rewrites it using a more modern syntax. That is to say, if your method is missing or voluntary does not process a field, this field still won’t be processed.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Use Objects.hash()</strong> check box on the <strong>Unnecessary Code</strong> tab (or the <strong>Java Feature</strong> tab starting from Eclipse 2021-03).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/hash-preferences.png" alt="hash preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/hash-before.png" alt="hash before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/hash-after.png" alt="hash after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-string-join"><a class="anchor" href="#use-string-join"></a>Use String.join()</h5>
<div class="paragraph">
<p>A new clean up has been added that uses <code>String.join()</code> when possible.</p>
</div>
<div class="paragraph">
<p>It detects all types of for loops. The delimiter can be added before or after. The condition can be a boolean or an index comparison.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Use String.join()</strong> check box on the <strong>Unnecessary Code</strong> tab (or the Java Feature tab starting from Eclipse 2021-03).</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/string-join-before.png" alt="string join before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/string-join-after.png" alt="string join after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-arrays-fill"><a class="anchor" href="#use-arrays-fill"></a>Use Arrays.fill()</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces for loops to use <code>Arrays.fill()</code> where possible.</p>
</div>
<div class="paragraph">
<p>The value must be hard-coded.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Use Arrays.fill()</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/arrays-fill-before.png" alt="arrays fill before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/arrays-fill-after.png" alt="arrays fill after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="evaluate-without-null-check"><a class="anchor" href="#evaluate-without-null-check"></a>Evaluate without null check</h5>
<div class="paragraph">
<p>A new clean up has been added that removes redundant null checks.</p>
</div>
<div class="paragraph">
<p>It removes null check on value before <code>equals()</code> or <code>equalsIgnoreCase()</code> method and before <code>instanceof</code> expression.</p>
</div>
<div class="paragraph">
<p>It only removes redundant passive expressions.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Evaluate without null check</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-null-check-before.png" alt="redundant null check before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-null-check-after.png" alt="redundant null check after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="avoid-double-negation"><a class="anchor" href="#avoid-double-negation"></a>Avoid double negation</h5>
<div class="paragraph">
<p>A new clean up has been added that reduces double negation in <code>boolean</code> expression.</p>
</div>
<div class="paragraph">
<p>It removes negations on both operands in an equality/difference operation.</p>
</div>
<div class="paragraph">
<p>It prefers equality/difference operation rather than negated operand.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Double negation</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/double-negation-before.png" alt="double negation before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/double-negation-after.png" alt="double negation after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="redundant-comparison-statement"><a class="anchor" href="#redundant-comparison-statement"></a>Redundant comparison statement</h5>
<div class="paragraph">
<p>Removes useless bad value checks before assignments or <code>return</code> statements. Such useless bad value checks are comparing an expression against bad value, then either assigning bad value or the expression depending on the result of the bad value check. It is simpler to directly assign the expression.</p>
</div>
<div class="paragraph">
<p>The expression should be passive.</p>
</div>
<div class="paragraph">
<p>The excluded value should be hard coded.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Remove redundant comparison statement</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-comparison-statement-before.png" alt="redundant comparison statement before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-comparison-statement-after.png" alt="redundant comparison statement after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="unnecessary-super-call"><a class="anchor" href="#unnecessary-super-call"></a>Unnecessary super() call</h5>
<div class="paragraph">
<p>A new clean up has been added that removes call to <code>super</code> constructor with empty arguments.</p>
</div>
<div class="paragraph">
<p>Such a call is redundant. See JLS section 12.5 for more info.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Remove redundant super() call in constructor</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-super-before.png" alt="redundant super before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-super-after.png" alt="redundant super after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="initialize-collection-at-creation"><a class="anchor" href="#initialize-collection-at-creation"></a>Initialize collection at creation</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces the creation of a new <code>Collection</code>, then invoking <code>Collection.addAll()</code> on it, by the creation of the new <code>Collection</code> with the other <code>Collection</code> as parameter.</p>
</div>
<div class="paragraph">
<p>Only well known collection classes are refactored to avoid behavior changes. The cleanup is enabled only if there is no useful instantiation parameters.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Initialize collection at creation</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/collection-cloning-before.png" alt="collection cloning before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/collection-cloning-after.png" alt="collection cloning after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="initialize-map-at-creation"><a class="anchor" href="#initialize-map-at-creation"></a>Initialize map at creation</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces creating a new <code>Map</code>, then invoking <code>Map.putAll()</code> on it, by creating the new <code>Map</code> with the other <code>Map</code> as parameter.</p>
</div>
<div class="paragraph">
<p>Only well known map classes are refactored to avoid behavior changes. The cleanup is enabled only if there is no useful instantiation parameters.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Initialize map at creation</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/map-cloning-before.png" alt="map cloning before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/map-cloning-after.png" alt="map cloning after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="remove-overridden-assignment"><a class="anchor" href="#remove-overridden-assignment"></a>Remove overridden assignment</h5>
<div class="paragraph">
<p>A new clean up has been added that removes passive assignment when the variable is reassigned before being read.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Remove overridden assignment</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/overridden-assignment-before.png" alt="overridden assignment before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/overridden-assignment-after.png" alt="overridden assignment after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="raise-embedded-if-into-parent-if"><a class="anchor" href="#raise-embedded-if-into-parent-if"></a>Raise embedded if into parent if</h5>
<div class="paragraph">
<p>A new clean up has been added that merges inner <code>if</code> statement into the parent <code>if</code> statement.</p>
</div>
<div class="paragraph">
<p>The cleanup checks that there is no <code>else</code> statement.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Raise embedded if into parent if</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/embedded-if-before.png" alt="embedded if before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/embedded-if-after.png" alt="embedded if after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="redundant-return"><a class="anchor" href="#redundant-return"></a>Redundant return</h5>
<div class="paragraph">
<p>A new clean up has been added that removes useless lone <code>return</code> at the end of a method or lambda.</p>
</div>
<div class="paragraph">
<p>The cleanup checks that there is no value on the <code>return</code> statement.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Remove useless return</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-return-before.png" alt="redundant return before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-return-after.png" alt="redundant return after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="redundant-continue"><a class="anchor" href="#redundant-continue"></a>Redundant continue</h5>
<div class="paragraph">
<p>A new clean up has been added that removes useless lone <code>continue</code> at the end of a loop.</p>
</div>
<div class="paragraph">
<p>A <code>continue</code> statement at the end of a loop is removed. A <code>continue</code> statement at the end of a control statement is removed if the control statement is at the end of a loop. A <code>continue</code> statement is kept if it has a label.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Remove useless continue</strong> check box on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-continue-before.png" alt="redundant continue before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/redundant-continue-after.png" alt="redundant continue after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-try-with-resource"><a class="anchor" href="#use-try-with-resource"></a>Use try-with-resource</h5>
<div class="paragraph">
<p>A new clean up has been added that changes code to make use of Java 7 try-with-resources feature. In particular, it removes now useless <code>finally</code> clauses.</p>
</div>
<div class="paragraph">
<p>It may move an inner closeable assignment as a resource. It handles <code>finally</code> with a simple <code>close()</code> invocation, a null-check and remaining statements below.</p>
</div>
<div class="paragraph">
<p>It is only enabled from Java 7 and it also handles the Java 9 syntax.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Use try-with-resource</strong> check box on the <strong>Unnecessary Code</strong> tab (or the <strong>Java Feature</strong> tab starting from Eclipse 2021-03).</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/try-with-resource-before.png" alt="try with resource before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/try-with-resource-after.png" alt="try with resource after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="exit-loop-earlier"><a class="anchor" href="#exit-loop-earlier"></a>Exit loop earlier</h5>
<div class="paragraph">
<p>A new clean up has been added that adds a <code>break</code> to avoid passive <code>for</code> loop iterations.</p>
</div>
<div class="paragraph">
<p>The inner assignments must not do other different assignments after (assign other values or assign into other variables).</p>
</div>
<div class="paragraph">
<p>There must be no side effects after the first assignments.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Exit loop earlier</strong> check box on the <strong>Optimization</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/break-loop-before.png" alt="break loop before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/break-loop-after.png" alt="break loop after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="use-stringbuilder"><a class="anchor" href="#use-stringbuilder"></a>Use StringBuilder</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces <code>String</code> concatenation by <code>StringBuilder</code> when possible.</p>
</div>
<div class="paragraph">
<p>It uses StringBuffer for Java 1.4-.</p>
</div>
<div class="paragraph">
<p>It only replaces strings on several statements and the concatenation should have more than two pieces.</p>
</div>
<div class="paragraph">
<p>The variable should be only concatenated and it should retrieve the string once.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Replace String concatenation by StringBuilder</strong> check box on the <strong>Optimization</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/stringbuilder-before.png" alt="stringbuilder before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/stringbuilder-after.png" alt="stringbuilder after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="primitive-serialization"><a class="anchor" href="#primitive-serialization"></a>Primitive serialization</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces a primitive boxing to serialize by a call to the static <code>toString()</code> method.</p>
</div>
<div class="paragraph">
<p>It works for all the primitive types: <code>boolean</code>, <code>char</code>, <code>byte</code>, <code>short</code>, <code>int</code>, <code>long</code>, <code>float</code> and <code>double</code>.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Primitive serialization</strong> check box on the <strong>Optimization</strong> tab.</p>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/primitive-serialization-before.png" alt="primitive serialization before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/primitive-serialization-after.png" alt="primitive serialization after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="prefer-boolean-literal"><a class="anchor" href="#prefer-boolean-literal"></a>Prefer boolean literal</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces <code>Boolean.TRUE</code>/<code>Boolean.FALSE</code> by <code>true</code>/<code>false</code> when used as primitive.</p>
</div>
<div class="paragraph">
<p>To apply the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog, select <strong>Prefer boolean literals</strong> check box on the <strong>Optimization</strong> tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/boolean-literal-preferences.png" alt="boolean literal preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/boolean-literal-before.png" alt="boolean literal before" />
</div>
</div>
<div class="paragraph">
<p>One gets:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/boolean-literal-after.png" alt="boolean literal after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="diamond-operator-remove-redundant-type-arguments"><a class="anchor" href="#diamond-operator-remove-redundant-type-arguments"></a>Diamond operator <> (Remove redundant type arguments)</h5>
<div class="paragraph">
<p>The clean up <strong>Remove redundant type arguments</strong> has been renamed <strong>Use diamond operator</strong> and is still available in the <strong>Unnecessary Code</strong> tab in Eclipse 2020-12.</p>
</div>
<div class="paragraph">
<p>The clean up will be moved to the future <strong>Java Feature</strong> tab in Eclipse 2021-03.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-views-and-dialogs"><a class="anchor" href="#java-views-and-dialogs"></a>Java Views and Dialogs</h4>
<div class="sect4">
<h5 id="parallel-index-search"><a class="anchor" href="#parallel-index-search"></a>Parallel index search</h5>
<div class="paragraph">
<p>A new preference option has been added and enabled by default: <strong>Preferences > Java > Enable parallel index search</strong>. Depending on the available hardware, this option should improve performance for all index based Java search operations, but could also lead to possible regressions. To switch back to the old sequential index search, turn this option off:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/parallel-index-search.png" alt="parallel index search" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="coloring-restricted-identifiers"><a class="anchor" href="#coloring-restricted-identifiers"></a>Coloring restricted identifiers</h5>
<div class="paragraph">
<p>A new option named <strong>Restricted identifiers</strong> has been added under Java category in <strong>Java > Editor > Syntax Coloring</strong> preferences.</p>
</div>
<div class="paragraph">
<p>Some identifiers (e.g. var, yield, record etc.) are restricted identifiers because they are not allowed in some contexts. Semantic highlighting options for such identifiers can be controlled by the element <strong>Restricted identifiers</strong> under <strong>Java</strong> category in <strong>Java > Editor > Syntax Coloring</strong> preference page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/restricted-identifier-preference.png" alt="restricted identifier preference" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="externally-annotate-sources"><a class="anchor" href="#externally-annotate-sources"></a>Externally annotate sources</h5>
<div class="paragraph">
<p>The concept of external null annotations has been extended to apply to source folders, too.</p>
</div>
<div class="paragraph">
<p>External annotations were introduced in Eclipse 4.5 in order to overlay not-editable library classes with null annotations to specify the null contract against which library calls should be analysed. You can now apply the same concept for another kind of classes that should not be edited: generated source code.</p>
</div>
<div class="paragraph">
<p>In the <strong>Java Build Path</strong> dialog, also source folders now have a node <strong>External annotations</strong> where a path to Eclipse External Annotation files (.eea) can be configured.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/annotate-sources-config.png" alt="annotate sources config" />
</div>
</div>
<div class="paragraph">
<p>Given a project that is configured for annotation based null analysis, and given a Java class inside a source folder configured for external annotations, the editor now offers a quick assist (<strong>Ctrl+1</strong>) for annotating individual type references in the signatures of methods and fields.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/annotate-sources-assist.png" alt="annotate sources assist" />
</div>
</div>
<div class="paragraph">
<p>The selected option will record that the return type should be interpreted as <code>@NonNull List<Attribute></code> (the popup to the right showing the internal format how this annotation will be stored in an .eea file). With this annotation in place, the annotated signature will be shown in hovers and will be used for null analysis:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/annotate-sources-effect.png" alt="annotate sources effect" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="static-import-org-mockito-mockito-available-as-favorite"><a class="anchor" href="#static-import-org-mockito-mockito-available-as-favorite"></a>static import org.mockito.Mockito.* available as favorite</h5>
<div class="paragraph">
<p>Imports for static <code>org.mockito.Mockito.<strong></strong> are added to the Java favorites in the preferences under *Java > Editor > Content Assists > Favorites</code>. This way the organize imports action in the IDE will automatically add static imports to this class when you use the Mockito library in your tests.</p>
</div>
</div>
<div class="sect4">
<h5 id="fine-grained-search-for-permitted-types"><a class="anchor" href="#fine-grained-search-for-permitted-types"></a>Fine-grained search for permitted types</h5>
<div class="paragraph">
<p>You can perform a fine-grained search for permitted type declarations in the <strong>Search dialog (Ctrl+H) > Java Search > Limit To > Match Locations</strong> with the new option:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/search_permitted_type.png" alt="search permitted type" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="sort-library-entries-alphabetically-in-package-explorer-enabled-by-default"><a class="anchor" href="#sort-library-entries-alphabetically-in-package-explorer-enabled-by-default"></a>Sort library entries alphabetically in Package Explorer enabled by default</h5>
<div class="paragraph">
<p>The <strong>Preferences > Java > Appearance > [x] Sort library entries alphabetically in Package Explorer</strong> is now enabled by default. This makes it easier for you to see if a library is available or not.</p>
</div>
<div class="paragraph">
<p>If you want to see the order in which the libraries are added to the classpath, e.g. to understand classpath loading issues, you can disable the preference.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug-2"><a class="anchor" href="#debug-2"></a>Debug</h4>
<div class="sect4">
<h5 id="toggle-tracepoints-in-editor-ruler"><a class="anchor" href="#toggle-tracepoints-in-editor-ruler"></a>Toggle tracepoints in editor ruler</h5>
<div class="paragraph">
<p>A new <strong>Toggle Tracepoint</strong> context-menu entry has been added to the <strong>Java Editor</strong> line ruler. Both the <strong>Toggle Tracepoint</strong> options i.e. the new context-menu entry and the existing option under <strong>Run</strong> menu have a new icon and are now available for Java class files also along with Java source files.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/toggle-tracepoints.png" alt="toggle tracepoints" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="toggle-breakpoint-on-a-list-of-methods-including-abstract-method"><a class="anchor" href="#toggle-breakpoint-on-a-list-of-methods-including-abstract-method"></a>Toggle breakpoint on a list of methods including abstract method</h5>
<div class="paragraph">
<p>You can now <strong>Toggle Method Breakpoint</strong> on a list of methods which includes an abstract method.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.19/images/debug-toggle-breakpoint.png" alt="debug toggle breakpoint" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="support-for-argfiles-when-launching"><a class="anchor" href="#support-for-argfiles-when-launching"></a>Support for @argfiles when launching</h5>
<div class="paragraph">
<p>A new check box was added to the <strong>Arguments</strong> tab for Java based launch configurations (Java Application, JUnit, and others) for writing arguments into an @argfile. This is disabled below Java 9 and can be enabled for Java programs launched with Java 9 and above.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/launch-with-argfile.png" alt="launch with argfile" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="stabilized-logical-structures-in-variables-view-with-active-gc"><a class="anchor" href="#stabilized-logical-structures-in-variables-view-with-active-gc"></a>Stabilized logical structures in Variables view with active GC</h5>
<div class="paragraph">
<p>The <strong>Debug</strong> view no longer breaks when logical structures are shown while the application’s garbage collector is active (<code>com.sun.jdi.ObjectCollectedException</code> occurred while retrieving value).</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-formatter"><a class="anchor" href="#java-formatter"></a>Java Formatter</h4>
<div class="sect4">
<h5 id="annotations-wrapping"><a class="anchor" href="#annotations-wrapping"></a>Annotations wrapping</h5>
<div class="paragraph">
<p>The formatter now allows more control over <strong>how multiple annotations on a single element should be divided into lines</strong>. Previously, they could either all be placed in a single line along with the annotated element, or each in a separate line. The settings that controlled this behavior (in the <strong>New Lines > After annotations</strong> section) now only control a line break between the last annotation and the annotated element. Line breaks between annotations are controlled by a new group of settings in the <strong>Line Wrapping > Wrapping Settings > Annotations</strong> section.</p>
</div>
<div class="paragraph">
<p>Just like with standard wrapping settings, they can be set to keep everything in a single line (<strong>Do not wrap</strong>), each annotation in a separate line (<strong>Wrap all elements</strong>), or only break lines that exceed the width limit (<strong>Wrap where necessary</strong>). The last option along with the <strong>Never join already wrapped lines</strong> setting effectively means manual control over each case. The annotation wrapping settings differ from other wrapping settings in that the indentation control is not available.</p>
</div>
<div class="paragraph">
<p>The formatter configuration sections can be found in the <strong>Profile Editor (Preferences > Java > Code Style > Formatter > Edit…</strong>).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.18/images/formatter-wrap-annotations.png" alt="formatter wrap annotations" />
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.17.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.19.0 and Red Hat CodeReady Studio 12.19 out we are already working on the next release.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.19.0.am1.htmlJBoss Tools 4.19.0.AM1 for Eclipse 2021-032021-03-26T14:26:10+00:002021-03-24T00:00:00+00:00jeffmaury
Happy to announce 4.19.0.AM1 (Developer Milestone 1) build for Eclipse 2021-03.
Downloads available at JBoss Tools 4.19.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
OpenShift
Browser based login to an OpenShift cluster
When it comes to login to a cluster, OpenShift Tools supported two different authentication mechanisms:
user/password
token
The drawback is that it does not cover clusters where a more enhanced and modern authentication infrastructure is in place. So it is now possible to login to the cluster through an embedded web browser.
In order to use it, go to the Login context menu from the Application Explorer view:
Click on the Retrieve...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.19.0.AM1 (Developer Milestone 1) build for Eclipse 2021-03.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2021-03/4.19.0.AM1.html">JBoss Tools 4.19.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.19.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="browser-based-login-to-an-openshift-cluster"><a class="anchor" href="#browser-based-login-to-an-openshift-cluster"></a>Browser based login to an OpenShift cluster</h4>
<div class="paragraph">
<p>When it comes to login to a cluster, OpenShift Tools supported two different authentication mechanisms:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>user/password</p>
</li>
<li>
<p>token</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The drawback is that it does not cover clusters where a more enhanced and modern authentication infrastructure is in place. So it is now possible to login to the cluster through an embedded web browser.</p>
</div>
<div class="paragraph">
<p>In order to use it, go to the Login context menu from the Application Explorer view:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/weblogin1.png" alt="weblogin1" width="600" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code>Retrieve token</code> button and an embedded web browser will be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/weblogin2.png" alt="weblogin2" width="600" />
</div>
</div>
<div class="paragraph">
<p>Complete the workflow until you see a page that contains <code>Display Token</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/weblogin3.png" alt="weblogin3" width="600" />
</div>
</div>
<div class="paragraph">
<p>Click on <code>Display Token</code>:</p>
</div>
<div class="paragraph">
<p>The web browser is automatically closed and you’ll notice that the retrieved token has been set in the original dialog:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/weblogin4.png" alt="weblogin4" width="600" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="devfile-registries-management"><a class="anchor" href="#devfile-registries-management"></a>Devfile registries management</h4>
<div class="paragraph">
<p>Since JBoss Tools 4.18.0.Final, the preferred way of developing components is now based on devfile, which is a YAML file that describe how to build the component and if required, launch other containers with other containers.
When you create a component, you need to specify a devfile that describe your component. So either you component source contains its own devfile or you need to pick a devfile that is related to your component.
In the second case, OpenShift Tools supports devfile registries that contains a set of different devfiles. There is a default registry (<a href="https://github.com/odo-devfiles/registry" class="bare">https://github.com/odo-devfiles/registry</a>) but you may want to have your own registries. It is now possible to add and remove registries as you want.</p>
</div>
<div class="paragraph">
<p>The registries are displayed in the OpenShift Application Explorer under the <code>Devfile registries</code> node:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/registries1.png" alt="registries1" width="600" />
</div>
</div>
<div class="paragraph">
<p>Please note that expanding the registry node will list all devfiles from that registry with a description:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/registries2.png" alt="registries2" width="600" />
</div>
</div>
<div class="paragraph">
<p>A context menu on the <code>Devfile registries</code> node allows you to add new registries, and on the registry node to delete it.</p>
</div>
</div>
<div class="sect3">
<h4 id="devfile-enhanced-editing-experience"><a class="anchor" href="#devfile-enhanced-editing-experience"></a>Devfile enhanced editing experience</h4>
<div class="paragraph">
<p>Although devfile registries can provide ready-to-use devfiles, there may be some advanced cases where users need to write their own devfile. As the syntax is quite complex, the YAML editor has been completed so that to provide:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>syntax validation</p>
</li>
<li>
<p>content assist</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="support-for-python-based-components"><a class="anchor" href="#support-for-python-based-components"></a>Support for Python based components</h4>
<div class="paragraph">
<p>Python-based components were supported but debugging was not possible. This release brings integration between the Eclipse debugger and the Python runtime.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.29.Final and Hibernate Tools version 5.4.29a.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-23-server-adapter"><a class="anchor" href="#wildfly-23-server-adapter"></a>Wildfly 23 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 23.</p>
</div>
</div>
<div class="sect3">
<h4 id="eap-7-4-beta-server-adapter"><a class="anchor" href="#eap-7-4-beta-server-adapter"></a>EAP 7.4 Beta Server Adapter</h4>
<div class="paragraph">
<p>The server adapter has been adapted to work with EAP 7.4 Beta.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.18.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2020-092021-01-26T08:23:40+00:002021-01-26T00:00:00+00:00jeffmaury
JBoss Tools 4.18.0 and
Red Hat CodeReady Studio 12.18
for Eclipse 2020-09 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.17 (2020-09) but we recommend
using the latest Eclipse 4.17 2020-09 JEE Bundle
since then you get most of the dependencies preinstalled.
Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2020-09/4.18.0.Final.html">JBoss Tools 4.18.0</a> and
<a href="https://tools.jboss.org/downloads/devstudio/2020-09/12.18.0.GA.html">Red Hat CodeReady Studio 12.18</a>
for Eclipse 2020-09 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.17 (2020-09) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2020-09/r/eclipse-ide-enterprise-java-developers">Eclipse 4.17 2020-09 JEE Bundle</a>
since then you get most of the dependencies preinstalled.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So make sure to select a Java11 JDK in the installer.
You can still work with pre-Java11 JDK/JRE and projects in the tool.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was an improved tooling for the Quarkus framework, improvements for container based development and bug fixing.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="devfile-based-deployments"><a class="anchor" href="#devfile-based-deployments"></a>Devfile based deployments</h4>
<div class="paragraph">
<p>The Application Explorer view is now based on odo 2.x, which allows deployments
to be based on devfile (developer oriented manifest file). The components from
the default odo registry are listed with legacy S2I components:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devfile.png" alt="devfile" width="600" />
</div>
</div>
<div class="paragraph">
<p>It is also now possible to bootstrap from an empty project as the components
from the registry may expose starter projects (sample code that will initialize
your empty project).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devfile1.png" alt="devfile1" width="600" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quarkus"><a class="anchor" href="#quarkus"></a>Quarkus</h3>
<div class="sect3">
<h4 id="support-for-codestarts-in-new-quarkus-project-wizard"><a class="anchor" href="#support-for-codestarts-in-new-quarkus-project-wizard"></a>Support for codestarts in New Quarkus project wizard</h4>
<div class="paragraph">
<p>code.quarkus.io has added a new option codestart that allows extension that support
this new feature to contribute sample code in the generated project. It is enabled
by default and is accessible from the second step in the wizard:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus30.png" alt="quarkus30" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-22-server-adapter"><a class="anchor" href="#wildfly-22-server-adapter"></a>Wildfly 22 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 22.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.27.Final and Hibernate Tools version 5.4.27.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.20.Final and Hibernate Tools version 5.3.20.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.17.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.18.0 and Red Hat CodeReady Studio 12.18 out we are already working on the next release.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.18.0.am1.htmlJBoss Tools 4.18.0.AM1 for Eclipse 2020-092020-12-23T22:10:46+00:002020-12-22T00:00:00+00:00jeffmaury
Happy to announce 4.18.0.AM1 (Developer Milestone 1) build for Eclipse 2020-09.
Downloads available at JBoss Tools 4.18.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
Quarkus
Support for codestarts in New Quarkus project wizard
code.quarkus.io has added a new option codestart that allows extension that support
this new feature to contribute sample code in the generated project. It is enabled
by default and is accessible from the second step in the wizard:
OpenShift
Devfile based deployments
The Application Explorer view is now based on odo 2.x, which allows deployments
to be based on devfile (developer oriented manifest file). The components from
the default odo registry are listed...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.18.0.AM1 (Developer Milestone 1) build for Eclipse 2020-09.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2020-09/4.18.0.AM1.html">JBoss Tools 4.18.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.18.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="quarkus"><a class="anchor" href="#quarkus"></a>Quarkus</h3>
<div class="sect3">
<h4 id="support-for-codestarts-in-new-quarkus-project-wizard"><a class="anchor" href="#support-for-codestarts-in-new-quarkus-project-wizard"></a>Support for codestarts in New Quarkus project wizard</h4>
<div class="paragraph">
<p>code.quarkus.io has added a new option codestart that allows extension that support
this new feature to contribute sample code in the generated project. It is enabled
by default and is accessible from the second step in the wizard:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus30.png" alt="quarkus30" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="devfile-based-deployments"><a class="anchor" href="#devfile-based-deployments"></a>Devfile based deployments</h4>
<div class="paragraph">
<p>The Application Explorer view is now based on odo 2.x, which allows deployments
to be based on devfile (developer oriented manifest file). The components from
the default odo registry are listed with legacy S2I components:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devfile.png" alt="devfile" width="600" />
</div>
</div>
<div class="paragraph">
<p>It is also now possible to bootstrap from an empty project as the components
from the registry may expose starter projects (sample code that will initialize
your empty project).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/devfile1.png" alt="devfile1" width="600" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.25.Final and Hibernate Tools version 5.4.25.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.20.Final and Hibernate Tools version 5.3.20.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-22-server-adapter"><a class="anchor" href="#wildfly-22-server-adapter"></a>Wildfly 22 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 22.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cdi-tools"><a class="anchor" href="#cdi-tools"></a>CDI Tools</h3>
<div class="sect3">
<h4 id="eclipse-microprofile-support"><a class="anchor" href="#eclipse-microprofile-support"></a>Eclipse Microprofile support</h4>
<div class="paragraph">
<p>CDI Tools now support Eclipse Microprofile. Eclipse Microprofile related assets
are checked against @Inject injections points and are validated according to rules
specified in various Eclipse Microprofile specifications.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="forge-tools"><a class="anchor" href="#forge-tools"></a>Forge Tools</h3>
<div class="sect3">
<h4 id="forge-runtime-updated-to-3-9-8-final"><a class="anchor" href="#forge-runtime-updated-to-3-9-8-final"></a>Forge Runtime updated to 3.9.8.Final</h4>
<div class="paragraph">
<p>The included Forge runtime is now 3.9.8.Final.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.17.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2020-092020-10-13T09:57:16+00:002020-10-13T00:00:00+00:00jeffmaury
JBoss Tools 4.17.0 and
Red Hat CodeReady Studio 12.17
for Eclipse 2020-09 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.17 (2020-09) but we recommend
using the latest Eclipse 4.17 2020-06 JEE Bundle
since then you get most of the dependencies preinstalled.
Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2020-09/4.17.0.Final.html">JBoss Tools 4.17.0</a> and
<a href="https://tools.jboss.org/downloads/devstudio/2020-09/12.17.0.GA.html">Red Hat CodeReady Studio 12.17</a>
for Eclipse 2020-09 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.17 (2020-09) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2020-09/r/eclipse-ide-enterprise-java-developers">Eclipse 4.17 2020-06 JEE Bundle</a>
since then you get most of the dependencies preinstalled.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Java11 is now required to run Red Hat Developer Studio or JBoss Tools (this is a requirement from Eclipse 4.17). So make sure to select a Java11 JDK in the installer.
You can still work with pre-Java11 JDK/JRE and projects in the tool.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was an improved tooling for the Quarkus framework, improvements for container based development and bug fixing.
Eclipse 2020-09 itself has a lot of new cool stuff but let me highlight just a few updates in both Eclipse 2020-09 and JBoss Tools plugins that I think are worth mentioning.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="openshift-container-platform-4-6-support"><a class="anchor" href="#openshift-container-platform-4-6-support"></a>OpenShift Container Platform 4.6 support</h4>
<div class="paragraph">
<p>With the new OpenShift Container Platform (OCP) 4.6 now available, JBoss Tools
is compatible with this major release in a transparent way. Just define your
connection to your OCP 4.6 based cluster as you did before for an OCP 3 cluster,
and use the tooling !</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quarkus"><a class="anchor" href="#quarkus"></a>Quarkus</h3>
<div class="sect3">
<h4 id="support-for-yaml-configuration-file"><a class="anchor" href="#support-for-yaml-configuration-file"></a>Support for YAML configuration file</h4>
<div class="paragraph">
<p>Quarkus supports configuration through YAML format. For more information,
see the <a href="https://quarkus.io/guides/config#yaml">Quarkus documentation</a></p>
</div>
<div class="paragraph">
<p>In order to use it, follow the steps:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>create a Quarkus project using the new Quarkus wizard</p>
</li>
<li>
<p>create a new <code>application.yaml</code> or <code>application.yml</code> next to the <code>application.properties</code> in <code>src/main/resources</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The editor will open and you will get content assist and syntax validation.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-21-server-adapter"><a class="anchor" href="#wildfly-21-server-adapter"></a>Wildfly 21 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 21. It adds support for
Java EE 8, Jakarta EE 8 and Microprofile 3.3.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.21.Final and Hibernate Tools version 5.4.21.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.18.Final and Hibernate Tools version 5.3.18.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="platform"><a class="anchor" href="#platform"></a>Platform</h3>
<div class="sect3">
<h4 id="views-dialogs-and-toolbar"><a class="anchor" href="#views-dialogs-and-toolbar"></a>Views, Dialogs and Toolbar</h4>
<div class="sect4">
<h5 id="adjustable-view-fonts"><a class="anchor" href="#adjustable-view-fonts"></a>Adjustable view fonts</h5>
<div class="paragraph">
<p>The font used for tree and table views can now be customized with a font preference. This preference is called "Tree and Table font for views" and can be found in Window > Preferences > General > Appearance > Colors and Fonts under the "View and Editor Folders" category.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/adjustable-view-font-preference.png" alt="adjustable view font preference" />
</div>
</div>
<div class="paragraph">
<p>The Project Explorer is an example of a view that gets affected by this font preference.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/adjustable-view-font.png" alt="adjustable view font" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="remove-gifs-from-views"><a class="anchor" href="#remove-gifs-from-views"></a>Remove gifs from views</h5>
<div class="paragraph">
<p>Several years ago, the icons of the platform views were migrated to .png files. As already opened views store their reference to the image, the .gif files were left in the code. These have been removed now. If you are using the same workspace for multiple years and view icons are missing due to that removal, you have to close and reopen the view.</p>
</div>
</div>
<div class="sect4">
<h5 id="default-changed-for-confirm-on-exit-for-last-window"><a class="anchor" href="#default-changed-for-confirm-on-exit-for-last-window"></a>Default changed for confirm on exit for last window</h5>
<div class="paragraph">
<p>By default, Eclipse now closes if you select the close icon on the last window without additional confirmation dialog. If you want to get a confirmation dialog, you can enable that via Window > Preferences > General > Startup and Shutdown > Confirm exit when closing last window.</p>
</div>
</div>
<div class="sect4">
<h5 id="workbench-models-created-in-releases-before-2014-are-not-automatically-converted"><a class="anchor" href="#workbench-models-created-in-releases-before-2014-are-not-automatically-converted"></a>Workbench models created in releases before 2014 are not automatically converted</h5>
<div class="paragraph">
<p>Workbench models (workbench.xmi) stored in workspaces created with releases before 2014 and never opened with a later release are not automatically converted anymore if opened with the 2020-09 release.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="text-editors"><a class="anchor" href="#text-editors"></a>Text Editors</h4>
<div class="sect4">
<h5 id="multiple-last-edit-locations"><a class="anchor" href="#multiple-last-edit-locations"></a>Multiple Last Edit Locations</h5>
<div class="paragraph">
<p><strong>Previous Edit Location</strong> navigation (formerly named Last Edit Location) is now expanded to remember multiple edit locations.</p>
</div>
<div class="paragraph">
<p>The last 15 edit locations are now remembered. For convenience, similar edit locations in close proximity to each other are also merged so that each of the 15 remembered locations remains distinct.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/multiple-last-edit-locations.png" alt="multiple last edit locations" />
</div>
</div>
<div class="paragraph">
<p>How to use</p>
</div>
<div class="paragraph">
<p>Two new keyboard shortcuts are introduced:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Ctrl+Alt+LEFT_ARROW</strong> (or on Mac <strong>Ctrl+Opt+LEFT_ARROW</strong>) navigates to the most recent edit location, just as <strong>Ctrl+Q</strong> always has in prior releases.</p>
<div class="paragraph">
<p>However, now continuing to hold <strong>Ctrl+Alt</strong> and then pressing <strong>LEFT_ARROW</strong> again begins a traversal through the history of prior edit locations, with each additional press of <strong>LEFT_ARROW</strong> moving a step further back in history. Once traversal stops, future <strong>Ctrl+Alt+LEFT_ARROW</strong> actions are now temporarily anchored to this older historical location for easy exploration of that code region.</p>
</div>
<div class="paragraph">
<p>The classic <strong>Ctrl+Q</strong> mapping has been likewise enhanced with this new functionality, so that <strong>Ctrl+Q</strong> and <strong>Ctrl+Alt+LEFT_ARROW</strong> are synonymous.</p>
</div>
</li>
<li>
<p><strong>Ctrl+Alt+RIGHT_ARROW</strong> (or on Mac <strong>Ctrl+Opt+RIGHT_ARROW</strong>) conversely moves the anchor forward through edit history, so after traversing backward with <strong>Ctrl+Alt+LEFT_ARROW</strong>, you can go forward again by holding <strong>Ctrl+Alt</strong> and repeatedly pressing <strong>RIGHT_ARROW</strong>. A new menu item has likewise been added for this forward navigation as well.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>New edit locations are always inserted at the end, so original historical ordering is always maintained. New edits also reset the last location "anchor" back to the most recent edit, so that pressing <strong>Ctrl+Alt+LEFT_ARROW</strong> once again brings you to the most recent edit rather than a historical one.</p>
</div>
</div>
<div class="sect4">
<h5 id="printing-editor-content-adds-date-in-header"><a class="anchor" href="#printing-editor-content-adds-date-in-header"></a>Printing editor content adds date in header</h5>
<div class="paragraph">
<p>Printing editor content now includes the current date in addition to the filename in the header of each printed page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/print-header-date.png" alt="print header date" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="themes-and-styling"><a class="anchor" href="#themes-and-styling"></a>Themes and Styling</h4>
<div class="sect4">
<h5 id="improved-gtk-light-theme"><a class="anchor" href="#improved-gtk-light-theme"></a>Improved GTK light theme</h5>
<div class="paragraph">
<p>The GTK light theme has been updated to align better with the default GTK3 Adwaita theme.</p>
</div>
<div class="paragraph">
<p>Old:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/gtk-light-old.png" alt="gtk light old" />
</div>
</div>
<div class="paragraph">
<p>New:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/gtk-light-new.png" alt="gtk light new" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="windows-menus-are-styled-in-the-dark-theme"><a class="anchor" href="#windows-menus-are-styled-in-the-dark-theme"></a>Windows menus are styled in the dark theme</h5>
<div class="paragraph">
<p>SWT now natively styles the menu under Windows in the dark theme.</p>
</div>
<div class="paragraph">
<p>Old:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/menu-background-old.png" alt="menu background old" />
</div>
</div>
<div class="paragraph">
<p>New:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/menu-background-dark.png" alt="menu background dark" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="dropbox-boxes-combos-are-styled-under-windows-in-the-dark-theme"><a class="anchor" href="#dropbox-boxes-combos-are-styled-under-windows-in-the-dark-theme"></a>Dropbox boxes (Combos) are styled under Windows in the dark theme</h5>
<div class="paragraph">
<p>SWT now natively styles drop-down boxes under Windows in the dark theme.</p>
</div>
<div class="paragraph">
<p>Old:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/combo-win32-dark-old.png" alt="combo win32 dark old" />
</div>
</div>
<div class="paragraph">
<p>New:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/combo-win32-dark-new.png" alt="combo win32 dark new" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="selection-highlighter-for-dark-theme"><a class="anchor" href="#selection-highlighter-for-dark-theme"></a>Selection highlighter for dark theme</h5>
<div class="paragraph">
<p>The active tab selection highlighter has been enabled for Eclipse’s default dark themes. This will help users identify which tab is active at a glance.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/dark-selection-highlighter.png" alt="dark selection highlighter" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="selection-highlighter-for-tables-under-windows-in-the-dark-theme"><a class="anchor" href="#selection-highlighter-for-tables-under-windows-in-the-dark-theme"></a>Selection highlighter for tables under Windows in the dark theme</h5>
<div class="paragraph">
<p>SWT now natively supports selection highlighter in tables under Windows in the dark theme.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/selection-highlight.png" alt="selection highlight" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="filter-null-bytes-from-console-output"><a class="anchor" href="#filter-null-bytes-from-console-output"></a>Filter null bytes from console output</h5>
<div class="paragraph">
<p>The interpretation of ASCII control characters in the <strong>Console View</strong> was extended to recognize the characters: <code>\0</code> - null byte. If interpretation is enabled, any null byte will be stripped and not shown in console view. This is most relevant for the Linux platform where a null byte in console view causes anything after it on the same line to be not rendered.</p>
</div>
<div class="paragraph">
<p>This feature is disabled by default. You can enable it on the <strong>Run/Debug > Console</strong> preference page.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="general-updates"><a class="anchor" href="#general-updates"></a>General Updates</h4>
<div class="sect4">
<h5 id="builds-for-linux-aarch64-aka-arm64-added"><a class="anchor" href="#builds-for-linux-aarch64-aka-arm64-added"></a>Builds for Linux AArch64 (aka Arm64) added</h5>
<div class="paragraph">
<p>Binaries for Linux AArch64 (Arm64) are available for testing. With the raising popularity of this architecture people can continue using the Eclipse IDE even when changing their machine.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="java-15-support"><a class="anchor" href="#java-15-support"></a>Java 15 Support</h4>
<div class="sect4">
<h5 id="java-15"><a class="anchor" href="#java-15"></a>Java 15</h5>
<div class="paragraph">
<p>Java 15 is out and Eclipse JDT supports Java 15 for 4.17 via Marketplace.</p>
</div>
<div class="paragraph">
<p>The release notably includes the following Java 15 features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>JEP 378: Text Blocks (Standard).</p>
</li>
<li>
<p>JEP 384: Records (Second Preview).</p>
</li>
<li>
<p>JEP 375: Pattern Matching for Instanceof (Second Preview).</p>
</li>
<li>
<p>JEP 360: Sealed Classes (Preview).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Please note that preview option should be on for preview language features. For an informal introduction of the support, please refer to <a href="https://wiki.eclipse.org/Java15/Examples">Java 15 Examples wiki</a>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="junit"><a class="anchor" href="#junit"></a>JUnit</h4>
<div class="sect4">
<h5 id="collapse-all-nodes-in-junit-view"><a class="anchor" href="#collapse-all-nodes-in-junit-view"></a>Collapse all nodes in JUnit view</h5>
<div class="paragraph">
<p>JUnit view now provides a context-menu option to collapse all nodes:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/junit-collapse-all.png" alt="junit collapse all" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="sort-test-results-by-execution-time"><a class="anchor" href="#sort-test-results-by-execution-time"></a>Sort test results by execution time</h5>
<div class="paragraph">
<p>JUnit view now provides the ability to sort results by execution time. By default, results will be sorted by execution order. Choosing <strong>Sort By > Execution Time</strong> from the <strong>JUnit View</strong> menu will reorder the results once all tests are complete. While tests are still running, they will be shown in execution order.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/junit-sort-time-before.png" alt="junit sort time before" />
</div>
</div>
<div class="paragraph">
<p>Sorting by execution order results in:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/junit-sort-time-after.png" alt="junit sort time after" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="substringsubword-matches-for-types"><a class="anchor" href="#substringsubword-matches-for-types"></a>Substring/Subword matches for types</h5>
<div class="paragraph">
<p>Content Assist now fully supports both substring and subword matches for types:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/substring-types.png" alt="substring types" />
</div>
</div>
<div class="paragraph">
<p>Substring matches are always shown and subword matches can be enabled/disabled with the existing <strong>Show subword matches</strong> option on the <strong>Java > Editor > Content Assist</strong> preference page.</p>
</div>
</div>
<div class="sect4">
<h5 id="optimization-tab"><a class="anchor" href="#optimization-tab"></a>Optimization tab</h5>
<div class="paragraph">
<p>A new tab has been added that gathers cleanups that improve the time performance: the existing lazy operator cleanup and the regex precompiler cleanup.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/regex-preferences.png" alt="regex preferences" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="objects-equals"><a class="anchor" href="#objects-equals"></a>Objects.equals()</h5>
<div class="paragraph">
<p>A new clean up has been added that makes use of <code>Objects.equals()</code> to implement the <code>equals(Object)</code> method.</p>
</div>
<div class="paragraph">
<p>It reduces the code and improves the reading. The cleanup is only available for Java 7 or higher. Although this kind of comparison is almost exclusively seen in the <code>equals(Object)</code> method, it can also reduce code in other methods.</p>
</div>
<div class="paragraph">
<p>To select the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog select <strong>Use Objects.equals() in the equals method implementation</strong> on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/objects-equals-preferences.png" alt="objects equals preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/objects-equals-before.png" alt="objects equals before" />
</div>
</div>
<div class="paragraph">
<p>You get this after the clean up:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/objects-equals-after.png" alt="objects equals after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="precompiles-the-regular-expressions"><a class="anchor" href="#precompiles-the-regular-expressions"></a>Precompiles the regular expressions</h5>
<div class="paragraph">
<p>A new clean up has been added that optimizes the regular expression execution by precompiling it.</p>
</div>
<div class="paragraph">
<p>It replaces some usages of <code>java.lang.String</code> by usages of <code>java.util.regex.Pattern</code>. The cleanup is done only if it is sure that the string is used as a regular expression. If there is any doubt, nothing is done. The regular expression must be explicitly used several times to be sure the cleanup is useful.</p>
</div>
<div class="paragraph">
<p>To select the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog select <strong>Precompiles reused regular expressions</strong> on the <strong>Optimization</strong> tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/regex-preferences.png" alt="regex preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/regex-before.png" alt="regex before" />
</div>
</div>
<div class="paragraph">
<p>You get this after the clean up:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/regex-after.png" alt="regex after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="string-format-quickfix"><a class="anchor" href="#string-format-quickfix"></a>String.format quickfix</h5>
<div class="paragraph">
<p>A new quickfix has been added to replace string concatenation with <code>String.format</code>, similar to the existing ones for <code>StringBuilder</code> and <code>MessageFormat</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/String.format-quickfix.png" alt="String.format quickfix" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="method-reference-quickfix"><a class="anchor" href="#method-reference-quickfix"></a>Method reference quickfix</h5>
<div class="paragraph">
<p>A new quickfix has been added to create missing methods for method references.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<strong>Current restriction is that this quickfix is only available on current class</strong>.
</td>
</tr>
</table>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p><strong>Expect current implementation to work on simple cases only</strong>.</p>
</div>
<div class="paragraph">
<p><strong>Method references invoking nested generics or type parameters might be problematic to resolve correct</strong>.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/methodreference_1.png" alt="methodreference 1" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-views-and-dialog"><a class="anchor" href="#java-views-and-dialog"></a>Java Views and Dialog</h4>
<div class="sect4">
<h5 id="toggle-code-minings-from-find-actions-menu"><a class="anchor" href="#toggle-code-minings-from-find-actions-menu"></a>Toggle Code Minings From Find Actions Menu</h5>
<div class="paragraph">
<p>The code minings within an editor can be enabled/disabled through the Find Actions menu (<strong>Ctrl+3</strong>).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/toggle-code-minings.png" alt="toggle code minings" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-formatter"><a class="anchor" href="#java-formatter"></a>Java Formatter</h4>
<div class="sect4">
<h5 id="assert-statement-wrapping"><a class="anchor" href="#assert-statement-wrapping"></a>Assert statement wrapping</h5>
<div class="paragraph">
<p>A new setting in the Formatter profile controls <strong>line wrapping of assert statements</strong>. A line wrap can be added between the assert condition and its error message. The setting can be found in the <strong>Profile Editor (Preferences > Java > Code Style > Formatter > Edit…</strong>) in the <strong>Line Wrapping > Wrapping Settings > Statemtens > 'assert' messages</strong> node.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/formatter-wrap-assert.png" alt="formatter wrap assert" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug-2"><a class="anchor" href="#debug-2"></a>Debug</h4>
<div class="sect4">
<h5 id="anonymous-class-instance-in-evaluation"><a class="anchor" href="#anonymous-class-instance-in-evaluation"></a>Anonymous class instance in evaluation</h5>
<div class="paragraph">
<p>The <strong>JDT debugger</strong> is now capable of inspecting/evaluating expressions with anonymous class instances.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/anon-instance-inspection-code.png" alt="anon instance inspection code" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/anon-instance-inspection.png" alt="anon instance inspection" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="jep-358-helpful-nullpointerexceptions"><a class="anchor" href="#jep-358-helpful-nullpointerexceptions"></a>JEP 358: Helpful NullPointerExceptions</h5>
<div class="paragraph">
<p>The <strong>JDT debugger</strong> has now a checkbox option to activate the command line support for JEP 358. This is disabled below Java 14 and enabled by default for Java programs launched with Java 14 and above.</p>
</div>
<div class="paragraph">
<p><strong>-XX:+ShowCodeDetailsInExceptionMessages</strong></p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/helpfulNullPointerExceptions.png" alt="helpfulNullPointerExceptions" />
</div>
</div>
<div class="paragraph">
<p>JVM is now capable of analyzing which variable was null at the point of NullPointerException and describe the variable with a null-detail message in the NPE.</p>
</div>
</div>
<div class="sect4">
<h5 id="actual-type-in-variables-view"><a class="anchor" href="#actual-type-in-variables-view"></a>Actual type in Variables view</h5>
<div class="paragraph">
<p>The option <strong>Show Type Names</strong> in the <strong>Variables</strong> and <strong>Expressions</strong> views now displays the value’s actual type instead of its declared type. This simplifies debugging especially when variable details (<code>toString()</code>) is shown <strong>As the label for all variables</strong>.</p>
</div>
<div class="paragraph">
<p>To enable <strong>Show Type Names</strong> in the <strong>Variables</strong> view, column mode must be disabled (<strong>View Menu > Layout > Show Columns</strong>).</p>
</div>
<div class="paragraph">
<p>Example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">Object s = "some string";
Collection<?> c = Arrays.asList(s, 1);
// breakpoint</code></pre>
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.17/images/variables-actual-type.png" alt="variables actual type" />
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.17.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.17.0 and Red Hat CodeReady Studio 12.17 out we are already working on the next release.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.17.0.am1.htmlJBoss Tools 4.17.0.AM1 for Eclipse 2020-092020-09-16T13:27:44+00:002020-09-15T00:00:00+00:00jeffmaury
Happy to announce 4.17.0.AM1 (Developer Milestone 1) build for Eclipse 2020-09.
Downloads available at JBoss Tools 4.17.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
Quarkus
Support for YAML configuration file
Quarkus supports configuration through YAML format. For more information,
see the Quarkus documentation
In order to use it, follow the steps:
create a Quarkus project using the new Quarkus wizard
create a new application.yaml or application.yml next to the application.properties in src/main/resources
The editor will open and you will get content assist and syntax validation.
Hibernate Tools
A number of additions and updates have been performed on the available Hibernate runtime providers.
New Runtime Provider
A new...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.17.0.AM1 (Developer Milestone 1) build for Eclipse 2020-09.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2020-09/4.17.0.AM1.html">JBoss Tools 4.17.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.17.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="quarkus"><a class="anchor" href="#quarkus"></a>Quarkus</h3>
<div class="sect3">
<h4 id="support-for-yaml-configuration-file"><a class="anchor" href="#support-for-yaml-configuration-file"></a>Support for YAML configuration file</h4>
<div class="paragraph">
<p>Quarkus supports configuration through YAML format. For more information,
see the <a href="https://quarkus.io/guides/config#yaml">Quarkus documentation</a></p>
</div>
<div class="paragraph">
<p>In order to use it, follow the steps:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>create a Quarkus project using the new Quarkus wizard</p>
</li>
<li>
<p>create a new <code>application.yaml</code> or <code>application.yml</code> next to the <code>application.properties</code> in <code>src/main/resources</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The editor will open and you will get content assist and syntax validation.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect3">
<h4 id="new-runtime-provider"><a class="anchor" href="#new-runtime-provider"></a>New Runtime Provider</h4>
<div class="paragraph">
<p>A new runtime provider has been added for Hibernate 6.0. It incorporates Hibernate Core version 6.0.0.Alpha6 and Hibernate Tools version 6.0.0.Alpha2.</p>
</div>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.21.Final and Hibernate Tools version 5.4.21.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.18.Final and Hibernate Tools version 5.3.18.Final.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.16.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2020-062020-07-21T07:00:37+00:002020-07-21T00:00:00+00:00jeffmaury
JBoss Tools 4.16.0 and
Red Hat CodeReady Studio 12.16
for Eclipse 2020-06 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.16 (2020-06) but we recommend
using the latest Eclipse 4.16 2020-06 JEE Bundle
since then you get most of the dependencies preinstalled.
Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2020-06/4.16.0.Final.html">JBoss Tools 4.16.0</a> and
<a href="https://tools.jboss.org/downloads/devstudio/2020-06/12.16.0.GA.html">Red Hat CodeReady Studio 12.16</a>
for Eclipse 2020-06 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.16 (2020-06) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2020-06/r/eclipse-ide-enterprise-java-developers">Eclipse 4.16 2020-06 JEE Bundle</a>
since then you get most of the dependencies preinstalled.</p>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was a new tooling for the Quarkus framework, improvements for container based development and bug fixing.
Eclipse 2020-06 itself has a lot of new cool stuff but let me highlight just a few updates in both Eclipse 2020-06 and JBoss Tools plugins that I think are worth mentioning.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="secure-url-support"><a class="anchor" href="#secure-url-support"></a>Secure URL support</h4>
<div class="paragraph">
<p>It is now possible to create secured URLs in the Application Explorer View.
If you select this option, the created URL will be accessible through <code>https</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/secure-url.png" alt="secure url" width="600" />
</div>
</div>
<div class="paragraph">
<p>When such an URL is displayed in the tree, the icon now has a secure lock indicator.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/secure-url1.png" alt="secure url1" width="600" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="openshift-container-platform-4-5-support"><a class="anchor" href="#openshift-container-platform-4-5-support"></a>OpenShift Container Platform 4.5 support</h4>
<div class="paragraph">
<p>With the new OpenShift Container Platform (OCP) 4.5 now available, JBoss Tools
is compatible with this major release in a transparent way. Just define your
connection to your OCP 4.4 based cluster as you did before for an OCP 3 cluster,
and use the tooling !</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quarkus"><a class="anchor" href="#quarkus"></a>Quarkus</h3>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-20-server-adapter"><a class="anchor" href="#wildfly-20-server-adapter"></a>Wildfly 20 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 20. It adds support for
Java EE 8, Jakarta EE 8 and Microprofile 3.3.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.17.Final and Hibernate Tools version 5.4.17.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.17.Final and Hibernate Tools version 5.3.17.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="platform"><a class="anchor" href="#platform"></a>Platform</h3>
<div class="sect3">
<h4 id="views-dialogs-and-toolbar"><a class="anchor" href="#views-dialogs-and-toolbar"></a>Views, Dialogs and Toolbar</h4>
<div class="sect4">
<h5 id="create-missing-folders-from-the-new-file-wizard"><a class="anchor" href="#create-missing-folders-from-the-new-file-wizard"></a>Create missing folders from the New File wizard</h5>
<div class="paragraph">
<p>You can now create missing folders directly via the New File wizard, without explicitly creating folders beforehand.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/file-and-folder.png" alt="file and folder" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="text-editors"><a class="anchor" href="#text-editors"></a>Text Editors</h4>
<div class="sect4">
<h5 id="support-for-ligatures-on-windows"><a class="anchor" href="#support-for-ligatures-on-windows"></a>Support for ligatures on Windows</h5>
<div class="paragraph">
<p>Eclipse now supports font ligatures on Windows. It was already supported on Linux and macOS. You can specify the font with ligatures to be used by the <strong>Text editors</strong> using the preference:</p>
</div>
<div class="paragraph">
<p><strong>General > Appearance > Colors and Font > Basic > Text Font</strong></p>
</div>
<div class="paragraph">
<p>Screenshot of ligatures rendered in the Java Editor on Windows 10:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/eclipse_ligatures_support_win.png" alt="eclipse ligatures support win" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="themes-and-styling"><a class="anchor" href="#themes-and-styling"></a>Themes and Styling</h4>
<div class="sect4">
<h5 id="native-dark-scrollbars-in-windows-dark-theme"><a class="anchor" href="#native-dark-scrollbars-in-windows-dark-theme"></a>Native dark scrollbars in Windows dark theme</h5>
<div class="paragraph">
<p>The Eclipse dark theme now uses the native dark scrollbars and retired the software solution for the editor area.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/dark-theme-scrollbars.png" alt="dark theme scrollbars" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="eclipse-toolbars-styling-on-windows-aligned-with-win-10"><a class="anchor" href="#eclipse-toolbars-styling-on-windows-aligned-with-win-10"></a>Eclipse toolbar’s styling on Windows aligned with Win 10</h5>
<div class="paragraph">
<p>The default Eclipse light theme has been updated to align better with the Windows 10 default theme.</p>
</div>
<div class="paragraph">
<p>Old:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/old-light-theme.png" alt="old light theme" />
</div>
</div>
<div class="paragraph">
<p>New:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/new-light-theme.png" alt="new light theme" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="square-tabs-for-views"><a class="anchor" href="#square-tabs-for-views"></a>Square tabs for views</h5>
<div class="paragraph">
<p>Square tabs are now used by default for the views in the Eclipse IDE.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/dark_theme_square_tabs.png" alt="dark theme square tabs" />
</div>
</div>
<div class="paragraph">
<p>In order to switch back to using round tabs, a preference has been added.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/round_tabs_preference_option.png" alt="round tabs preference option" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="consistent-toolbar-colors-in-dark-theme"><a class="anchor" href="#consistent-toolbar-colors-in-dark-theme"></a>Consistent toolbar colors in dark theme</h5>
<div class="paragraph">
<p>The toolbar styling in the dark theme is now consistent.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/dark-theme-toolbar.png" alt="dark theme toolbar" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="preferences"><a class="anchor" href="#preferences"></a>Preferences</h4>
<div class="sect4">
<h5 id="verify-installation-operations-against-current-jre"><a class="anchor" href="#verify-installation-operations-against-current-jre"></a>Verify installation operations against current JRE</h5>
<div class="paragraph">
<p>A new option (on by default) is available in the <strong>Install/Update</strong> preference page: <em>Verify provisioning operation is compatible with current running JRE</em>. This enables some extra check when installing, updating or uninstalling content using the standard dialogs so the operation will fail with a useful message if the units you’re installing require a newer or incompatible Java runtime than the one that’s currently in use to run the IDE.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/incompatibleJREPref.png" alt="incompatibleJREPref" />
</div>
</div>
<div class="paragraph">
<p>Here is how the error message looks like, for example when you’re trying to install a unit that requires Java 14 and you’re running the Eclipse IDE with an older Java version:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/incompatibleJREMessage.png" alt="incompatibleJREMessage" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="preference-to-inline-rename-resource"><a class="anchor" href="#preference-to-inline-rename-resource"></a>Preference to inline rename resource</h5>
<div class="paragraph">
<p>The preference to rename resource inline or using dialog was added in 4.15 as a radio button and has now been changed to a check box.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/inlineRenameResource.png" alt="inlineRenameResource" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
</div>
<div class="sect3">
<h4 id="select-all-and-deselect-all-for-import-breakpoints-wizard"><a class="anchor" href="#select-all-and-deselect-all-for-import-breakpoints-wizard"></a>'Select All' and 'Deselect All' for Import breakpoints wizard</h4>
<div class="paragraph">
<p>You can now use <strong>Select All</strong> or <strong>Deselect All</strong> buttons to select or deselect all the breakpoint markers during import of breakpoints.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/import-selectall.png" alt="import selectall" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="general-updates"><a class="anchor" href="#general-updates"></a>General Updates</h4>
<div class="sect4">
<h5 id="show-key-bindings-when-command-is-invoked"><a class="anchor" href="#show-key-bindings-when-command-is-invoked"></a>Show key bindings when command is invoked</h5>
<div class="paragraph">
<p>For presentations, screen casts and learning purposes, it is very helpful to show the corresponding key binding when a command is invoked. This was added some releases ago.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/show_keybindings.png" alt="show keybindings" />
</div>
</div>
<div class="paragraph">
<p>It is now possible to enable this feature separately for keyboard interaction and mouse clicks. So you can enable it for mouse clicks only, for keyboard interaction only or for both. Enabling this only for mouse clicks is very helpful for users who want to learn existing key bindings.</p>
</div>
<div class="paragraph">
<p>You can enable this on the <strong>Preferences</strong> dialog via the <em>Show key binding when command is invoked</em> group on the <strong>General > Keys</strong> preference page. To change this setting quickly the command 'Toggle Show Key Bindings' can be used (e.g. via the find actions dialog).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/show_keybindings_pref.png" alt="show keybindings pref" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="ant-1-10-8"><a class="anchor" href="#ant-1-10-8"></a>Ant 1.10.8</h5>
<div class="paragraph">
<p>Eclipse has adopted Ant version 1.10.8.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="java-14-support"><a class="anchor" href="#java-14-support"></a>Java 14 Support</h4>
<div class="sect4">
<h5 id="java-14"><a class="anchor" href="#java-14"></a>Java 14</h5>
<div class="paragraph">
<p>Java™ 14 is available and Eclipse JDT supports Java 14 for the Eclipse 4.16 release.</p>
</div>
<div class="paragraph">
<p>The release notably includes the following Java 14 features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>JEP 361: Switch Expressions (Standard).</p>
</li>
<li>
<p>JEP 359: Records (Preview).</p>
</li>
<li>
<p>JEP 368: Text Blocks (Second Preview).</p>
</li>
<li>
<p>JEP 305: Pattern Matching for Instanceof (Preview).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Please note that preview option should be on for preview language features.
For an informal introduction of the support, please refer to <a href="https://wiki.eclipse.org/Java14/Examples">Java 14 Examples wiki</a>.</p>
</div>
</div>
<div class="sect4">
<h5 id="set-jdk-compliance-to-14"><a class="anchor" href="#set-jdk-compliance-to-14"></a>Set JDK Compliance to 14</h5>
<div class="paragraph">
<p>You can set the JDK compliance to 14 and enable the preview features in <strong>Preferences > Java > Compiler</strong>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/jdk-compliance-14.png" alt="jdk compliance 14" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="template-to-create-new-record"><a class="anchor" href="#template-to-create-new-record"></a>Template to create new record</h5>
<div class="paragraph">
<p>You can use the <code>new_record</code> template to create a record in an empty <code>.java</code> file:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/newrecord.png" alt="newrecord" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="record-creation-wizard"><a class="anchor" href="#record-creation-wizard"></a>Record Creation Wizard</h5>
<div class="paragraph">
<p>You can create a new record using the Record creation wizard that can be opened by:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Right Click on the <strong>Project > New > Record</strong></p>
</li>
<li>
<p>Right Click on the <strong>Project > New > Other and search for Record</strong></p>
</li>
<li>
<p>Right Click on the <strong>Project > New > Other > Java > Record</strong></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The Record creation wizard comes up as shown below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/fileAddJ14RecordCreation.png" alt="fileAddJ14RecordCreation" />
</div>
</div>
<div class="paragraph">
<p><em>Note: In older workspaces the "Record" entry may not appear directly under the "New" menu in the Java perspective. To resolve this, either use a new workspace or launch eclipse with the option <code>-clearPersistedState</code> for your existing workspace.</em></p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="enable-preview-features"><a class="anchor" href="#enable-preview-features"></a>Enable preview features</h4>
<div class="paragraph">
<p>You can now quickly enable the preview features on an applicable Java project by right-clicking on it and selecting <strong>Configure > Enable preview features</strong>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/enable-preview.png" alt="enable preview" />
</div>
</div>
<div class="paragraph">
<p>You can also change the default severity (warning) of the preview features compile problem in the opened <strong>Project properties</strong> dialog:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/preview-severity.png" alt="preview severity" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="non-blocking-java-code-completion"><a class="anchor" href="#non-blocking-java-code-completion"></a>Non-blocking Java code completion</h5>
<div class="paragraph">
<p>By default, code completions in the <strong>Java editor</strong> are now configured to be computed (when possible) in a separate non-UI thread in order to prevent UI freezes in case of long computations.</p>
</div>
<div class="paragraph">
<p>Users can restore the legacy behavior in <strong>Preferences > Java > Editor > Content Assist > Advanced</strong> by unchecking the enable non-blocking completion checkbox; integrators can change the value of the <code>org.eclipse.jdt.ui.content_assist_noUIThread_computation</code> to <code>false</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/jdtNonBlockingCompletionPref.png" alt="jdtNonBlockingCompletionPref" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="merge-control-workflows"><a class="anchor" href="#merge-control-workflows"></a>Merge control workflows</h5>
<div class="paragraph">
<p>A new clean up has been added that merges conditions of if/else if/else that have the same blocks when it is possible.</p>
</div>
<div class="paragraph">
<p>The code in the blocks should be the same. An else block may be different and won’t be merged. One condition may be made opposite to allow the merge. The conditions are merged with <code>||</code> to keep the control workflow the same. Parenthesis is added to avoid priority issue. Most of the brackets, formatting and comments are kept.</p>
</div>
<div class="paragraph">
<p>To select the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog select <strong>Merge conditions of if/else if/else that have the same blocks</strong> on the <strong>Unnecessary Code</strong> tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/merge-control-workflows-preferences.png" alt="merge control workflows preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/merge-control-workflows-before.png" alt="merge control workflows before" />
</div>
</div>
<div class="paragraph">
<p>You get this after the clean up:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/merge-control-workflows-after.png" alt="merge control workflows after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="local-variable-type-inference"><a class="anchor" href="#local-variable-type-inference"></a>Local variable type inference</h5>
<div class="paragraph">
<p>A new clean up has been added that makes use of the <code>var</code> keyword for the local variable when it is possible and is enabled only for Java 10 and higher.</p>
</div>
<div class="paragraph">
<p>The clean up replaces the explicit variable type by <code>var</code> when this type can be known by the variable initialization. It also replaces the diamond operator in instance creation by a parameterized type. Eventually, it adds a suffix to initialization number literal to match the variable type. In any case, the variable type is still exactly the same.</p>
</div>
<div class="paragraph">
<p>To select the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog select <strong>Use the local variable type inference</strong> on the <strong>Code Style</strong> tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/var-preferences.png" alt="var preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/var-before.png" alt="var before" />
</div>
</div>
<div class="paragraph">
<p>You get this after the clean up:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/var-after.png" alt="var after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="prefer-lazy-logical-operators"><a class="anchor" href="#prefer-lazy-logical-operators"></a>Prefer lazy logical operators</h5>
<div class="paragraph">
<p>A new clean up has been added that replaces eager logical operators by lazy operators when it is possible.</p>
</div>
<div class="paragraph">
<p>The clean up respectively replaces <code>|</code> and & by <code>||</code> and <code>&&</code> when the following operands can’t make side effect. Any assignments, increments, decrements, object creations or method call may cause side effect. So, in such case, it will keep the eager operator. It also leaves the binary operations as it is.</p>
</div>
<div class="paragraph">
<p>To select the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on the <strong>Configure…</strong> dialog select <strong>Use the lazy logical operator</strong> on the <strong>Code Style</strong> tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/lazy-logical-preferences.png" alt="lazy logical preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/lazy-logical-before.png" alt="lazy logical before" />
</div>
</div>
<div class="paragraph">
<p>You get this after the clean up:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/lazy-logical-after.png" alt="lazy logical after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="quick-fix-to-change-return-statement-to-yield-statement-in-switch-expression"><a class="anchor" href="#quick-fix-to-change-return-statement-to-yield-statement-in-switch-expression"></a>Quick fix to change return statement to yield statement in Switch Expression</h5>
<div class="paragraph">
<p>A quick fix has been added to convert a <code>return</code> statement in a <code>Switch Expression</code> to <code>yield</code> statement.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/quickfix-switch-expression-return-to-yield.png" alt="quickfix switch expression return to yield" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-formatter"><a class="anchor" href="#java-formatter"></a>Java Formatter</h4>
<div class="sect4">
<h5 id="record-declarations-support"><a class="anchor" href="#record-declarations-support"></a>Record declarations support</h5>
<div class="paragraph">
<p>A lot of new settings have appeared in the formatter profile to control the formatting of <strong>record declarations</strong>. They are very similar to existing settings related to other type declarations. To see them all, you can use the filter field and type in the keyword <code>record</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/formatter-records.png" alt="formatter records" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug-2"><a class="anchor" href="#debug-2"></a>Debug</h4>
<div class="sect4">
<h5 id="synthetic-variables-inspection"><a class="anchor" href="#synthetic-variables-inspection"></a>Synthetic variables inspection</h5>
<div class="paragraph">
<p>The <strong>JDT debugger</strong> is now capable of inspecting synthetic variables which are generated by the Java compilers. One such example is debugging the following method ` java.util.stream.ReferencePipeline.filter(Predicate<? super P_OUT>)` and inspecting the predicate variable.</p>
</div>
<div class="paragraph">
<p>Before:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/synthetic_var_without_fix.png" alt="synthetic var without fix" />
</div>
</div>
<div class="paragraph">
<p>Now:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.16/images/synthetic_var_with_fix.png" alt="synthetic var with fix" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="preferences-2"><a class="anchor" href="#preferences-2"></a>Preferences</h4>
<div class="sect4">
<h5 id="substring-matching"><a class="anchor" href="#substring-matching"></a>Substring Matching</h5>
<div class="paragraph">
<p>The content assist preference option <strong>Show Substring Matches</strong> has been removed and the feature is now always enabled.</p>
</div>
<div class="paragraph">
<p>Any application or user can still disable it using the VM property: <strong>-Djdt.codeCompleteSubstringMatch=false</strong></p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.16.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.16.0 and Red Hat CodeReady Studio 12.16 out we are already working on the next release for Eclipse 2020-09.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.16.0.am1.htmlJBoss Tools 4.16.0.AM1 for Eclipse 2020-062020-06-26T10:30:14+00:002020-06-24T00:00:00+00:00jeffmaury
Happy to announce 4.16.0.AM1 (Developer Milestone 1) build for Eclipse 2020-06.
Downloads available at JBoss Tools 4.16.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
OpenShift
Secure URL support
It is now possible to create secured URLs in the Application Explorer View.
If you select this option, the created URL will be accessible through https.
When such an URL is displayed in the tree, the icon now has a secure lock indicator.
Hibernate Tools
Hibernate Runtime Provider Updates
A number of additions and updates have been performed on the available Hibernate runtime providers.
Runtime Provider Updates
The Hibernate 5.4 runtime provider now incorporates Hibernate Core version...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.16.0.AM1 (Developer Milestone 1) build for Eclipse 2020-06.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2020-06/4.16.0.AM1.html">JBoss Tools 4.16.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.16.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="secure-url-support"><a class="anchor" href="#secure-url-support"></a>Secure URL support</h4>
<div class="paragraph">
<p>It is now possible to create secured URLs in the Application Explorer View.
If you select this option, the created URL will be accessible through <code>https</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/secure-url.png" alt="secure url" width="600" />
</div>
</div>
<div class="paragraph">
<p>When such an URL is displayed in the tree, the icon now has a secure lock indicator.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/secure-url1.png" alt="secure url1" width="600" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.17.Final and Hibernate Tools version 5.4.14.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.17.Final and Hibernate Tools version 5.3.16.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-20-server-adapter"><a class="anchor" href="#wildfly-20-server-adapter"></a>Wildfly 20 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 20. It adds support for
Java EE 8, Jakarta EE 8 and Microprofile 3.3.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.15.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2020-032020-04-28T06:19:40+00:002020-04-28T00:00:00+00:00jeffmaury
JBoss Tools 4.15.0 and
Red Hat CodeReady Studio 12.15
for Eclipse 2020-03 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.15 (2020-03) but we recommend
using the latest Eclipse 4.15 2020-03 JEE Bundle
since then you get most of the dependencies preinstalled.
Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2020-03/4.15.0.Final.html">JBoss Tools 4.15.0</a> and
<a href="https://tools.jboss.org/downloads/devstudio/2020-03/12.15.0.GA.html">Red Hat CodeReady Studio 12.15</a>
for Eclipse 2020-03 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.15 (2020-03) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2020-03/r/eclipse-ide-enterprise-java-developers">Eclipse 4.15 2020-03 JEE Bundle</a>
since then you get most of the dependencies preinstalled.</p>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was a new tooling for the Quarkus framework, improvements for container based development and bug fixing.
Eclipse 2020-03 itself has a lot of new cool stuff but let me highlight just a few updates in both Eclipse 2020-03 and JBoss Tools plugins that I think are worth mentioning.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="openshift-container-platform-4-4-support"><a class="anchor" href="#openshift-container-platform-4-4-support"></a>OpenShift Container Platform 4.4 support</h4>
<div class="paragraph">
<p>With the new OpenShift Container Platform (OCP) 4.4 now available, JBoss Tools
is compatible with this major release in a transparent way. Just define your
connection to your OCP 4.4 based cluster as you did before for an OCP 3 cluster,
and use the tooling !</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quarkus"><a class="anchor" href="#quarkus"></a>Quarkus</h3>
<div class="sect3">
<h4 id="language-support-for-kubernetes-openshift-s2i-and-docker-properties"><a class="anchor" href="#language-support-for-kubernetes-openshift-s2i-and-docker-properties"></a>Language support for Kubernetes, Openshift, S2i and Docker properties</h4>
<div class="paragraph">
<p>There is now completion, hover, documentation and validation for kubernetes.<strong>,
openshift.</strong>, s2i.<strong>, docker.</strong> properties</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus20.png" alt="quarkus20" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>kubernetes</code> prefix:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus21.png" alt="quarkus21" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>openshift</code> prefix:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus22.png" alt="quarkus22" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>s2i</code> prefix:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus23.png" alt="quarkus23" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="language-support-for-microprofile-rest-client-properties"><a class="anchor" href="#language-support-for-microprofile-rest-client-properties"></a>Language support for MicroProfile REST Client properties</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Likewise, there is now completion, hover, documentation and validation for the
MicroProfile properties from REST Client.</p>
</div>
<div class="paragraph">
<p>After registering a REST client using <code>@RegisterRestClient</code> like so:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">package org.acme;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
@RegisterRestClient
public interface MyServiceClient {
@GET
@Path("/greet")
Response greet();
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The related MicroProfile Rest config properties will have language feature support
(completion, hover, validation, etc.).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus24.png" alt="quarkus24" />
</div>
</div>
<div class="paragraph">
<p>Change the Java code so that the configuration key is changed:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">package org.acme;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
@RegisterRestClient(configKey = "myclient")
public interface MyServiceClient {
@GET
@Path("/greet")
Response greet();
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>and notice the code assist is changed accordingly:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus25.png" alt="quarkus25" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="language-support-for-microprofile-health"><a class="anchor" href="#language-support-for-microprofile-health"></a>Language support for MicroProfile Health</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Likewise, there is now completion, hover, documentation and validation for the
MicroProfile Health artifacts.</p>
</div>
<div class="paragraph">
<p>So if you have the following Health class:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">package org.acme;
import org.eclipse.microprofile.health.Health;
@Health
public class MyHealth {
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>you will get a validation error (as the class does not implement the <code>HealthCheck</code>
interface:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus26.png" alt="quarkus26" />
</div>
</div>
<div class="paragraph">
<p>Similarly, if you have a class that implements <code>HealthCheck</code> but is not annotated with <code>Health</code>, some workflow applies:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">package org.acme;
import org.eclipse.microprofile.health.HealthCheck;
import org.eclipse.microprofile.health.HealthCheckResponse;
public class MyHealth implements HealthCheck {
@Override
public HealthCheckResponse call() {
// TODO Auto-generated method stub
return null;
}
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>you will get a validation message (as the class is not annotated with <code>Health</code>
interface):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus27.png" alt="quarkus27" />
</div>
</div>
<div class="paragraph">
<p>As there are several ways to fix the problem, then several quick fixes are proposed.</p>
</div>
<div class="sect3">
<h4 id="better-extensions-reporting-in-the-quarkus-project-wizard"><a class="anchor" href="#better-extensions-reporting-in-the-quarkus-project-wizard"></a>Better extensions reporting in the Quarkus project wizard</h4>
<div class="paragraph">
<p>With the Quarkus extensions ecosystem growing, we improved information about extensions
in the Quarkus project wizard.</p>
</div>
<div class="paragraph">
<p>When you select an extension in the wizard, you will see the extension description in the
lower side of the wizard. If the extension has a guide on the Quarkus web site, a link
will also be displayed and clicking on that link will open the guide on your local web
browser.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus28.png" alt="quarkus28" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus29.png" alt="quarkus29" />
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.14.Final and Hibernate Tools version 5.4.14.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.16.Final and Hibernate Tools version 5.3.16.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="platform"><a class="anchor" href="#platform"></a>Platform</h3>
<div class="sect3">
<h4 id="views-dialogs-and-toolbar"><a class="anchor" href="#views-dialogs-and-toolbar"></a>Views, Dialogs and Toolbar</h4>
<div class="sect4">
<h5 id="hierarchical-project-layout-by-default-in-project-explorer"><a class="anchor" href="#hierarchical-project-layout-by-default-in-project-explorer"></a>Hierarchical project layout by default in Project Explorer</h5>
<div class="paragraph">
<p>To better handle multi-module, nested and hierarchical projects, the default project
layout in <strong>Project Explorer</strong> view has been changed from <em>Flat</em> to <em>Hierarchical</em>.</p>
</div>
<div class="paragraph">
<p>You can restore the layout to <em>Flat</em> using the view menu (⋮).</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="console-view-now-interprets-form-feed-and-vertical-tab-characters"><a class="anchor" href="#console-view-now-interprets-form-feed-and-vertical-tab-characters"></a>Console View now interprets form feed and vertical tab characters</h5>
<div class="paragraph">
<p>The interpretation of ASCII control characters in the <strong>Console View</strong> was extended to
recognize the characters: <code>\f</code> - form feed and <code>\v</code> - vertical tab (in languages that support it).</p>
</div>
<div class="paragraph">
<p>This feature is disabled by default. You can enable it on the <strong>Run/Debug > Console</strong>
preference page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/formfeed.png" alt="formfeed" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="termination-time-in-console-view"><a class="anchor" href="#termination-time-in-console-view"></a>Termination time in Console View</h5>
<div class="paragraph">
<p>The <strong>Console View</strong> label will now show the termination time of a process in addition
to the launch time.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/process-termination-time.png" alt="process termination time" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="preferences"><a class="anchor" href="#preferences"></a>Preferences</h4>
<div class="sect4">
<h5 id="preference-to-select-resource-rename-mode"><a class="anchor" href="#preference-to-select-resource-rename-mode"></a>Preference to select resource rename mode</h5>
<div class="paragraph">
<p>A preference has been added in the <strong>General</strong> preferences page, that allows you to
select the resource renaming mode in the <strong>Project Explorer</strong>: either open an inlined
text field or a dialog. By default, the inline rename mode is selected.</p>
</div>
<div class="paragraph">
<p>The preference can also be specified via product customization:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>org.eclipse.ui.workbench/RESOURCE_RENAME_MODE=inline</p>
</li>
<li>
<p>org.eclipse.ui.workbench/RESOURCE_RENAME_MODE=dialog</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Rename that would affect more than 1 resource is always performed with a dialog.
</td>
</tr>
</table>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/resource-rename-mode-preference.png" alt="resource rename mode preference" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="themes-and-styling"><a class="anchor" href="#themes-and-styling"></a>Themes and Styling</h4>
<div class="sect4">
<h5 id="welcome-screen-in-dark-theme"><a class="anchor" href="#welcome-screen-in-dark-theme"></a>Welcome screen in dark theme</h5>
<div class="paragraph">
<p>When Eclipse is in dark theme, the welcome screen also appears dark on macOS and Linux.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/dark_welcome.png" alt="dark welcome" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="general-updates"><a class="anchor" href="#general-updates"></a>General Updates</h4>
<div class="sect4">
<h5 id="interactive-performance"><a class="anchor" href="#interactive-performance"></a>Interactive performance</h5>
<div class="paragraph">
<p>Interactive performance has been further improved in this release.</p>
</div>
</div>
<div class="sect4">
<h5 id="redraw-is-turned-off-by-default-during-collapse-and-expand-operations-in-tree-viewer"><a class="anchor" href="#redraw-is-turned-off-by-default-during-collapse-and-expand-operations-in-tree-viewer"></a>Redraw is turned off by default during collapse and expand operations in tree viewer</h5>
<div class="paragraph">
<p>To improve interactive performance, redraw is turned off by default during the collapse
and expand operation of tree viewers. This significantly improves these operations
compared to drawing the updates synchronously.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="java-14-support"><a class="anchor" href="#java-14-support"></a>Java 14 Support</h4>
<div class="sect4">
<h5 id="java-14"><a class="anchor" href="#java-14"></a>Java 14</h5>
<div class="paragraph">
<p>Java™ 14 is available and Eclipse JDT supports Java 14 for the Eclipse 4.15 release.</p>
</div>
<div class="paragraph">
<p>The release notably includes the following Java 14 features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>JEP 361: Switch Expressions (Standard).</p>
</li>
<li>
<p>JEP 359: Records (Preview).</p>
</li>
<li>
<p>JEP 368: Text Blocks (Second Preview).</p>
</li>
<li>
<p>JEP 305: Pattern Matching for Instanceof (Preview).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Please note that preview option should be on for preview language features.
For an informal introduction of the support, please refer to <a href="https://wiki.eclipse.org/Java14/Examples">Java 14 Examples wiki</a>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="subword-code-completion"><a class="anchor" href="#subword-code-completion"></a>Subword code completion</h5>
<div class="paragraph">
<p>Content Assist now supports subword patterns, similar to Eclipse Code Recommenders
and other IDEs. For example, completing on <code>addmouselistener</code> proposes results
like <code>addMouseMoveListener</code> and <code>addMouseWheelListener</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/subword-code-completion.png" alt="subword code completion" />
</div>
</div>
<div class="paragraph">
<p>This feature can be enabled using the <strong>Show subword matches</strong> option on the
<strong>Java > Editor > Content Assist</strong> preference page.</p>
</div>
</div>
<div class="sect4">
<h5 id="subtype-code-completion"><a class="anchor" href="#subtype-code-completion"></a>Subtype code completion</h5>
<div class="paragraph">
<p>Content Assist will prioritize displaying constructor completions whose declaring type
inherits from the expected return type within the completion context.</p>
</div>
<div class="paragraph">
<p>For example, completing on :</p>
</div>
<div class="paragraph">
<p><code>Queue<String> queue = new L</code></p>
</div>
<div class="paragraph">
<p>prioritizes constructors for <code>LinkedBlockingQueue</code>, <code>LinkedBlockingDeQueue</code>
and <code>LinkedList</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/subtype-code-completion.png" alt="subtype code completion" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="option-for-non-blocking-java-completion"><a class="anchor" href="#option-for-non-blocking-java-completion"></a>Option for non-blocking Java completion</h5>
<div class="paragraph">
<p>Code completion in the Java editor can now be run in a separate non-UI thread
to prevent UI freezes in case of long computations. To enable this non-blocking
computation, go to <strong>Preferences > Java > Editor > Content Assist > Advanced</strong>
and check <strong>Do not block UI Thread while computing completion proposals</strong>
preference. This option is currently disabled by default.</p>
</div>
<div class="paragraph">
<p>Non-blocking completion is useful when completion proposals are long to compute,
as it allows you to type or use other parts of the IDE in the meantime.</p>
</div>
<div class="paragraph">
<p>Some completion participants may prevent this option from being effective (typically
if the Java completion extension doesn’t declare <code>requiresUIThread="false"</code>),
so the UI thread may still be used even if this option is set.</p>
</div>
</div>
<div class="sect4">
<h5 id="quick-fix-to-wrap-optional-statements"><a class="anchor" href="#quick-fix-to-wrap-optional-statements"></a>Quick fix to wrap Optional statements</h5>
<div class="paragraph">
<p>A quick fix has been added to wrap an <code>Optional</code> statement.</p>
</div>
<div class="paragraph">
<p>The options for a primitive statement are: <code>Optional.empty()</code> and <code>Optional.of()</code>.
Type statements also have <code>Optional.ofNullable()</code>.</p>
</div>
<div class="paragraph">
<p>Example for type objects:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/wrapOptional1.png" alt="wrapOptional1" />
</div>
</div>
<div class="paragraph">
<p>Selecting <strong>Wrap with nullable Optional</strong> for type object results in:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/wrapOptional4.png" alt="wrapOptional4" />
</div>
</div>
<div class="paragraph">
<p>Example for primitive:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/wrapOptional2.png" alt="wrapOptional2" />
</div>
</div>
<div class="paragraph">
<p>Selecting <strong>Wrap with Optional</strong> for primitive results in:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/wrapOptional3.png" alt="wrapOptional3" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="simplify-functional-interface-instances"><a class="anchor" href="#simplify-functional-interface-instances"></a>Simplify functional interface instances</h5>
<div class="paragraph">
<p>A new clean up has been added that simplifies the lambda expression and the method
reference syntax and is enabled only for Java 8 and higher.</p>
</div>
<div class="paragraph">
<p>The clean up removes parenthesis for a single untyped parameter, return statement
for a single expression and brackets for a single statement. It replaces a lambda
expression by a creation or a method reference when possible.</p>
</div>
<div class="paragraph">
<p>To select the clean up, invoke <strong>Source > Clean Up…</strong>, use a custom profile, and on
the <strong>Configure…</strong> dialog select <strong>Simplify lambda expression and method reference syntax</strong>
on the <strong>Code Style</strong> tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/lambda-expression-enhancements.png" alt="lambda expression enhancements" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/lambda-expression-enhancements-before.png" alt="lambda expression enhancements before" />
</div>
</div>
<div class="paragraph">
<p>You get this after the clean up:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/lambda-expression-enhancements-after.png" alt="lambda expression enhancements after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="directly-use-map-method"><a class="anchor" href="#directly-use-map-method"></a>Directly use Map method</h5>
<div class="paragraph">
<p>Some map manipulations are unnecessarily verbose. The new cleanup option <strong>Operate
on Maps</strong> directly calls methods on a map instead of calling the same methods on the
key set or the values.</p>
</div>
<div class="paragraph">
<p>Beware! If you create Map implementations that don’t follow the <code>Map</code> specification,
this cleanup may break the behavior (a <code>size()</code> method that changes the values,
an iterator that destroys the items…).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/map-method-preferences.png" alt="map method preferences" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/map-method-before.png" alt="map method before" />
</div>
</div>
<div class="paragraph">
<p>You get this after the clean up:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/map-method-after.png" alt="map method after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="uppercase-for-long-literal-suffix"><a class="anchor" href="#uppercase-for-long-literal-suffix"></a>Uppercase for long literal suffix</h5>
<div class="paragraph">
<p>A new cleanup option <strong>Use uppercase for long literal suffix</strong> has been added. It will rewrite
long literals like <code>101l</code> with an uppercase L like <code>101L</code> to avoid ambiguity.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/uppercase-literal-suffix.png" alt="uppercase literal suffix" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="surround-with-try-with-resources-block"><a class="anchor" href="#surround-with-try-with-resources-block"></a>Surround with "try-with-resources" block</h5>
<div class="paragraph">
<p>Corresponding to the quick fix which will surround a selection with a "try-with-resources"
block, a new action has been added to the <strong>Surround With</strong> menu.</p>
</div>
<div class="paragraph">
<p>For example, selecting the lines as shown:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/surroundwithresources1.png" alt="surroundwithresources1" />
</div>
</div>
<div class="paragraph">
<p>and right-clicking and selecting <strong>Surround With → Try-with-resources Block</strong></p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/surroundwithresources.png" alt="surroundwithresources" />
</div>
</div>
<div class="paragraph">
<p>results in:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/surroundwithresources2.png" alt="surroundwithresources2" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="quick-fixes-for-module-info-javadoc"><a class="anchor" href="#quick-fixes-for-module-info-javadoc"></a>Quick fixes for module-info Javadoc</h5>
<div class="paragraph">
<p>Quick fixes have been added to fix the missing and duplicate <code>@provides</code> and <code>@uses</code> Javadoc
tags in a <code>module-info</code> file.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/modulequickfix.png" alt="modulequickfix" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="no-more-spurious-semicolon-from-import-completion"><a class="anchor" href="#no-more-spurious-semicolon-from-import-completion"></a>No more spurious semicolon from import completion</h5>
<div class="paragraph">
<p>Almost 18 years ago, it was reported that completion for imports adds an unnecessary
semicolon if one already exists (like when changing an existing import). Now this extra
semicolon is no longer inserted.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-compiler"><a class="anchor" href="#java-compiler"></a>Java Compiler</h4>
<div class="sect4">
<h5 id="warn-when-legacy-code-can-taint-null-checked-values"><a class="anchor" href="#warn-when-legacy-code-can-taint-null-checked-values"></a>Warn when legacy code can taint null-checked values</h5>
<div class="paragraph">
<p>When using null-annotations for advanced null analysis, it is inherently tricky
to combine your code with "legacy" code that has no null annotations and has not been
blessed by such analysis.</p>
</div>
<div class="paragraph">
<p>Previously, Eclipse would only warn you when you <em>obtain</em> a dubious value <em>from</em> a
legacy API, but it would keep silent in the opposite case: <em>passing</em> a value of an
annotated type <em>into</em> legacy API. Still in specific situations this can cause a
NullPointerException to be thrown in your null-checked code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/null-into-nonnull-list.png" alt="null into nonnull list" />
</div>
</div>
<div class="paragraph">
<p>The console shows an exception thrown from within your checked main method (see
the class-level <code>@NonNullByDefault</code>). It also shows the new warning, which Eclipse
raises to alert you of this danger.</p>
</div>
<div class="paragraph">
<p><em>Hint</em>: The shown code assumes the list <code>names</code> to have type <code>List<@NonNull String></code>,
but the legacy method <code>Legacy.printNames()</code> succeeds to taint this list by inserting
a <code>null</code> element. This goes unnoticed because that method views the list has having type
<code>List<String></code>, with no nullness constraint on the type argument.</p>
</div>
<div class="paragraph">
<p>By default this problem is raised at level <code>info</code>, but the severity can be configured in the compiler settings:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/configure-null-vs-legacy-problem.png" alt="configure null vs legacy problem" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="improved-resource-leak-analysis"><a class="anchor" href="#improved-resource-leak-analysis"></a>Improved Resource leak analysis</h5>
<div class="paragraph">
<p>Resource leak analysis has been improved in several ways.</p>
</div>
<div class="paragraph">
<p>Most importantly, the analysis now consistently considers resources (=values of type
<code>AutoCloseable</code>) which are acquired using a method call, where previously under
some circumstances resource allocation got unnoticed if it was wrapped in a factory
method, like in the following example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">makePrintWriter("/tmp/log.txt").printf("%d", 42);
// a PrintWriter is never closed!</code></pre>
</div>
</div>
<div class="paragraph">
<p>Second, resource leak analysis now leverages knowledge about well-known resource classes
that support fluent programming, i.e., instance methods which return <code>this</code> to enable
chains of method calls. Where a naive analysis could consider the method result
as a new resource coming into scope, special knowledge about these classes informs
the analysis that it is one and the same resource. This concerns the following
system classes:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><strong>from java.io</strong></dt>
<dd>
<p>CharArrayWriter, Console, PrintStream, PrintWriter, StringWriter, Writer</p>
</dd>
<dt class="hdlist1"><strong>from java.nio.channels</strong></dt>
<dd>
<p>AsynchronousFileChannel, AsynchronousServerSocketChannel, FileChannel, NetworkChannel, SeekableByteChannel, SelectableChannel, Selector, ServerSocketChannel</p>
</dd>
<dt class="hdlist1"><strong>from java.util</strong></dt>
<dd>
<p>Formatter</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>The following example is now understood to be safe, because analysis understands
that the resource returned by <code>append()</code> is the same as the initial <code>pw</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">PrintWriter pw = new PrintWriter("/tmp/log.txt");
pw.printf("%d", 42).append(" is the answer").close();</code></pre>
</div>
</div>
<div class="paragraph">
<p>Generally, resource leak analysis was made more precise regarding several specific situations.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-formatter"><a class="anchor" href="#java-formatter"></a>Java Formatter</h4>
<div class="sect4">
<h5 id="java-formatter-application-requires-a-workspace"><a class="anchor" href="#java-formatter-application-requires-a-workspace"></a>Java formatter application requires a workspace</h5>
<div class="paragraph">
<p>The Java formatter application will provide a sensible error message if a workspace is
required but not provided (<code>-data</code> command line option). This also enables the <code>-help</code>
option to be run on the formatter without a workspace specified.</p>
</div>
<div class="paragraph">
<p>A new bundle services the <code>org.eclipse.jdt.core.JavaCodeFormatter</code> application.
This new bundle is part of the JDT feature. Users who are not using the JDT feature to
define their set of bundles will need to add
<code>org.eclipse.jdt.core.formatterapp</code> to their set of bundles.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug-2"><a class="anchor" href="#debug-2"></a>Debug</h4>
<div class="sect4">
<h5 id="functional-debug-expressions"><a class="anchor" href="#functional-debug-expressions"></a>Functional debug expressions</h5>
<div class="paragraph">
<p>Lambda expressions and method references are now supported in debug expressions,
such as in the <strong>Expressions view</strong> and in breakpoint condition expressions.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.15/images/debug-functional-expressions.png" alt="debug functional expressions" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="jdt-developers"><a class="anchor" href="#jdt-developers"></a>JDT Developers</h4>
<div class="sect4">
<h5 id="new-bundle-org-eclipse-jdt-core-formatterapp"><a class="anchor" href="#new-bundle-org-eclipse-jdt-core-formatterapp"></a>New bundle org.eclipse.jdt.core.formatterapp</h5>
<div class="paragraph">
<p>The entry point of the <code>org.eclipse.jdt.core.JavaCodeFormatter</code> application has been moved
to a new bundle, <code>org.eclipse.jdt.core.formatterapp</code>.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.15.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.15.0 and Red Hat CodeReady Studio 12.15 out we are already working on the next release for Eclipse 2020-06.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.15.0.am1.htmlJBoss Tools 4.15.0.AM1 for Eclipse 2020-032020-04-28T06:19:40+00:002020-03-31T00:00:00+00:00jeffmaury
Happy to announce 4.15.0.AM1 (Developer Milestone 1) build for Eclipse 2020-03.
Downloads available at JBoss Tools 4.15.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
Please note that a regression has been found in the Fuse Tools. This is going
to be fixed for the release (4.15.0.Final). Please find more information in this
ticket.
Quarkus Tools
Language support for Kubernetes, Openshift, S2i and Docker properties
There is now completion, hover, documentation and validation for kubernetes.,
openshift., s2i., docker. properties
Enter kubernetes prefix:
Enter openshift prefix:
Enter s2i prefix:
Language support for MicroProfile REST Client properties
Likewise, there is now completion, hover, documentation and validation for the
MicroProfile properties from REST...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.15.0.AM1 (Developer Milestone 1) build for Eclipse 2020-03.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2020-03/4.15.0.AM1.html">JBoss Tools 4.15.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.15.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="paragraph">
<p>Please note that a regression has been found in the Fuse Tools. This is going
to be fixed for the release (4.15.0.Final). Please find more information in this
<a href="https://issues.redhat.com/browse/FUSETOOLS-3333">ticket</a>.</p>
</div>
<div class="sect2">
<h3 id="quarkus-tools"><a class="anchor" href="#quarkus-tools"></a>Quarkus Tools</h3>
<div class="sect3">
<h4 id="language-support-for-kubernetes-openshift-s2i-and-docker-properties"><a class="anchor" href="#language-support-for-kubernetes-openshift-s2i-and-docker-properties"></a>Language support for Kubernetes, Openshift, S2i and Docker properties</h4>
<div class="paragraph">
<p>There is now completion, hover, documentation and validation for kubernetes.<strong>,
openshift.</strong>, s2i.<strong>, docker.</strong> properties</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/quarkus20.png" alt="quarkus20" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>kubernetes</code> prefix:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus21.png" alt="quarkus21" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>openshift</code> prefix:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus22.png" alt="quarkus22" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>s2i</code> prefix:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus23.png" alt="quarkus23" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="language-support-for-microprofile-rest-client-properties"><a class="anchor" href="#language-support-for-microprofile-rest-client-properties"></a>Language support for MicroProfile REST Client properties</h4>
<div class="paragraph">
<p>Likewise, there is now completion, hover, documentation and validation for the
MicroProfile properties from REST Client.</p>
</div>
<div class="paragraph">
<p>After registering a REST client using <code>@RegisterRestClient</code> like so:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">package org.acme;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
@RegisterRestClient
public interface MyServiceClient {
@GET
@Path("/greet")
Response greet();
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The related MicroProfile Rest config properties will have language feature support
(completion, hover, validation, etc.).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus24.png" alt="quarkus24" />
</div>
</div>
<div class="paragraph">
<p>Change the Java code so that the configuration key is changed:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">package org.acme;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
@RegisterRestClient(configKey = "myclient")
public interface MyServiceClient {
@GET
@Path("/greet")
Response greet();
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>and notice the code assist is changed accordingly:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus25.png" alt="quarkus25" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="language-support-for-microprofile-health"><a class="anchor" href="#language-support-for-microprofile-health"></a>Language support for MicroProfile Health</h4>
<div class="paragraph">
<p>Likewise, there is now completion, hover, documentation and validation for the
MicroProfile Health artifacts.</p>
</div>
<div class="paragraph">
<p>So if you have the following Health class:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">package org.acme;
import org.eclipse.microprofile.health.Health;
@Health
public class MyHealth {
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>you will get a validation error (as the class does not implement the <code>HealthCheck</code>
interface:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus26.png" alt="quarkus26" />
</div>
</div>
<div class="paragraph">
<p>Similarly, if you have a class that implements <code>HealthCheck</code> but is not annotated with <code>Health</code>, some workflow applies:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">package org.acme;
import org.eclipse.microprofile.health.HealthCheck;
import org.eclipse.microprofile.health.HealthCheckResponse;
public class MyHealth implements HealthCheck {
@Override
public HealthCheckResponse call() {
// TODO Auto-generated method stub
return null;
}
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>you will get a validation error (as the class is not annotated with <code>Health</code>
interface:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus27.png" alt="quarkus27" />
</div>
</div>
<div class="paragraph">
<p>As there are several ways to fix the problem, then several quick fixes are proposed.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-19-server-adapter"><a class="anchor" href="#wildfly-19-server-adapter"></a>Wildfly 19 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 19. It adds support for
Java EE 8, Jakarta EE 8 and Microprofile 3.3.</p>
</div>
<div class="paragraph">
<p>Please note that while creating a Wildfly 19 server adapter, you may get a warning.
This is going to be fixed for the release.</p>
</div>
<p>Related JIRA: <a href="https://issues.jboss.org/browse/JBIDE-27092">JBIDE-27092</a></p>
</div>
<div class="sect3">
<h4 id="eap-7-3-server-adapter"><a class="anchor" href="#eap-7-3-server-adapter"></a>EAP 7.3 Server Adapter</h4>
<div class="paragraph">
<p>The server adapter has been adapted to work with EAP 7.3.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.14.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2019-122020-03-19T13:04:43+00:002020-03-17T00:00:00+00:00jeffmaury
JBoss Tools 4.14.0 and
Red Hat CodeReady Studio 12.14
for Eclipse 2019-12 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.14 (2019-12) but we recommend
using the latest Eclipse 4.14 2019-12 JEE Bundle
since then you get most of the dependencies preinstalled.
Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2019-12/4.14.0.Final.html">JBoss Tools 4.14.0</a> and
<a href="https://tools.jboss.org/downloads/devstudio/2019-12/12.14.0.GA.html">Red Hat CodeReady Studio 12.14</a>
for Eclipse 2019-12 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.14 (2019-12) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2019-12/r/eclipse-ide-enterprise-java-developers">Eclipse 4.14 2019-12 JEE Bundle</a>
since then you get most of the dependencies preinstalled.</p>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was a new tooling for the Quarkus framework, improvements for container based development and bug fixing.
Eclipse 2019-12 itself has a lot of new cool stuff but let me highlight just a few updates in both Eclipse 2019-12 and JBoss Tools plugins that I think are worth mentioning.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="openshift-container-platform-4-3-support"><a class="anchor" href="#openshift-container-platform-4-3-support"></a>OpenShift Container Platform 4.3 support</h4>
<div class="paragraph">
<p>With the new OpenShift Container Platform (OCP) 4.3 now available (see this
<a href="https://blog.openshift.com/introducing-red-hat-openshift-4-3-to-enhance-kubernetes-security/" target="_blank" rel="noopener">article</a>),
JBoss Tools is compatible with
this major release in a transparent way. Just define your connection to your
OCP 4.3 based cluster as you did before for an OCP 3 cluster, and use the tooling !</p>
</div>
</div>
<div class="sect3">
<h4 id="new-openshift-application-explorer-view"><a class="anchor" href="#new-openshift-application-explorer-view"></a>New OpenShift Application Explorer view</h4>
<div class="paragraph">
<p>A new OpenShift Application Explorer window has been added in addition to the OpenShift Explorer. It is based on
<a href="https://github.com/openshift/odo/" target="_blank" rel="noopener">OpenShift Do</a>. It provides a different and simplified
user experience allowing easy and rapid feedback through
inner loop and debugging.</p>
</div>
<div class="paragraph">
<p>Let’s see it in action.</p>
</div>
<div class="sect4">
<h5 id="opening-the-openshift-application-explorer-view"><a class="anchor" href="#opening-the-openshift-application-explorer-view"></a>Opening the OpenShift Application Explorer view</h5>
<div class="paragraph">
<p>If you opened a brand new workspace, you should see the
OpenShift Application Explorer view in the list of views
available on the botton part of the screen:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer.png" alt="application explorer" width="600" />
</div>
</div>
<div class="paragraph">
<p>If you don’t see the view being listed, you can open it
through the <code><code>Window -→ Show View -→ Other</code></code> menu,
enter <code><code>open</code></code> in the filter text box and then select
<code><code>OpenShift Application Explorer</code></code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer1.png" alt="application explorer1" width="600" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer2.png" alt="application explorer2" width="600" />
</div>
</div>
<div class="paragraph">
<p>Expanding the root node will display the list of projects
available on the cluster:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer3.png" alt="application explorer3" width="600" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="java-based-micro-service"><a class="anchor" href="#java-based-micro-service"></a>Java based micro service</h5>
<div class="paragraph">
<p>We will show how to deploy a Java based microservice and
how to use the various features. But we first need to load
the component source code in our workspace. Thanks to the
launcher wizard, we can do that easilly. Try <code><code>Ctrl+N</code></code>
and select the <code><code>Launcher project</code></code> wizard:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer4.png" alt="application explorer4" width="600" />
</div>
</div>
<div class="paragraph">
<p>Then click the <code><code>Next</code></code> button:</p>
</div>
<div class="paragraph">
<p>Select <code><code>rest-http</code></code> in the <code><code>Mission</code></code> field,
<code><code>vert.x community</code></code> in the <code><code>Runtime</code></code> field,
<code><code>myservice</code></code> in the <code><code>Project name</code></code> field:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer5.png" alt="application explorer5" width="600" />
</div>
</div>
<div class="paragraph">
<p>Then click the <code><code>Finish</code></code> button: a new project will be
added to your workspace. Once the dependencies resolution
has been completed, we’re ready to start playing with the
cluster.</p>
</div>
<div class="sect5">
<h6 id="create-the-component"><a class="anchor" href="#create-the-component"></a>Create the component</h6>
<div class="paragraph">
<p>Now that we have the source code, we can create the component. From the OpenShift Application Explorer view,
right select the project (myproject), and the click the
<code><code>New → Component</code></code> menu:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer6.png" alt="application explorer6" width="600" />
</div>
</div>
<div class="paragraph">
<p>Enter <code><code>myservice</code></code> in the <code><code>Name</code></code> field, click the <code><code>Browse</code></code> button to select the project we have just created, select <code><code>java</code></code> in the
<code><code>Component type</code></code> field, select <code><code>8</code></code> in the <code><code>Component version</code></code> field,
enter <code><code>myapp</code></code> in the <code><code>Application</code></code> field and uncheck the
<code><code>Push after create</code></code> check-box:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer7.png" alt="application explorer7" width="600" />
</div>
</div>
<div class="paragraph">
<p>Then click the <code><code>Finish</code></code> button. The component will be created and expanding
the project node will now show the application that contains our component:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer8.png" alt="application explorer8" width="600" />
</div>
</div>
<div class="paragraph">
<p>Expanding the application will now display our component:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer9.png" alt="application explorer9" width="600" />
</div>
</div>
<div class="paragraph">
<p>The component has been created but it is not yet deployed on the cluster (as we
unchecked the <code><code>Push after create</code></code> check-box. In order to deploy it,right
select the component and click the <code><code>Push</code></code> menu. The deployment will be
created and then a build will be launched. A new window will be created in the
<code><code>Console</code></code> view. After a while, you should see the following output:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer10.png" alt="application explorer10" width="600" />
</div>
</div>
<div class="paragraph">
<p>The component is now deployed to the cluster but we cannot access it as we need
to define an URL to access it externally. Right select the component and click
the <code><code>New → URL</code></code> menu:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer11.png" alt="application explorer11" width="600" />
</div>
</div>
<div class="paragraph">
<p>Enter <code><code>url1</code></code> in the <code><code>Name</code></code> field and select <code><code>8080</code></code> in the <code><code>Port</code></code>
field:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer12.png" alt="application explorer12" width="600" />
</div>
</div>
<div class="paragraph">
<p>Then click on the <code><code>Finish</code></code> button. The URL is created but not on the cluster,
so we need to push again the component so that the local configuration is
synchronized with the configuration on the cluster. The <code><code>Console</code></code> window
will display a message claiming that a push is now required:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer13.png" alt="application explorer13" width="600" />
</div>
</div>
<div class="paragraph">
<p>So push the component again (<code><code>component → Push</code></code>).</p>
</div>
<div class="paragraph">
<p>Let’s check that we can now access the service. Expand the component level so
that we can see the URL we have just created:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer14.png" alt="application explorer14" width="600" />
</div>
</div>
<div class="paragraph">
<p>Right select the URL and click the <code><code>Open in Browser</code></code> menu, you should see the new browser window:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer15.png" alt="application explorer15" width="600" />
</div>
</div>
<div class="paragraph">
<p>You can test the service: enter <code><code>demo</code></code> in the text box and click the
<code><code>Invoke</code></code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer16.png" alt="application explorer16" width="600" />
</div>
</div>
</div>
<div class="sect5">
<h6 id="feedback-loop"><a class="anchor" href="#feedback-loop"></a>Feedback loop</h6>
<div class="paragraph">
<p>We will now see how we can get fast feedback on code changes. So let’s modify the
application code and see how we can synchronize the changes to the cluster.</p>
</div>
<div class="paragraph">
<p>In the <code><code>Project Explorer</code></code> view, locate the <code><code>HttpApplication.java</code></code> file:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer17.png" alt="application explorer17" width="600" />
</div>
</div>
<div class="paragraph">
<p>Double click on the file to open the editor:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer18.png" alt="application explorer18" width="600" />
</div>
</div>
<div class="paragraph">
<p>On line 14, change the line:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java"> protected static final String template = "Hello, %s!";</code></pre>
</div>
</div>
<div class="paragraph">
<p>to</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java"> protected static final String template = "Hello, %s!, we modified the code";</code></pre>
</div>
</div>
<div class="paragraph">
<p>and press the <code><code>Ctrl+S</code></code> key in order to save the file.</p>
</div>
<div class="paragraph">
<p>For the OpenShift Application Explorer, right click the component (myservice) and
click the <code><code>Push</code></code> menu to send the changes to the cluster: the component will be
built again on the cluster with the next changes and after a few seconds, it will be
available again:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer19.png" alt="application explorer19" width="600" />
</div>
</div>
<div class="paragraph">
<p>Select the browser window again, enter <code><code>demo1</code></code> in the textbox (we need to change
the value we used before in order to make sure cache is not involved) and click the
<code><code>Invoke</code></code> button again:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer20.png" alt="application explorer20" width="600" />
</div>
</div>
<div class="paragraph">
<p>We’ve seen that, through a sequence of code modification(s) followed by a synchronize
action (push) to the cluster, we can get a very fast feedback. If you don’t want to
manually synchronize the the cluster (push), you can opt to automatically synchronize
to the cluster with the <code><code>Watch</code></code> action: each time a code modification is done locally
on your workstation, a new build will be automatically launched on the cluster.</p>
</div>
</div>
<div class="sect5">
<h6 id="going-further-debug-your-application-on-the-cluster"><a class="anchor" href="#going-further-debug-your-application-on-the-cluster"></a>Going further: debug your application on the cluster</h6>
<div class="paragraph">
<p>Testing an application through code changes is a great achievement so far but it
may be difficult for complex applications where we need to understand how the code behaves
without the need to use the UI. That’s why the next step is to be able to debug our application live on the cluster.</p>
</div>
<div class="paragraph">
<p>The new OpenShift Application Explorer allow such a scenario. We will first set up a breakpoint
in our application code. Select again the <code><code>HttpApplication.java</code></code> file and scroll
down to the <code><code>greeting</code></code> method:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer21.png" alt="application explorer21" width="600" />
</div>
</div>
<div class="paragraph">
<p>On line 41, double click in the left ruler column so that a breakpoint is set:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer22.png" alt="application explorer22" width="600" />
</div>
</div>
<div class="paragraph">
<p>We are now ready to debug our application. In order to do that, we need to launch
a local (Java in our case) debugger that will be connected to our application on the
cluster. This is what the <code><code>Debug</code></code> action is doing: right select the component
(myservice) and click the <code><code>Debug</code></code> menu: you will see that port forwarding has been
started so that our local (Java) debugger can connect to the remote Java virtual
machine:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer23.png" alt="application explorer23" width="600" />
</div>
</div>
<div class="paragraph">
<p>and then a local (Java) debugger is launched and connected to that port. Let’s check now that we can debug our application:</p>
</div>
<div class="paragraph">
<p>Select the browser window again, enter <code><code>demo2</code></code> in the textbox (we need to change
the value we used before in order to make sure cache is not involved) and click the
<code><code>Invoke</code></code> button again: as our breakpoint is hit, you will be asked if you want to
switch to the <code><code>Debug</code></code> perspective (this may not be displayed if you previously
selected the <code><code>Remember my decision</code></code> checkbox:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer24.png" alt="application explorer24" width="600" />
</div>
</div>
<div class="paragraph">
<p>Click the <code><code>Switch</code></code> button and you will see the <code><code>Debug</code></code> perspective:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/application-explorer25.png" alt="application explorer25" width="600" />
</div>
</div>
<div class="paragraph">
<p>You are now debugging a Java component running on a remote cluster just like it was
running locally on your workstation. Please note that we demoed this feature using
a Java based component but we also support the same feature to NodeJS based components.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quarkus"><a class="anchor" href="#quarkus"></a>Quarkus</h3>
<div class="paragraph">
<p>Starting with this release, we’ve added a new Quarkus tooling for applications built
on top of the Supersonic Subatomic Java <a href="https://quarkus.io">Quarkus</a> framework.</p>
</div>
<div class="sect3">
<h4 id="quarkus-project-creation-wizard"><a class="anchor" href="#quarkus-project-creation-wizard"></a>Quarkus project creation wizard</h4>
<div class="paragraph">
<p>A new wizard has been added to create a new Quarkus application project in your workspace.
In order to launch it, first enter Ctrl+N to get the list of available wizards</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus1.png" alt="quarkus1" />
</div>
</div>
<div class="paragraph">
<p>In the filter text box, enter the <code><code>qu</code></code> characters to filter the list of wizards:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus2.png" alt="quarkus2" />
</div>
</div>
<div class="paragraph">
<p>Select the <strong>Quarkus Project</strong> wizard and click the <strong>Next</strong> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus3.png" alt="quarkus3" />
</div>
</div>
<div class="paragraph">
<p>The <strong>Project type</strong> combo allows you to choose between Maven or Gradle tool used to
manage your project. We’ll go with Maven for this tutorial.</p>
</div>
<div class="paragraph">
<p>Enter a project name (we will use code-with-quarkus) and click the <strong>Next</strong> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus4.png" alt="quarkus4" />
</div>
</div>
<div class="paragraph">
<p>This dialog allows you to choose various parameters for you project, like the project
coordinates (group id, artifact id and version) along with the base REST endpoint information.
We’ll use the default so click on the <strong>Next</strong> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus5.png" alt="quarkus5" />
</div>
</div>
<div class="paragraph">
<p>This dialog allows to select which Quarkus extensions you want to add to your project.
The extensions are grouped by categories, so first select a specific category in
the left table. We will choose the <strong>Web</strong> one:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus6-1.png" alt="quarkus6 1" />
</div>
</div>
<div class="paragraph">
<p>You should have noticed that the middle table has been updated. In order to add an extension,
double click on the extension in the middle table. We will add <strong>RESTEasy JAX-RS</strong> and
<strong>RESTEasy Qute</strong> (a templating engine):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus7-1.png" alt="quarkus7 1" />
</div>
</div>
<div class="paragraph">
<p>You should have noticed that the extensions that you double clicked on are now being added
to the right table. If you want to remove an extension from the list of selected ones,
double click again either in the center table or in the right table.</p>
</div>
<div class="paragraph">
<p>We are now all set so click on the <strong>Finish</strong> button to launch the project creation.
The project creation job is then launched, dependencies are being retrieved and
after a while, the new project will appear in the <strong>Project Explorer</strong> window:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus8.png" alt="quarkus8" />
</div>
</div>
<div class="paragraph">
<p>We have successfully created our first Quarkus project. Let’s see now how we can launch this application and debug it.</p>
</div>
</div>
<div class="sect3">
<h4 id="running-the-quarkus-application"><a class="anchor" href="#running-the-quarkus-application"></a>Running the Quarkus application</h4>
<div class="paragraph">
<p>Running a Quarkus application can be done from the workbench Run configurations.
Select the <strong>Run → Run Configurations…</strong> menu to display the dialog allowing to create a Run configuration.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus9.png" alt="quarkus9" />
</div>
</div>
<div class="paragraph">
<p>Scroll down until the <strong>Quarkus Application</strong> is visible and select it:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus10-1.png" alt="quarkus10 1" />
</div>
</div>
<div class="paragraph">
<p>Click on the <strong>New configuration</strong> button (top left):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus11-1.png" alt="quarkus11 1" />
</div>
</div>
<div class="paragraph">
<p>A workspace project needs to be associated with the configuration so click on the <strong>Browse</strong>
button to see the project selection dialog:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus12-1.png" alt="quarkus12 1" />
</div>
</div>
<div class="paragraph">
<p>As the workspace contains a single project, it is automatically selected and we can click
on the <strong>OK</strong> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus13-1.png" alt="quarkus13 1" />
</div>
</div>
<div class="paragraph">
<p>The configuration is now ready to be used. So let’s start our Quarkus application by clicking
on the <strong>Run</strong> button:</p>
</div>
<div class="paragraph">
<p>You should see a new Console being displayed.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus14.png" alt="quarkus14" />
</div>
</div>
<div class="paragraph">
<p>The application is being built and after a while, it will be started:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus15.png" alt="quarkus15" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="debugging-the-quarkus-application"><a class="anchor" href="#debugging-the-quarkus-application"></a>Debugging the Quarkus application</h4>
<div class="paragraph">
<p>Debugging a Quarkus application is just a simple as launching the previous configuration
we’ve just created in Debug.
You just need to open the <strong>Run → Debug Configurations…</strong>. menu and click on the <strong>Debug</strong> button.</p>
</div>
<div class="paragraph">
<p>It will start the Quarkus application like in the previous paragraph but also connect
a remote JVM debug configuration to your running Quarkus application. So if you have set breakpoints
in your application source files, the execution will automatically stops there.</p>
</div>
</div>
<div class="sect3">
<h4 id="application-properties-content-assist"><a class="anchor" href="#application-properties-content-assist"></a>application.properties content assist</h4>
<div class="paragraph">
<p>Every Quarkus application is configured through a configuration called
<strong>application.properties</strong>.</p>
</div>
<div class="paragraph">
<p>The content of this configuration file is dependent of the set of Quarkus
extensions that your application is using. Some settings are mandatory, some others
are not and the possible values are specific to the nature of the setting:
boolean, integer, limited set of values (enumerations).</p>
</div>
<div class="paragraph">
<p>So, as a developer, you need to look at various guides and documentations
(the core Quarkus and the extension specific ones)</p>
</div>
<div class="paragraph">
<p>So Quarkus Tools provides content assist on those specific files that:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>validates the content of the application.properties files</p>
</li>
<li>
<p>provides you with the possible setting names and values</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Let’s see it in action.</p>
</div>
<div class="paragraph">
<p>Go to <strong>src/main/resources/application.properties</strong> in the project and right click and select <strong>Open With → Generic Text Editor</strong>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus16.png" alt="quarkus16" />
</div>
</div>
<div class="paragraph">
<p>Go the third line of the file and invoke code completion (Ctrl + Space):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus17.png" alt="quarkus17" />
</div>
</div>
<div class="paragraph">
<p>For each setting, a documentation is displayed when you mouse over the setting.
Let try to add <strong>quarkus.http.port</strong> to the file and mouse over this name:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus18.png" alt="quarkus18" />
</div>
</div>
<div class="paragraph">
<p>If we enter a wrong value (false instead of a numeric value), then the error will be highlighted:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus19.png" alt="quarkus19" />
</div>
</div>
<div class="paragraph">
<p>This is the first set of features that will be integration into the next version
of JBoss Tools. We encourage you to used it and if you are missing features and/or enhancements, don’t hesitate to report them here: <a href="https://issues.redhat.com/issues/?jql=project%20%3D%20JBIDE%20AND%20component%20%3D%20quarkus%20and%20status%20!%3D%20Closed%20and%20status%20!%3D%20Resolved%20">JBoss Tools issue tracker</a></p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.12.Final and Hibernate Tools version 5.4.12.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.15.Final and Hibernate Tools version 5.3.15.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="deprecation"><a class="anchor" href="#deprecation"></a>Deprecation</h3>
<div class="paragraph">
<p>The Forge, Java Server Tools (JST) and Visual Page Editor (VPE) have been deprecated.
Even though they received an update with this release, we have no plan to maintain or
add new features and they may be removed in the future.</p>
</div>
<div class="paragraph">
<p>In addition, the adapters for Red Hat JBoss Enterprise Application Server 4.3 and 5.0
have also been deprecated.</p>
</div>
</div>
<div class="sect2">
<h3 id="platform"><a class="anchor" href="#platform"></a>Platform</h3>
<div class="sect3">
<h4 id="views-dialogs-and-toolbar"><a class="anchor" href="#views-dialogs-and-toolbar"></a>Views, Dialogs and Toolbar</h4>
<div class="sect4">
<h5 id="new-view-menu-icon"><a class="anchor" href="#new-view-menu-icon"></a>New view menu icon</h5>
<div class="paragraph">
<p>The view menu chevron icon (▽) is replaced by a modern equivalent, the vertical ellipsis ( ⠇).</p>
</div>
<div class="paragraph">
<p>Almost every view has a menu that may contain additional configuration settings
like filters, layout settings, and so on. The view menu was often overlooked and
we expect that this change will help users to find it.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/view_menu.png" alt="view menu" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="find-actions-the-improved-quick-access"><a class="anchor" href="#find-actions-the-improved-quick-access"></a>Find Actions: The improved Quick Access</h5>
<div class="paragraph">
<p>The formerly called <strong>Quick Access</strong> action has been retitled to <strong>Find Actions</strong>
to better emphasize its goal.</p>
</div>
<div class="paragraph">
<p>The related UI has changed a bit to improve its usage and accessibility:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The widget item is now a regular toolbar item (button-like)</p>
</li>
<li>
<p>An icon is shown</p>
</li>
<li>
<p>Right-clicking on the tool item works and shows typical actions, including <strong>Hide</strong></p>
</li>
<li>
<p>The proposals are now a regular dialog, centered on the workbench</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>These changes will greatly improve the experience if you’re using a screen reader
as it relies on a more standardized focus state. This also leverages all the default
and usual accessibility features of dialogs (moveable, resizable…).</p>
</div>
<div class="paragraph">
<p>Loading the proposals has been improved as well to avoid UI freezes when loading proposals.</p>
</div>
</div>
<div class="sect4">
<h5 id="find-actions-finds-text-in-file-contents"><a class="anchor" href="#find-actions-finds-text-in-file-contents"></a>Find Actions finds text in file contents</h5>
<div class="paragraph">
<p><strong>Find Actions</strong> is now extended by the <strong>Quick Text Search</strong> feature to show the potential text
matches in file contents also in the proposals.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/file-content-find-action.png" alt="file content find action" />
</div>
</div>
<div class="paragraph">
<p>If the Quick Text Search bundle wasn’t started yet, you may miss those matches. In this case,
you can use <strong>Find Actions</strong> itself to activate the Quick Text Search by finding and selecting
the <strong>Activate bundle for 'File content'</strong> proposals entry.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/activate-file-content.png" alt="activate file content" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="find-actions-lists-workspace-files"><a class="anchor" href="#find-actions-lists-workspace-files"></a>Find Actions lists workspace files</h5>
<div class="paragraph">
<p><strong>Find Actions</strong> can now list matching file names from the workspace (similar to the
<strong>Open Resource</strong> dialog). Upon selection the file is opened in the editor.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/find-actions-resources.png" alt="find actions resources" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="inline-rename-for-simple-resources-while-in-project-explorer"><a class="anchor" href="#inline-rename-for-simple-resources-while-in-project-explorer"></a>Inline rename for simple resources while in Project Explorer.</h5>
<div class="paragraph">
<p>In the <strong>Project Explorer</strong>, renaming (with the <code><code>F2</code></code> shortcut or Rename context menu)
will start an inline rename for normal resources when other files aren’t affected by
the rename.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/project-explorer-inline-renaming.png" alt="project explorer inline renaming" />
</div>
</div>
<div class="paragraph">
<p>In cases where other files are affected by the rename, or the rename operation
is customized, the rename dialog will appear as it previously did.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="text-editors"><a class="anchor" href="#text-editors"></a>Text Editors</h4>
<div class="sect4">
<h5 id="show-problem-markers-inline"><a class="anchor" href="#show-problem-markers-inline"></a>Show problem markers inline</h5>
<div class="paragraph">
<p>You can now see the <strong>errors, warnings, and info markers</strong> inline in most of the
text editors. No more mousing around to see the actual error message!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/annotation-code-mining-jdt.png" alt="annotation code mining jdt" />
</div>
</div>
<div class="paragraph">
<p>You can see the available quick fixes by clicking on the message.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/annotation-code-mining-quickfix.png" alt="annotation code mining quickfix" />
</div>
</div>
<div class="paragraph">
<p>You can enable it on the <strong>General > Editors > Text Editors</strong> preference page and set
<strong>Show Code Minings for Annotations</strong> to:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>None (default)</p>
</li>
<li>
<p>Errors only</p>
</li>
<li>
<p>Errors and Warnings</p>
</li>
<li>
<p>Errors, Warnings and Info</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="backspacedelete-can-treat-spaces-as-tabs"><a class="anchor" href="#backspacedelete-can-treat-spaces-as-tabs"></a>Backspace/delete can treat spaces as tabs</h5>
<div class="paragraph">
<p>If you use the <strong>Insert spaces for tabs</strong> option, now you can also change the
backspace and delete keys behavior to remove multiple spaces at once, as if
they were a tab.</p>
</div>
<div class="paragraph">
<p>The new setting is called <strong>Remove multiple spaces on backspace/delete</strong> and is
found on the <strong>General > Editors > Text Editors</strong> preference page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/delete-spaces-as-tabs.png" alt="delete spaces as tabs" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="collapse-all-button-in-the-debug-view"><a class="anchor" href="#collapse-all-button-in-the-debug-view"></a>Collapse All Button in the Debug View</h5>
<div class="paragraph">
<p>In the <strong>Debug</strong> View, now you can now use the new <strong>Collapse All</strong> button to collapse
all the launches.</p>
</div>
<div class="paragraph">
<p>Before collapsing:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/collapse-all-debug-view-before.png" alt="collapse all debug view before" />
</div>
</div>
<div class="paragraph">
<p>After collapsing:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/collapse-all-debug-view-after.png" alt="collapse all debug view after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="control-character-interpretation-in-console-view"><a class="anchor" href="#control-character-interpretation-in-console-view"></a>Control character interpretation in Console View</h5>
<div class="paragraph">
<p>The <strong>Console</strong> View can now interpret the control characters backslash (<code><code>\b</code></code>)
and carriage return (<code><code>\r</code></code>).</p>
</div>
<div class="paragraph">
<p>This feature is disabled by default. You can enable it on the <strong>Run/Debug > Console</strong>
preference page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/animated-progress-in-console.gif" alt="animated progress in console" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="themes-and-styling"><a class="anchor" href="#themes-and-styling"></a>Themes and Styling</h4>
<div class="sect4">
<h5 id="improvements-in-ui-forms-styling"><a class="anchor" href="#improvements-in-ui-forms-styling"></a>Improvements in UI Forms Styling</h5>
<div class="paragraph">
<p>CSS customization of <code><code>ExpandableComposite</code></code> and <code><code>Section</code></code> was reworked to
give you more control over their styling. In dark mode, those elements now
integrate better with other Form elements.</p>
</div>
<div class="paragraph">
<p>Old:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/pom_dark_old.png" alt="pom dark old" />
</div>
</div>
<div class="paragraph">
<p>New:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/pom_dark_new.png" alt="pom dark new" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="perspective-switcher-gets-aligned-with-normal-toolbar-styling"><a class="anchor" href="#perspective-switcher-gets-aligned-with-normal-toolbar-styling"></a>Perspective switcher gets aligned with normal toolbar styling</h5>
<div class="paragraph">
<p>The special styling of the <strong>Perspective switcher</strong> has been removed to make the
Toolbar look consistent. This also reduces OS specific styling issues with the
perspective switcher.</p>
</div>
<div class="paragraph">
<p>Old:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/old-perspective-switcher.png" alt="old perspective switcher" />
</div>
</div>
<div class="paragraph">
<p>New:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/new-perspective-switcher.png" alt="new perspective switcher" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="usage-of-consistent-colors-for-the-dark-theme"><a class="anchor" href="#usage-of-consistent-colors-for-the-dark-theme"></a>Usage of consistent colors for the dark theme</h5>
<div class="paragraph">
<p>The usage of different shades of gray in the dark theme was reduced.</p>
</div>
<div class="paragraph">
<p>The styling of the widgets is also not based on the selected view anymore, which
makes the UI more consistent.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="general-updates"><a class="anchor" href="#general-updates"></a>General Updates</h4>
<div class="sect4">
<h5 id="ant-1-10-7"><a class="anchor" href="#ant-1-10-7"></a>Ant 1.10.7</h5>
<div class="paragraph">
<p>Eclipse has adopted Ant version 1.10.7.</p>
</div>
</div>
<div class="sect4">
<h5 id="support-for-the-ant-include-task-added"><a class="anchor" href="#support-for-the-ant-include-task-added"></a>Support for the Ant include task added</h5>
<div class="paragraph">
<p>The Ant <code><code>include</code></code> task (available in the Ant library since 1.8.0) is now
fully recognized by the ant-ui-plugin and validated accordingly.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="java-13-support"><a class="anchor" href="#java-13-support"></a>Java 13 Support</h4>
<div class="sect4">
<h5 id="java-13"><a class="anchor" href="#java-13"></a>Java 13</h5>
<div class="paragraph">
<p>Java™ 13 is available and Eclipse JDT supports Java 13 for the Eclipse 4.14 release.</p>
</div>
<div class="paragraph">
<p>The release notably includes the following Java 13 features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>JEP 354: Switch Expressions (Preview).</p>
</li>
<li>
<p>JEP 355: Text Blocks (Preview).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Please note that these are preview language feature and hence enable preview option
should be on. For an informal introduction of the support, please refer to
<a href="https://wiki.eclipse.org/Java13/Examples">Java 13 Examples wiki</a>.</p>
</div>
</div>
<div class="sect4">
<h5 id="keyboard-shortcut-for-text-block-creation"><a class="anchor" href="#keyboard-shortcut-for-text-block-creation"></a>Keyboard shortcut for Text Block creation</h5>
<div class="paragraph">
<p>A keyboard shortcut <strong>Ctrl + Shift + '</strong> is added in the Java Editor for <strong>text
blocks</strong>, which is a preview feature added in Java 13.</p>
</div>
<div class="paragraph">
<p>Conditions under which this keyboard shortcut works are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The Java Project should have a compliance of 13 or above and the preview features should be enabled.</p>
</li>
<li>
<p>The selection in the editor should not be part of a string or a comment or a text block.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/textblock-pre-creation1.png" alt="textblock pre creation1" />
</div>
</div>
<div class="paragraph">
<p>Pressing the shortcut gives:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/textblock-post-creation1.png" alt="textblock post creation1" />
</div>
</div>
<div class="paragraph">
<p>You can also encompass a selected text in text block as below:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/textblock-pre-creation2.png" alt="textblock pre creation2" />
</div>
</div>
<div class="paragraph">
<p>On pressing the shortcut, you get this:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/textblock-post-creation2.png" alt="textblock post creation2" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="remove-unnecessary-array-creation"><a class="anchor" href="#remove-unnecessary-array-creation"></a>Remove unnecessary array creation</h5>
<div class="paragraph">
<p>A new cleanup action <strong>Remove unnecessary array creation</strong> has been added. It will
remove explicit array creation for <code><code>varargs</code></code> parameters.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/unnecessary-array-creation-option.png" alt="unnecessary array creation option" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/unnecessary-array-creation-before.png" alt="unnecessary array creation before" />
</div>
</div>
<div class="paragraph">
<p>After cleanup, you get this:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/unnecessary-array-creation-after.png" alt="unnecessary array creation after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="push-negation-down-in-expression"><a class="anchor" href="#push-negation-down-in-expression"></a>Push negation down in expression</h5>
<div class="paragraph">
<p>A new Java cleanup/save action <strong>Push down negation</strong> has been added. It reduces
the double negation by reverting the arithmetic expressions.</p>
</div>
<div class="paragraph">
<p>For instance:</p>
</div>
<div class="paragraph">
<p><code>!!isValid;</code> becomes <code>isValid;</code></p>
</div>
<div class="paragraph">
<p><code>!(a != b);</code> becomes <code>(a == b);</code></p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/push-down-negation.png" alt="push down negation" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="provide-templates-for-empty-java-source-files"><a class="anchor" href="#provide-templates-for-empty-java-source-files"></a>Provide templates for empty Java source files</h5>
<div class="paragraph">
<p>When dealing with empty Java source files, some basic templates (class, interface, enum)
will now be available from the content assist popup.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/templates-empty-java-file.png" alt="templates empty java file" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="postfix-completion-proposal-category"><a class="anchor" href="#postfix-completion-proposal-category"></a>Postfix completion proposal category</h5>
<div class="paragraph">
<p>Postfix completion allows certain kinds of language constructs to be applied to
the previously entered text.</p>
</div>
<div class="paragraph">
<p>For example: Entering <code><code>"input text".var</code></code> and selecting the
<strong>var - Creates a new variable</strong> proposal, will result in <code><code>String name = "input text"</code></code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/postfix-completion.png" alt="postfix completion" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="try-with-resources-quickfix"><a class="anchor" href="#try-with-resources-quickfix"></a>try-with-resources quickfix</h5>
<div class="paragraph">
<p>A quickfix has been added to create a <code><code>try-with-resources</code></code> statement based on
the selected lines. Lines that are selected must start with declarations of objects
that implement <code><code>AutoCloseable</code></code>. These declarations are added as the resources
of the <code><code>try-with-resources</code></code> statement.</p>
</div>
<div class="paragraph">
<p>If there are selected statements that are not eligible resources (such as Objects
that don’t implement <code><code>AutoCloseable</code></code>), then the first such statement and all
the following selected statements will be placed in the <code><code>try-with-resources</code></code>
body.</p>
</div>
<div class="paragraph">
<p>Method before applying try-with-resources:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/tryWithResource1.png" alt="tryWithResource1" />
</div>
</div>
<div class="paragraph">
<p>Select all the lines inside the method, then use the short-cut <strong>Ctrl+1</strong> and click
on <strong>Surround with try-with-resources</strong> from the list:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/tryWithResource2.png" alt="tryWithResource2" />
</div>
</div>
<div class="paragraph">
<p>This results in:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/tryWithResource3.png" alt="tryWithResource3" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="javadoc-tag-checking-for-modules"><a class="anchor" href="#javadoc-tag-checking-for-modules"></a>Javadoc tag checking for modules</h5>
<div class="paragraph">
<p>Support has been added to check the Javadoc of a module-info.java file to report
missing and duplicate <code><code>@uses</code></code> and <code><code>@provides</code></code> tags depending on the
compiler settings (<strong>Preferences > Java > Compiler > Javadoc</strong>).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/checkModuleJavadoc.png" alt="checkModuleJavadoc" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-formatter"><a class="anchor" href="#java-formatter"></a>Java Formatter</h4>
<div class="sect4">
<h5 id="formatting-of-text-blocks"><a class="anchor" href="#formatting-of-text-blocks"></a>Formatting of text blocks</h5>
<div class="paragraph">
<p>The code formatter can now handle <strong>text blocks</strong>, which is a preview feature added
in Java 13. It’s controlled by the <strong>Text block indentation</strong> setting, found right
in the <strong>Indentation</strong> section of the <strong>Profile Editor (Preferences > Java > Code Style > Formatter > Edit…</strong>).</p>
</div>
<div class="paragraph">
<p>By default, text block lines are indented the same way as wrapped code lines,
that is with two extra tabs relative to the starting indentation (or whatever is
set as <strong>Default indentation for wrapped lines</strong> in the <strong>Line Wrapping</strong> section).
You can also set it to use only one tab for indentation (<strong>Indent by one</strong>), align
all lines to the position of the opening quotes (<strong>Indent on column</strong>), or preserve
the original formatting (<strong>Do not touch</strong>).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/formatter-text-block.png" alt="formatter text block" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="blank-lines-between-javadoc-tags"><a class="anchor" href="#blank-lines-between-javadoc-tags"></a>Blank lines between Javadoc tags</h5>
<div class="paragraph">
<p>The code formatter can now divide Javadoc tags into groups (by type, for example
<code><code>@param</code></code>, <code><code>@throws</code></code>, <code><code>@returns</code></code>) and separate these groups with blank
lines. This feature can be turned on in the <strong>Comments > Javadocs</strong> section by
checking the <strong>Blank lines between tags of different type</strong> box.</p>
</div>
</div>
<div class="sect4">
<h5 id="space-after-not-operator"><a class="anchor" href="#space-after-not-operator"></a>Space after not operator</h5>
<div class="paragraph">
<p>A new setting has been added to control whether a space should be added <strong>after not
(<code><code>!</code></code>) operator</strong>, independently from other unary operators. To find it, expand
sections <strong>Whitespace > Expressions > Unary</strong> operators and go to the last checkbox.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/formatter-space-after-not.png" alt="formatter space after not" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="junit"><a class="anchor" href="#junit"></a>JUnit</h4>
<div class="sect4">
<h5 id="bree-update-for-org-eclipse-jdt-junit-runtime"><a class="anchor" href="#bree-update-for-org-eclipse-jdt-junit-runtime"></a>BREE update for org.eclipse.jdt.junit.runtime</h5>
<div class="paragraph">
<p>The Bundle Required Execution Environment (BREE) for the
<code><code>org.eclipse.jdt.junit.runtime</code></code> bundle is now J2SE-1.5.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug-2"><a class="anchor" href="#debug-2"></a>Debug</h4>
<div class="sect4">
<h5 id="no-suspending-on-exception-recurrence"><a class="anchor" href="#no-suspending-on-exception-recurrence"></a>No suspending on exception recurrence</h5>
<div class="paragraph">
<p>A new workspace preference has been added for exception breakpoints: <strong>Suspend
policy for recurring exception instances</strong> controls whether the same exception
instance may cause the debugger to suspend more than once.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/preference-exception-recurrence.png" alt="preference exception recurrence" />
</div>
</div>
<div class="paragraph">
<p>This option is relevant when debugging an application that has <code><code>try</code></code> blocks at
several levels of the architecture. In this situation an exception breakpoint
may fire multiple times for the same actual exception instance: A <code><code>throw</code></code>
statement inside a <code><code>catch</code></code> block may re-throw the same exception. The same
holds for each <code><code>finally</code></code> block or <code><code>try-with-resources</code></code> block.</p>
</div>
<div class="paragraph">
<p>When the debugger stops due to an exception breakpoint, you may want to continue
your debug session by pressing <strong>Resume (F8)</strong>, but all that catching and re-throwing
will force you to observe all locations where the same exception will surface again
and again. Suspending at all <code><code>try</code></code> blocks on the call stack may also spoil your
context of open Java editors, by opening more editors of classes that are likely
irrelevant for the debugging task at hand.</p>
</div>
<div class="paragraph">
<p>The <strong>JDT Debugger</strong> will now detect this situation, and the first time it notices the
same exception instance recurring at the surface, a new question dialog is shown:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.14/images/dialog-exception-recurrence.png" alt="dialog exception recurrence" />
</div>
</div>
<div class="paragraph">
<p>If you select <strong>Skip</strong> in this dialog, the current exception instance will be dismissed for good.
Still, new instances of the same exception type will cause suspending when they are thrown.</p>
</div>
<div class="paragraph">
<p>If you check <strong>Remember my decision</strong> your choice will be stored in the mentioned workspace
preference to be effective for all exception breakpoints.</p>
</div>
<div class="paragraph">
<p>Even after choosing <strong>Skip</strong> — resp. <strong>Only once</strong> in the preferences — you can have the old
behavior simply by pressing <strong>Step Return (F7)</strong> instead of <strong>Resume</strong>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="jdt-developers"><a class="anchor" href="#jdt-developers"></a>JDT Developers</h4>
<div class="sect4">
<h5 id="flag-whether-content-assist-extension-needs-to-run-in-ui-thread"><a class="anchor" href="#flag-whether-content-assist-extension-needs-to-run-in-ui-thread"></a>Flag whether content assist extension needs to run in UI thread</h5>
<div class="paragraph">
<p>The existing <code><code>org.eclipse.jdt.ui.javaCompletionProposalComputer</code></code>,
<code><code>org.eclipse.jdt.ui.javadocCompletionProposalComputer</code></code> and
<code><code>org.eclipse.jdt.ui.javaCompletionProposalSorters</code></code> extension points now allow
a new attribute <strong>requiresUIThread</strong> that allows a developer to declare whether running
in the UI thread is required or not.</p>
</div>
<div class="paragraph">
<p>This information will be used by the <strong>Content Assist</strong> operation to allow some
optimizations and prevent UI freezes by reducing the amount of work happening
in the UI thread.</p>
</div>
<div class="paragraph">
<p>To preserve backward compatibility, the default value for this attribute (if unset)
is <code><code>true</code></code>, meaning the extension is expected to run in the UI thread.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.14.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.14.0 and Red Hat CodeReady Studio 12.14 out we are already working on the next release for Eclipse 2020-03.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.14.0.am1.htmlJBoss Tools 4.14.0.AM1 for Eclipse 2019-122020-01-31T06:38:49+00:002020-01-28T00:00:00+00:00jeffmaury
Happy to announce 4.14.0.AM1 (Developer Milestone 1) build for Eclipse 2019-12.
Downloads available at JBoss Tools 4.14.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
Quarkus Tools
Quarkus Tools added to JBoss Tools
A new component has been added to JBoss Tools. Quarkus Tools. It aims at providing tools
for Quarkus applications developers. The initial set of features is:
Wizard for creating Quarkus projects based on code.quarkus.io
Code completion and syntax validation on application.properties
Launching your Quarkus application in Run/Debug mode
Quarkus project creation wizard
A new wizard has been added to create a new Quarkus application project in your workspace.
In order to launch it, first...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.14.0.AM1 (Developer Milestone 1) build for Eclipse 2019-12.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2019-12/4.14.0.AM1.html">JBoss Tools 4.14.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.14.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="quarkus-tools"><a class="anchor" href="#quarkus-tools"></a>Quarkus Tools</h3>
<div class="sect3">
<h4 id="quarkus-tools-added-to-jboss-tools"><a class="anchor" href="#quarkus-tools-added-to-jboss-tools"></a>Quarkus Tools added to JBoss Tools</h4>
<div class="paragraph">
<p>A new component has been added to JBoss Tools. Quarkus Tools. It aims at providing tools
for Quarkus applications developers. The initial set of features is:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Wizard for creating Quarkus projects based on <a href="https://code.quarkus.io">code.quarkus.io</a></p>
</li>
<li>
<p>Code completion and syntax validation on <strong>application.properties</strong></p>
</li>
<li>
<p>Launching your Quarkus application in Run/Debug mode</p>
</li>
</ul>
</div>
<div class="sect5">
<h6 id="quarkus-project-creation-wizard"><a class="anchor" href="#quarkus-project-creation-wizard"></a>Quarkus project creation wizard</h6>
<div class="paragraph">
<p>A new wizard has been added to create a new Quarkus application project in your workspace.
In order to launch it, first enter Ctrl+N to get the list of available wizards</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus1.png" alt="quarkus1" />
</div>
</div>
<div class="paragraph">
<p>In the filter text box, enter the <code><code>qu</code></code> characters to filter the list of wizards:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus2.png" alt="quarkus2" />
</div>
</div>
<div class="paragraph">
<p>Select the <strong>Quarkus Project</strong> wizard and click the <strong>Next</strong> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus3.png" alt="quarkus3" />
</div>
</div>
<div class="paragraph">
<p>The <strong>Project type</strong> combo allows you to choose between Maven or Gradle tool used to
manage your project. We’ll go with Maven for this tutorial.</p>
</div>
<div class="paragraph">
<p>Enter a project name (we will use code-with-quarkus) and click the <strong>Next</strong> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus4.png" alt="quarkus4" />
</div>
</div>
<div class="paragraph">
<p>This dialog allows you to choose various parameters for you project, like the project
coordinates (group id, artifact id and version) along with the base REST endpoint information.
We’ll use the default so click on the <strong>Next</strong> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus5.png" alt="quarkus5" />
</div>
</div>
<div class="paragraph">
<p>This dialog allows to select which Quarkus extensions you want to add to your project.
The extensions are grouped by categories, so first select a specific category in
the left table. We will choose the <strong>Web</strong> one:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus6.png" alt="quarkus6" />
</div>
</div>
<div class="paragraph">
<p>You should have noticed that the middle table has been updated. In order to add an extension,
double click on the extension in the middle table. We will add <strong>RESTEasy JAX-RS</strong> and
<strong>RESTEasy Qute</strong> (a templating engine):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus7.png" alt="quarkus7" />
</div>
</div>
<div class="paragraph">
<p>You should have noticed that the extensions that you double clicked on are now being added
to the right table. If you want to remove an extension from the list of selected ones,
double click again either in the center table or in the right table.</p>
</div>
<div class="paragraph">
<p>We are now all set so click on the <strong>Finish</strong> button to launch the project creation.
The project creation job is then launched, dependencies are being retrieved and
after a while, the new project will appear in the <strong>Project Explorer</strong> window:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus8.png" alt="quarkus8" />
</div>
</div>
<div class="paragraph">
<p>We have successfully created our first Quarkus project. Let’s see now how we can launch this application and debug it.</p>
</div>
</div>
<div class="sect5">
<h6 id="running-the-quarkus-application"><a class="anchor" href="#running-the-quarkus-application"></a>Running the Quarkus application</h6>
<div class="paragraph">
<p>Running a Quarkus application can be done from the workbench Run configurations.
Select the <strong>Run → Run Configurations…</strong> menu to display the dialog allowing to create a Run configuration.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus9.png" alt="quarkus9" />
</div>
</div>
<div class="paragraph">
<p>Scrool down until the <strong>Quarkus Launch Configuration</strong> is visible and select it:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus10.png" alt="quarkus10" />
</div>
</div>
<div class="paragraph">
<p>Click on the <strong>New configuration</strong> button (top left):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus11.png" alt="quarkus11" />
</div>
</div>
<div class="paragraph">
<p>A workspace project needs to be associated with the configuration so click on the <strong>Browse</strong>
button to see the project selection dialog:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus12.png" alt="quarkus12" />
</div>
</div>
<div class="paragraph">
<p>As the workspace contains a single project, it is automatically selected and we can click
on the <strong>OK</strong> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus13.png" alt="quarkus13" />
</div>
</div>
<div class="paragraph">
<p>The configuration is not ready to be used. So let’s start our Quarkus application by clicking
on the <strong>Run</strong> button:</p>
</div>
<div class="paragraph">
<p>You should see a new Console being displayed.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus14.png" alt="quarkus14" />
</div>
</div>
<div class="paragraph">
<p>The application is being built and after a while, it will be started:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus15.png" alt="quarkus15" />
</div>
</div>
</div>
<div class="sect5">
<h6 id="debugging-the-quarkus-application"><a class="anchor" href="#debugging-the-quarkus-application"></a>Debugging the Quarkus application</h6>
<div class="paragraph">
<p>Debugging a Quarkus application is just a simple as launching the previous configuration
we’ve just created in Debug.
You just need to open the <strong>Run → Debug Configurations…</strong>. menu and click on the <strong>Debug</strong> button.</p>
</div>
<div class="paragraph">
<p>It will start the Quarkus application like in the previous paragraph but also connect
a remote JVM debug configuration to your running Quarkus application. So if you have set breakpoints
in your application source files, the execution will automatically stops there.</p>
</div>
</div>
<div class="sect5">
<h6 id="application-properties-content-assist"><a class="anchor" href="#application-properties-content-assist"></a>application.properties content assist</h6>
<div class="paragraph">
<p>Every Quarkus application is configured through a configuration called
<strong>application.properties</strong>.</p>
</div>
<div class="paragraph">
<p>The content of this configuration file is dependent of the set of Quarkus
extensions that your application is using. Some settings are mandatory, some others
are not and the possible values are specific to the nature of the setting:
boolean, integer, limited set of values (enumerations).</p>
</div>
<div class="paragraph">
<p>So, as a developer, you need to look at various guides and documentations
(the core Quarkus and the extension specific ones)</p>
</div>
<div class="paragraph">
<p>So Quarkus Tools provides content assist on those specific files that:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>validates the content of the application.properties files</p>
</li>
<li>
<p>provides you with the possible setting names and values</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Let’s see it in action.</p>
</div>
<div class="paragraph">
<p>Go to <strong>src/main/resources/application.properties</strong> in the project and right click and select <strong>Open With → Generic Text Editor</strong>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus16.png" alt="quarkus16" />
</div>
</div>
<div class="paragraph">
<p>Go the third line of the file and invoke code completion (Ctrl + Space):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus17.png" alt="quarkus17" />
</div>
</div>
<div class="paragraph">
<p>For each setting, a documentation is displayed when you mouse over the setting.
Let try to add <strong>quarkus.http.port</strong> to the file and mouse over this name:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus18.png" alt="quarkus18" />
</div>
</div>
<div class="paragraph">
<p>If we enter a wrong value (false instead of a numeric value), then the error will be highlighted:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/quarkus/images/quarkus19.png" alt="quarkus19" />
</div>
</div>
<div class="paragraph">
<p>This is the first set of features that will be integration into the next version
of JBoss Tools. We encourage you to used it and if you are missing features and/or enhancements, don’t hesitate to report them here: <a href="https://issues.redhat.com/issues/?jql=project%20%3D%20JBIDE%20AND%20component%20%3D%20quarkus%20and%20status%20!%3D%20Closed%20and%20status%20!%3D%20Resolved%20">JBoss Tools issue tracker</a></p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.13.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2019-092019-11-06T09:33:45+00:002019-11-05T00:00:00+00:00jeffmaury
JBoss Tools 4.13.0 and Red Hat CodeReady Studio 12.13 for Eclipse 2019-09 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.13 (2019-09) but we recommend
using the latest Eclipse 4.13 2019-09 JEE Bundle since then you get most of the dependencies preinstalled.
Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2019-09/4.13.0.Final.html">JBoss Tools 4.13.0</a> and <a href="https://tools.jboss.org/downloads/devstudio/2019-09/12.13.0.GA.html">Red Hat CodeReady Studio 12.13</a> for Eclipse 2019-09 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.13 (2019-09) but we recommend
using the latest <a href="https://www.eclipse.org/downloads/packages/release/2019-09/r/eclipse-ide-enterprise-java-developers">Eclipse 4.13 2019-09 JEE Bundle</a> since then you get most of the dependencies preinstalled.</p>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was improvements for container based development and bug fixing.
Eclipse 2019-09 itself has a lot of new cool stuff but let me highlight just a few updates in both Eclipse 2019-09 and JBoss Tools plugins that I think are worth mentioning.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="openshift-container-platform-4-2-support"><a class="anchor" href="#openshift-container-platform-4-2-support"></a>OpenShift Container Platform 4.2 support</h4>
<div class="paragraph">
<p>With the new OpenShift Container Platform (OCP) 4.2 now available (see this
<a href="https://www.redhat.com/en/about/press-releases/red-hat-expands-kubernetes-developer-experience-newest-version-red-hat-openshift-4" target="_blank" rel="noopener">article</a>),
even if this is a major shift compared to OCP 3, JBoss Tools is compatible with
this major release in a transparent way. Just define your connection to your
OCP 4.2 based cluster as you did before for an OCP 3 cluster, and use the tooling !</p>
</div>
</div>
<div class="sect3">
<h4 id="codeready-containers-1-0-server-adapter"><a class="anchor" href="#codeready-containers-1-0-server-adapter"></a>CodeReady Containers 1.0 Server Adapter</h4>
<div class="paragraph">
<p>A new server adapter has been added to support the next generation of CodeReady Containers 1.0.
While the server adapter itself has limited functionality, it is able to start and stop the CodeReady Containers virtual machine via its crc binary.
Simply hit Ctrl+3 (Cmd+3 on OSX) and type <code>new server</code>, that will bring up a command to setup a new server.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/crc-server-adapter.png" alt="crc server adapter" width="600" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>crc</code> in the filter textbox.</p>
</div>
<div class="paragraph">
<p>You should see the <strong>Red Hat CodeReady Containers 1.0</strong> server adapter.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/crc-server-adapter1.png" alt="crc server adapter1" width="600" />
</div>
</div>
<div class="paragraph">
<p>Select <strong>Red Hat CodeReady Containers 1.0</strong> and click the <strong>Next</strong> button.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/crc-server-adapter2.png" alt="crc server adapter2" width="600" />
</div>
</div>
<div class="paragraph">
<p>All you have to do is set the location of the CodeReady Containers crc binary file, the pull secret file location (the pull secret file can be downloaded from <a href="https://cloud.redhat.com/openshift/install/crc/installer-provisioned" class="bare">https://cloud.redhat.com/openshift/install/crc/installer-provisioned</a>).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/crc-server-adapter3.png" alt="crc server adapter3" width="600" />
</div>
</div>
<div class="paragraph">
<p>Once you’re finished, a new CodeReady Containers server adapter will then be created and visible in the Servers view.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/crc-server-adapter4.png" alt="crc server adapter4" width="600" />
</div>
</div>
<div class="paragraph">
<p>Once the server is started, a new OpenShift connection should appear in the OpenShift
Explorer View, allowing the user to quickly create a new Openshift application and begin developing their AwesomeApp in a highly-replicatable environment.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/crc-server-adapter5.png" alt="crc server adapter5" width="600" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server tools</h3>
<div class="sect3">
<h4 id="wildfly-18-server-adapter"><a class="anchor" href="#wildfly-18-server-adapter"></a>Wildfly 18 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 18. It adds support for Java EE 8 and Jakarta EE 8.</p>
</div>
</div>
<div class="sect3">
<h4 id="eap-7-3-beta-server-adapter"><a class="anchor" href="#eap-7-3-beta-server-adapter"></a>EAP 7.3 Beta Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with EAP 7.3 Beta.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="hibernate-runtime-provider-updates"><a class="anchor" href="#hibernate-runtime-provider-updates"></a>Hibernate Runtime Provider Updates</h4>
<div class="paragraph">
<p>A number of additions and updates have been performed on the available Hibernate runtime providers.</p>
</div>
<div class="sect4">
<h5 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h5>
<div class="paragraph">
<p>The Hibernate 5.4 runtime provider now incorporates Hibernate Core version 5.4.7.Final and Hibernate Tools version 5.4.7.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.13.Final and Hibernate Tools version 5.3.13.Final.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="platform"><a class="anchor" href="#platform"></a>Platform</h3>
<div class="sect3">
<h4 id="views-dialogs-and-toolbar"><a class="anchor" href="#views-dialogs-and-toolbar"></a>Views, Dialogs and Toolbar</h4>
<div class="sect4">
<h5 id="quick-search"><a class="anchor" href="#quick-search"></a>Quick Search</h5>
<div class="paragraph">
<p>The new <strong>Quick Search</strong> dialog provides a convenient, simple and fast way to run a textual search
across your workspace and jump to matches in your code. The dialog provides a quick overview
showing matching lines of text at a glance. It updates as quickly as you can type and allows
for quick navigation using only the keyboard. A typical workflow starts by pressing the keyboard
shortcut <strong>Ctrl+Alt+Shift+L</strong> (or <strong>Cmd+Alt+Shift+L</strong> on Mac). Typing a few letters updates the search
result as you type. Use <strong>Up-Down</strong> arrow keys to select a match, then hit <strong>Enter</strong> to open it in an
editor.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/quick-search.png" alt="quick search" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="save-editor-when-project-explorer-has-focus"><a class="anchor" href="#save-editor-when-project-explorer-has-focus"></a>Save editor when Project Explorer has focus</h5>
<div class="paragraph">
<p>You can now save the active editor even when the <strong>Project Explorer</strong> has focus. In cases where an
extension contributes <strong>Saveables</strong> to the Project Explorer, the extension is honored and the save
action on the Project Explorer will save the provided saveable item instead of the active editor.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/save_project_explorer.png" alt="save project explorer" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="show-in-context-menu-available-for-normal-resources"><a class="anchor" href="#show-in-context-menu-available-for-normal-resources"></a>"Show In" context menu available for normal resources</h5>
<div class="paragraph">
<p>The <strong>Show In</strong> context menu is now available for an element inside a resource project on the
<strong>Project Explorer</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/showin_project_explorer.png" alt="showin project explorer" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="show-colors-for-additions-and-deletions-in-compare-viewer"><a class="anchor" href="#show-colors-for-additions-and-deletions-in-compare-viewer"></a>Show colors for additions and deletions in Compare viewer</h5>
<div class="paragraph">
<p>In simple cases such as a 2-way comparison or a 3-way comparison with no merges and conflicts, the
<strong>Compare Viewer</strong> now shows different colors, depending on whether text has been added, removed or
modified. The default colors are green, red and black respectively.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/compare-editor-colors.png" alt="compare editor colors" />
</div>
</div>
<div class="paragraph">
<p>The colors can be customized through usual theme customization approaches, including using related
entries in the <strong>Colors and Fonts preference</strong> page.</p>
</div>
</div>
<div class="sect4">
<h5 id="editor-status-line-shows-more-selection-details"><a class="anchor" href="#editor-status-line-shows-more-selection-details"></a>Editor status line shows more selection details</h5>
<div class="paragraph">
<p>The status line for <strong>Text Editors</strong> now shows the cursor position, and when the editor has something
selected, shows the number of characters in the selection as well. This also works in the block
selection mode.</p>
</div>
<div class="paragraph">
<p>These two new additions to the status line can be disabled via the <strong>General > Editors > Text Editors</strong>
preference page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/selection-count.png" alt="selection count" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/selection-offset.png" alt="selection offset" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="shorter-dialog-text"><a class="anchor" href="#shorter-dialog-text"></a>Shorter dialog text</h5>
<div class="paragraph">
<p>Several dialog texts have been shortened. This allows you to capture the important information faster.</p>
</div>
<div class="paragraph">
<p>Previously</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/long-dialog-text.png" alt="long dialog text" />
</div>
</div>
<div class="paragraph">
<p>Now</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/short-dialog.png" alt="short dialog" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="close-project-via-middle-click"><a class="anchor" href="#close-project-via-middle-click"></a>Close project via middle-click</h5>
<div class="paragraph">
<p>In the <strong>Project Explorer</strong>, you can now close a project using middle-click.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="improved-usability-of-environment-tab-in-launch-configurations"><a class="anchor" href="#improved-usability-of-environment-tab-in-launch-configurations"></a>Improved usability of Environment tab in Launch Configurations</h5>
<div class="paragraph">
<p>In the <strong>Environment Tab</strong> of the <strong>Launch Configuration</strong> dialog, you can now double-click on an environment
variable name or value and start editing it directly from the table.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/environment-variable-inline-editing.png" alt="environment variable inline editing" />
</div>
</div>
<div class="paragraph">
<p>Right-clicking on the environment variable table now opens a context menu, allowing for quick addition,
removal, copying, and pasting of environment variables.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/environment-variable-context-menu.png" alt="environment variable context menu" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="show-command-line-for-external-program-launch"><a class="anchor" href="#show-command-line-for-external-program-launch"></a>Show Command Line for external program launch</h5>
<div class="paragraph">
<p>The <strong>External Tools Configuration</strong> dialog for launching an external program now supports the
<strong>Show Command Line</strong> button.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/external-tool-showcommandline.png" alt="external tool showcommandline" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="preferences"><a class="anchor" href="#preferences"></a>Preferences</h4>
<div class="sect4">
<h5 id="close-editors-automatically-when-reaching-99-open-editors"><a class="anchor" href="#close-editors-automatically-when-reaching-99-open-editors"></a>Close editors automatically when reaching 99 open editors</h5>
<div class="paragraph">
<p>The preference to close editors automatically is now enabled by default. It will be triggered when you have
opened 99 files. If you continue to open editors, old editors will be closed to protect you from performance
problems. You can modify this setting in the <strong>Preferences</strong> dialog via the <strong>General > Editors > Close</strong> editors
automatically preference.</p>
</div>
</div>
<div class="sect4">
<h5 id="in-table-color-previews-for-text-editor-appearance-color-options"><a class="anchor" href="#in-table-color-previews-for-text-editor-appearance-color-options"></a>In-table color previews for Text Editor appearance color options</h5>
<div class="paragraph">
<p>You can now see all the colors currently being used in <strong>Text Editors</strong> from the Appearance color options table,
located in the <strong>Preferences > General > Editors > Text Editor</strong> page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/text-editors-color-intable.png" alt="text editors color intable" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="automatic-detection-of-ui-freezes-in-the-eclipse-sdk"><a class="anchor" href="#automatic-detection-of-ui-freezes-in-the-eclipse-sdk"></a>Automatic detection of UI freezes in the Eclipse SDK</h5>
<div class="paragraph">
<p>The Eclipse SDK has been configured to show stack traces for UI freezes in the <strong>Error Log</strong> view by default
for new workspaces. You can use this information to identify and report slow parts of the Eclipse IDE.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/freeze-event.png" alt="freeze event" />
</div>
</div>
<div class="paragraph">
<p>You can disable the monitoring or tweak its settings via the options in the <strong>General > UI Responsiveness
Monitoring</strong> preference page as shown below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/ui-monitor-preference.png" alt="ui monitor preference" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="themes-and-styling"><a class="anchor" href="#themes-and-styling"></a>Themes and Styling</h4>
<div class="sect4">
<h5 id="start-automatically-in-dark-theme-based-on-os-theme"><a class="anchor" href="#start-automatically-in-dark-theme-based-on-os-theme"></a>Start automatically in dark theme based on OS theme</h5>
<div class="paragraph">
<p>On Linux and Mac, Eclipse can now start automatically in dark theme when the OS theme is dark. This works by
default, that is on a new workspace or when the user has not explicitly set or changed the theme in Eclipse.</p>
</div>
</div>
<div class="sect4">
<h5 id="display-of-help-content-respects-os-theme"><a class="anchor" href="#display-of-help-content-respects-os-theme"></a>Display of Help content respects OS theme</h5>
<div class="paragraph">
<p>More and more operating systems provide a system wide dark theme. Eclipse now respects this system wide theme
setting when the Eclipse help content is displayed in an external browser. A prerequisite for this is a browser
that supports the prefers-color-scheme CSS media query.</p>
</div>
<div class="paragraph">
<p>As of writing this the following browser versions support it:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Firefox version 67</p>
</li>
<li>
<p>Chrome version 76</p>
</li>
<li>
<p>Safari version 12.1</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/help_system_dark.png" alt="help system dark" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="help-content-uses-high-resolution-icons"><a class="anchor" href="#help-content-uses-high-resolution-icons"></a>Help content uses high resolution icons</h5>
<div class="paragraph">
<p>The <strong>Help System</strong> as well as the help content of the <strong>Eclipse Platform</strong>, the
<strong>Java Development Tooling</strong> and the <strong>Plug-in Development Environment</strong> now use high resolution icons.
They are now crisp on high resolution displays and also looks much better in the dark theme.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/help_system_high_res.png" alt="help system high res" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="improved-dark-theme-on-windows"><a class="anchor" href="#improved-dark-theme-on-windows"></a>Improved dark theme on Windows</h5>
<div class="paragraph">
<p>Labels, Sections, Checkboxes, Radio Buttons, FormTexts and Sashes on forms now use the correct background
color in the dark mode on windows.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/correct_backgrounds.png" alt="correct backgrounds" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="general-updates"><a class="anchor" href="#general-updates"></a>General Updates</h4>
<div class="sect4">
<h5 id="interactive-performance"><a class="anchor" href="#interactive-performance"></a>Interactive performance</h5>
<div class="paragraph">
<p>Interactive performance has been further improved in this release and several UI freezes have been fixed.</p>
</div>
</div>
<div class="sect4">
<h5 id="show-key-bindings-when-command-is-invoked"><a class="anchor" href="#show-key-bindings-when-command-is-invoked"></a>Show key bindings when command is invoked</h5>
<div class="paragraph">
<p>For presentations, screen casts and learning purposes, it is very helpful to show the corresponding key
binding when a command is invoked. When the command is invoked (via a key binding or menu interaction)
the key binding, the command’s name and description are shown on the screen.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/show_key_bindings.png" alt="show key bindings" />
</div>
</div>
<div class="paragraph">
<p>You can activate this in the <strong>Preferences</strong> dialog via the <em>Show key binding when command is invoked</em>
check box on the <strong>General > Keys</strong> preference page. To toggle this setting quickly the command
'Toggle Whether to Show Key Binding' can be used (e.g. via the quick access).</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="java-13-support"><a class="anchor" href="#java-13-support"></a>Java 13 Support</h4>
<div class="sect4">
<h5 id="java-13"><a class="anchor" href="#java-13"></a>Java 13</h5>
<div class="paragraph">
<p>Java 13 is out and Eclipse JDT supports Java 13 for 4.13 via Marketplace.</p>
</div>
<div class="paragraph">
<p>The release notably includes the following Java 13 features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>JEP 354: Switch Expressions (Preview).</p>
</li>
<li>
<p>JEP 355: Text Blocks (Preview).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Please note that these are preview language feature and hence enable preview option should be on. For an informal introduction of the support, please refer to Java 13 Examples wiki.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-views-and-dialogs"><a class="anchor" href="#java-views-and-dialogs"></a>Java Views and Dialogs</h4>
<div class="sect4">
<h5 id="synchronize-standard-and-error-output-in-console"><a class="anchor" href="#synchronize-standard-and-error-output-in-console"></a>Synchronize standard and error output in console</h5>
<div class="paragraph">
<p>The Eclipse <strong>Console view</strong> currently can not ensure that mixed standard and error output is shown in the
same order as it is produced by the running process. For Java applications the launch configuration
<strong>Common Tab</strong> now provides an option to merge standard and error output. This ensures that standard and error
output is shown in the same order it was produced but at the same time disables the individual coloring of
error output.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/merge-process-output.png" alt="merge process output" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="convert-to-enhanced-for-loop-using-collections"><a class="anchor" href="#convert-to-enhanced-for-loop-using-collections"></a>Convert to enhanced 'for' loop using Collections</h5>
<div class="paragraph">
<p>The Java quickfix/cleanup <strong>Convert to enhanced 'for' loop</strong> is now offered on <code><code>for</code></code> loops that are iterating
through Collections. The loop must reference the <code><code>size</code></code> method as part of the condition and if accessing
elements in the body, must use the <code><code>get</code></code> method. All other Collection methods other than <code><code>isEmpty</code></code>
invalidate the quickfix being offered.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/foreachcollectionbefore.png" alt="foreachcollectionbefore" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/foreachcollectionquickfix.png" alt="foreachcollectionquickfix" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/foreachcollectionafter.png" alt="foreachcollectionafter" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="initialize-final-fields"><a class="anchor" href="#initialize-final-fields"></a>Initialize 'final' fields</h5>
<div class="paragraph">
<p>A Java quickfix is now offered to initialize an uninitialized <code><code>final</code></code> field in the class constructor.
The fix will initialize a <code><code>String</code></code> to the empty string, a numeric base type to 0, and for class fields it initializes them using their default constructor if available or <code><code>null</code></code> if no default constructor exists.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/finalquickfix1.png" alt="finalquickfix1" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/finalquickfix2.png" alt="finalquickfix2" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="autoboxing-and-unboxing"><a class="anchor" href="#autoboxing-and-unboxing"></a>Autoboxing and Unboxing</h5>
<div class="paragraph">
<p>Use Autoboxing and Unboxing when possible. These features are enabled only for Java 5 and higher.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/autoboxing-unboxing-feature.png" alt="autoboxing unboxing feature" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="improved-redundant-modifier-removal"><a class="anchor" href="#improved-redundant-modifier-removal"></a>Improved redundant modifier removal</h5>
<div class="paragraph">
<p><strong>Remove redundant modifier</strong> now also removes useless <code><code>abstract</code></code> modifier on the interfaces.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/abstract-removal-feature.png" alt="abstract removal feature" />
</div>
</div>
<div class="paragraph">
<p>For the given code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/abstract-removal-before.png" alt="abstract removal before" />
</div>
</div>
<div class="paragraph">
<p>You get this:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/abstract-removal-after.png" alt="abstract removal after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="javadoc-comment-generation-for-module"><a class="anchor" href="#javadoc-comment-generation-for-module"></a>Javadoc comment generation for module</h5>
<div class="paragraph">
<p>Adding a Javadoc comment to a Java module (module-info.java) will result in automatic annotations
being added per the new module comment preferences.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/modulejavadocprefs.png" alt="modulejavadocprefs" />
</div>
</div>
<div class="paragraph">
<p>The <code><code>$(tags)</code></code> directive will add <code><code>@uses</code></code> and <code><code>@provides</code></code> tags for all <strong>uses</strong> and <strong>provides</strong>
module statements.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/modulejavadoc.png" alt="modulejavadoc" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="chain-completion-code-assist"><a class="anchor" href="#chain-completion-code-assist"></a>Chain Completion Code Assist</h5>
<div class="paragraph">
<p>Code assist for "Chain Template Proposals" will be available. These will traverse reachable local variables,
fields, and methods, to produce a chain whose return type is compatible with the expected type in a
particular context.</p>
</div>
<div class="paragraph">
<p>The preference to enable the feature can be found in the Advanced sub-menu of the Content Assist menu group
(<strong>Preferences > Java > Editor > Content Assist > Advanced</strong>) .</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/chain-completion.png" alt="chain completion" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-formatter"><a class="anchor" href="#java-formatter"></a>Java Formatter</h4>
<div class="sect4">
<h5 id="remove-excess-blank-lines"><a class="anchor" href="#remove-excess-blank-lines"></a>Remove excess blank lines</h5>
<div class="paragraph">
<p>All the settings in the <strong>Blank lines</strong> section can now be configured to <strong>remove excess blank lines</strong>,
effectively taking precedence over the <em>Number of empty lines to preserve</em> setting. Each setting has its own
button to turn the feature on, right next to its number control. The button is enabled only if the selected
number of lines is smaller than the <em>Number of empty lines to preserve</em>, because otherwise any excess lines
are removed anyway.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/formatter-remove-excess-blank-lines.png" alt="formatter remove excess blank lines" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="changes-in-blank-lines-settings"><a class="anchor" href="#changes-in-blank-lines-settings"></a>Changes in blank lines settings</h5>
<div class="paragraph">
<p>There’s quite a lot of changes in the <strong>Blank lines</strong> section of the formatter profile.</p>
</div>
<div class="paragraph">
<p>Some of the existing subsections and settings are now phrased differently to better express their function:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The <em>Blank lines within class declarations</em> subsection is now <em>Blank lines within type declaration</em></p>
</li>
<li>
<p><em>Before first declaration</em> is now <em>Before first member declaration</em></p>
</li>
<li>
<p><em>Before declarations of the same kind</em> is now <em>Between member declarations of different kind</em></p>
</li>
<li>
<p><em>Before member class declarations</em> is now <em>Between member type declarations</em></p>
</li>
<li>
<p><em>Before field declarations</em> is now <em>Between field declarations</em></p>
</li>
<li>
<p><em>Before method declarations</em> is now <em>Between method/constructor declarations</em></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>More importantly, a few new settings have been added to support more places where the number of empty lines can be controlled:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>After last member declaration</em> in a type (to complement previously existing <em>Before first member declaration</em>
setting)</p>
</li>
<li>
<p><em>Between abstract method declarations</em> in a type (these cases were previously handled by <em>Between
method/constructor declarations</em>)</p>
</li>
<li>
<p><em>At end of method/constructor body</em> (to complement previously existing <em>At beginning of method/constructor
body</em> setting)</p>
</li>
<li>
<p><em>At beginning of code block</em> and <em>At end of code block</em></p>
</li>
<li>
<p><em>Before statement with code block</em> and <em>After statement with code block</em></p>
</li>
<li>
<p><em>Between statement groups in 'switch'</em></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Most of the new settings have been put in a new subsection <strong>Blank lines within method/constructor
declarations</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/formatter-new-blank-lines-settings.png" alt="formatter new blank lines settings" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="junit"><a class="anchor" href="#junit"></a>JUnit</h4>
<div class="sect4">
<h5 id="junit-5-5-1"><a class="anchor" href="#junit-5-5-1"></a>JUnit 5.5.1</h5>
<div class="paragraph">
<p>JUnit 5.5.1 is here and Eclipse JDT has been updated to use this version.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug-2"><a class="anchor" href="#debug-2"></a>Debug</h4>
<div class="sect4">
<h5 id="enhanced-support-for-patch-module-during-launch"><a class="anchor" href="#enhanced-support-for-patch-module-during-launch"></a>Enhanced support for --patch-module during launch</h5>
<div class="paragraph">
<p>The <strong>Java Launch Configuration</strong> now supports patching of different modules by different sources during the
launch. This can be verified in the <strong>Override Dependencies…</strong> dialog in the <strong>Dependencies</strong> tab in a
Java Launch Configuration.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/launch-dependencies.png" alt="launch dependencies" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.13/images/enhanced-patch-module.png" alt="enhanced patch module" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-build"><a class="anchor" href="#java-build"></a>Java Build</h4>
<div class="sect4">
<h5 id="full-build-on-jdt-core-preferences-change"><a class="anchor" href="#full-build-on-jdt-core-preferences-change"></a>Full build on JDT core preferences change</h5>
<div class="paragraph">
<p>Manually changing the settings file <strong>.settings/org.eclipse.jdt.core.prefs</strong> of a project will result in a
full project build, if the workspace auto-build is on. For example, pulling different settings from a git
repository or generating the settings with a tool will now trigger a build. Note that this includes
timestamp changes, even if actual settings file contents were not changed.</p>
</div>
<div class="paragraph">
<p>For the 4.13 release, it is possible to disable this new behavior with the VM property:
<strong>-Dorg.eclipse.disableAutoBuildOnSettingsChange=true</strong>. It is planned to remove this VM property in a future release.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.13.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.13.0 and Red Hat CodeReady Studio 12.13 out we are already working on the next release for Eclipse 2019-12.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.12.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2019-062019-07-09T14:20:23+00:002019-07-08T00:00:00+00:00jeffmaury
JBoss Tools 4.12.0 and Red Hat CodeReady Studio 12.12 for Eclipse 2019-06 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar codereadystudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.12 (2019-06) but we recommend
using the latest Eclipse 4.12 2019-06 JEE Bundle since then you get most of the dependencies preinstalled.
Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2019-06/4.12.0.Final.html">JBoss Tools 4.12.0</a> and <a href="https://tools.jboss.org/downloads/devstudio/2019-06/12.12.0.GA.html">Red Hat CodeReady Studio 12.12</a> for Eclipse 2019-06 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/codeready-studio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar codereadystudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.12 (2019-06) but we recommend
using the latest <a href="http://www.eclipse.org/downloads/packages/release/2019-06/r/eclipse-ide-java-ee-developers">Eclipse 4.12 2019-06 JEE Bundle</a> since then you get most of the dependencies preinstalled.</p>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was improvements for container based development and bug fixing.
Eclipse 2019-06 itself has a lot of new cool stuff but let me highlight just a few updates in both Eclipse 2019-06 and JBoss Tools plugins that I think are worth mentioning.</p>
</div>
<div class="sect2">
<h3 id="openshift"><a class="anchor" href="#openshift"></a>OpenShift</h3>
<div class="sect3">
<h4 id="openshift-container-platform-4-support"><a class="anchor" href="#openshift-container-platform-4-support"></a>OpenShift Container Platform 4 support</h4>
<div class="paragraph">
<p>With the new OpenShift Container Platform (OCP) 4 now available (see this
<a href="https://www.redhat.com/en/about/press-releases/red-hat-redefines-enterprise-kubernetes-through-full-stack-automation-red-hat-openshift-4?source=pressreleaselisting" target="_blank" rel="noopener">article</a>),
even if this is a major shift compared to OCP 3, JBoss Tools is compatible with
this major release in a transparent way. Just define your connection to your
OCP 4 based cluster as you did before for an OCP 3 cluster, and use the tooling !</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server tools</h3>
<div class="sect3">
<h4 id="wildfly-17-server-adapter"><a class="anchor" href="#wildfly-17-server-adapter"></a>Wildfly 17 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 17. It adds support for Java EE 8.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="new-runtime-provider"><a class="anchor" href="#new-runtime-provider"></a>New Runtime Provider</h4>
<div class="paragraph">
<p>The new Hibernate 5.4 runtime provider has been added. It incorporates Hibernate Core version 5.4.3.Final and Hibernate Tools version 5.4.3.Final</p>
</div>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.10.Final and Hibernate Tools version 5.3.10.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="maven"><a class="anchor" href="#maven"></a>Maven</h3>
<div class="sect3">
<h4 id="maven-support-updated-to-m2e-1-12"><a class="anchor" href="#maven-support-updated-to-m2e-1-12"></a>Maven support updated to M2E 1.12</h4>
<div class="paragraph">
<p>The Maven support is based on Eclipse M2E 1.12</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="platform"><a class="anchor" href="#platform"></a>Platform</h3>
<div class="sect3">
<h4 id="views-dialogs-and-toolbar"><a class="anchor" href="#views-dialogs-and-toolbar"></a>Views, Dialogs and Toolbar</h4>
<div class="sect4">
<h5 id="import-project-by-passing-it-as-command-line-argument"><a class="anchor" href="#import-project-by-passing-it-as-command-line-argument"></a>Import project by passing it as command-line argument</h5>
<div class="paragraph">
<p>You can import a project into Eclipse by passing its path as a parameter to the
launcher. The command would look like <code><code>eclipse /path/to/project</code></code> on Linux and Windows,
or <code><code>open Eclipse.app -a /path/to/project</code></code> on macOS.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/pass-directory-to-launcher.png" alt="pass directory to launcher" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="launch-run-and-debug-configurations-from-quick-access"><a class="anchor" href="#launch-run-and-debug-configurations-from-quick-access"></a>Launch Run and Debug configurations from Quick Access</h5>
<div class="paragraph">
<p>From the <strong>Quick Access</strong> proposals (accessible with <code><code>Ctrl+3</code></code> shortcut) you can now directly launch
any of the Run or Debug configurations available in your workspace.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/run-debug-quickaccess.png" alt="run debug quickaccess" />
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For performance reasons, the extra <strong>Quick Access</strong> entries are only visible if the <code><code>org.eclipse.debug.ui</code></code>
bundle was already activated by some previous action in the workbench such as editing a launch configuration,
or expanding the <em>Run As…</em> menus.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect3">
<h4 id="themes-and-styling"><a class="anchor" href="#themes-and-styling"></a>Themes and Styling</h4>
<div class="sect4">
<h5 id="improved-view-menu-icon"><a class="anchor" href="#improved-view-menu-icon"></a>Improved View Menu Icon</h5>
<div class="paragraph">
<p>The icon used for the view menu has been improved. It is now crisp on high resolution
displays and also looks much better in the dark theme.</p>
</div>
<div class="paragraph">
<p>Compare the old version at the top and the new version at the bottom:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/view_menu.png" alt="view menu" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="high-resolution-images-drawn-on-mac"><a class="anchor" href="#high-resolution-images-drawn-on-mac"></a>High resolution images drawn on Mac</h5>
<div class="paragraph">
<p>On Mac, images and text are now drawn in high resolution during GC operations.
You can see crisp images on high resolution displays in the editor rulers, forms, etc in Eclipse.</p>
</div>
<div class="paragraph">
<p>Compare the old version at the top and the new version at the bottom:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/hidpi-mac-old-behavior.png" alt="hidpi mac old behavior" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/hidpi-mac-new-behavior.png" alt="hidpi mac new behavior" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="tabletree-background-lines-shown-in-dark-theme-on-mac"><a class="anchor" href="#tabletree-background-lines-shown-in-dark-theme-on-mac"></a>Table/Tree background lines shown in dark theme on Mac</h5>
<div class="paragraph">
<p>In dark theme on Mac, the <strong>Table</strong> and <strong>Trees</strong> in Eclipse now show the alternating dark lines
in the background when <code><code>setLinesVisible(true)</code></code> is set. Earlier they had a gray background
even if line visibility was true.</p>
</div>
<div class="paragraph">
<p>Example of a Tree and Table in Eclipse with alternating dark lines in the background:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/dark-theme-alternating-lines.png" alt="dark theme alternating lines" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="equinox"><a class="anchor" href="#equinox"></a>Equinox</h4>
<div class="paragraph">
<p>When the <strong>Equinox OSGi Framework</strong> is launched the installed bundles are activated according
to their configured start-level. The bundles with lower start-levels are activated first.
Bundles within the same start-level are activated sequentially from a single thread.</p>
</div>
<div class="paragraph">
<p>A new configuration option <code><code>equinox.start.level.thread.count</code></code> has been added that enables
the framework to start bundles within the same start-level in parallel. The default value is <code><code>1</code></code>
which keeps the previous behavior of activating bundles from a single thread.
Setting the value to <code><code>0</code></code> enables parallel activation using a thread count equal
to <code><code>Runtime.getRuntime().availableProcessors()</code></code>. Setting the value to a number greater than <code><code>1</code></code>
will use the specified number as the thread count for parallel bundle activation.</p>
</div>
<div class="paragraph">
<p>The default is <code><code>1</code></code> because of the risk of possible deadlock when activating bundles in parallel.
Extensive testing must be done on the set of bundle installed in the framework before considering
enabling this option in a product.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="java-12-support"><a class="anchor" href="#java-12-support"></a>Java 12 Support</h4>
<div class="sect4">
<h5 id="change-project-compliance-and-jre-to-12"><a class="anchor" href="#change-project-compliance-and-jre-to-12"></a>Change project compliance and JRE to 12</h5>
<div class="paragraph">
<p>A quick fix <strong>Change project compliance and JRE to 12</strong> is provided to change the current project
to be compatible with Java 12.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/quickfix-change-compliance-12.png" alt="quickfix change compliance 12" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="enable-preview-features"><a class="anchor" href="#enable-preview-features"></a>Enable preview features</h5>
<div class="paragraph">
<p>Preview features in Java 12 can be enabled using <strong>Preferences > Java > Compiler > Enable preview features</strong>
option. The problem severity of these preview features can be configured using the
<strong>Preview features with severity level</strong> option.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/enable-preview.png" alt="enable preview" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="set-enable-preview-features"><a class="anchor" href="#set-enable-preview-features"></a>Set Enable preview features</h5>
<div class="paragraph">
<p>A quick fix <strong>Configure problem severity</strong> is provided to update the problem severity of
preview features in Java 12.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/quickfix-configure-severity-12.png" alt="quickfix configure severity 12" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="add-default-case-to-switch-statement"><a class="anchor" href="#add-default-case-to-switch-statement"></a>Add default case to switch statement</h5>
<div class="paragraph">
<p>A quick fix <strong>Add 'default' case</strong> is provided to add default case to a enhanced switch statement in Java 12.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/quickfix-default-switch-statement.png" alt="quickfix default switch statement" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="add-missing-case-statements-to-switch-statement"><a class="anchor" href="#add-missing-case-statements-to-switch-statement"></a>Add missing case statements to switch statement</h5>
<div class="paragraph">
<p>A quick fix <strong>Add missing case statements</strong> is provided for a enhanced switch statement in Java 12.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/quickfix-missing-case-switch-statement.png" alt="quickfix missing case switch statement" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="add-default-case-to-switch-expression"><a class="anchor" href="#add-default-case-to-switch-expression"></a>Add default case to switch expression</h5>
<div class="paragraph">
<p>A quick fix <strong>Add 'default' case</strong> is provided to add default case to a switch expression.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/quickfix-default-switch-expression.png" alt="quickfix default switch expression" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="add-missing-case-statements-to-switch-expression"><a class="anchor" href="#add-missing-case-statements-to-switch-expression"></a>Add missing case statements to switch expression</h5>
<div class="paragraph">
<p>A quick fix <strong>Add missing case statements</strong> is provided for switch expressions.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/quickfix-missing-case-switch-expression.png" alt="quickfix missing case switch expression" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="format-whitespaces-in-switch"><a class="anchor" href="#format-whitespaces-in-switch"></a>Format whitespaces in 'switch'</h5>
<div class="paragraph">
<p>As Java 12 introduced some new features into the <code><code>switch</code></code> construct, the formatter profile
has some new settings for it. The settings allow you to control spaces around the arrow operator
(separately for <code><code>case</code></code> and <code><code>default</code></code>) and around commas in a multi-value case.</p>
</div>
<div class="paragraph">
<p>The settings can be found in the <strong>Profile Editor (Preferences > Java > Code Style > Formatter > Edit…)</strong>
under the <strong>White space > Control statements > 'switch'</strong> subsection.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/formatter-switch.png" alt="formatter switch" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="split-switch-case-labels"><a class="anchor" href="#split-switch-case-labels"></a>Split Switch Case Labels</h5>
<div class="paragraph">
<p>As Java 12 introduced the ability to group multiple <code><code>switch</code></code> case labels into a single case expression,
a quick assist is provided that allows these grouped labels to be split into separate case statements.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/split-switch-case-labels.png" alt="split switch case labels" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="show-method-parameter-names-on-code-as-code-minings"><a class="anchor" href="#show-method-parameter-names-on-code-as-code-minings"></a>Show method parameter names on code as code minings</h5>
<div class="paragraph">
<p>In the <strong>Java > Editor > Code Mining</strong> preferences, you can now enable the <strong>Show parameter names</strong> option.
This will show the parameter names as code minings in method or constructor calls, for cases where
the resolution may not be obvious for a human reader.</p>
</div>
<div class="paragraph">
<p>For example, the code mining will be shown if the argument name in the method call is not an exact match
of the parameter name or if the argument name doesn’t contain the parameter name as a substring.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/parameter-name-codeminings.png" alt="parameter name codeminings" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="show-number-of-implementations-of-methods-as-code-minings"><a class="anchor" href="#show-number-of-implementations-of-methods-as-code-minings"></a>Show number of implementations of methods as code minings</h5>
<div class="paragraph">
<p>In the <strong>Java > Editor > Code Mining</strong> preferences, selecting
<strong>Show implementations with the Show References (including implementations) for → Methods</strong> option now
shows implementations of methods.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/method-implementation-codeminings.png" alt="method implementation codeminings" />
</div>
</div>
<div class="paragraph">
<p>Clicking on method implementations brings up the <strong>Search</strong> view that shows all implementations of the method in sub-types.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/method-implementation-codeminings-click.png" alt="method implementation codeminings click" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="open-single-implementationreference-in-editor-from-code-mining"><a class="anchor" href="#open-single-implementationreference-in-editor-from-code-mining"></a>Open single implementation/reference in editor from code mining</h5>
<div class="paragraph">
<p>When the <strong>Java > Editor > Code Mining</strong> preferences are enabled and a single implementation or reference is shown,
moving the cursor over the annotation and using <strong>Ctrl+Click</strong> will open the editor and display the single
implementation or reference.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/ctrlclickimpl.png" alt="ctrlclickimpl" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="additional-quick-fixes-for-service-provider-constructors"><a class="anchor" href="#additional-quick-fixes-for-service-provider-constructors"></a>Additional quick fixes for service provider constructors</h5>
<div class="paragraph">
<p>Appropriate quick fixes are offered when a service defined in a <code><code>module-info.java</code></code> file has a service provider
implementation whose no-arg constructor is not visible, or is non-existent.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/service-provider-create-constructor.png" alt="service provider create constructor" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/service-provider-change-constructor-visibility.png" alt="service provider change constructor visibility" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="template-to-create-switch-labeled-statement-and-switch-expressions"><a class="anchor" href="#template-to-create-switch-labeled-statement-and-switch-expressions"></a>Template to create Switch Labeled Statement and Switch Expressions</h5>
<div class="paragraph">
<p>The <strong>Java Editor</strong> now offers new templates for the creation of switch labeled statements and switch expressions.
On a switch statement, three new templates: <strong>switch labeled statement</strong>, <strong>switch case expression</strong> and
<strong>switch labeled expression</strong> are available as shown below. These new templates are available on Java projects
having compliance level of Java 12 or above.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/switch_labeled_statement.png" alt="switch labeled statement" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/switch_case_expression.png" alt="switch case expression" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/switch_labeled_expression.png" alt="switch labeled expression" />
</div>
</div>
<div class="paragraph">
<p>If <strong>switch</strong> is being used as an expression, then only <strong>switch case expression</strong>
and <strong>switch labeled expression</strong> templates are available as shown below:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/switch_expression_templates.png" alt="switch expression templates" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-views-and-dialogs"><a class="anchor" href="#java-views-and-dialogs"></a>Java Views and Dialogs</h4>
<div class="sect4">
<h5 id="enable-comment-generation-in-modules-and-packages"><a class="anchor" href="#enable-comment-generation-in-modules-and-packages"></a>Enable comment generation in modules and packages</h5>
<div class="paragraph">
<p>An option is now available to enable/disable the comment generation while
creating <code><code>module-info.java</code></code> or <code><code>package-info.java</code></code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/module-info-comment-generation-check-box.png" alt="module info comment generation check box" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/package-info-comment-generation-checkbox.png" alt="package info comment generation checkbox" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="improved-create-getter-and-setter-quick-assist"><a class="anchor" href="#improved-create-getter-and-setter-quick-assist"></a>Improved 'create getter and setter' quick assist</h5>
<div class="paragraph">
<p>The quick assist for creating getter and setter methods from fields no longer forces you to create both.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/getter-setter-dialog-new.png" alt="getter setter dialog new" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="quick-fix-to-open-all-required-closed-projects"><a class="anchor" href="#quick-fix-to-open-all-required-closed-projects"></a>Quick fix to open all required closed projects</h5>
<div class="paragraph">
<p>A quick fix to open all required closed projects is now available in the <strong>Problems</strong> view.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/quickfix-open-missing-projects-problem-view.png" alt="quickfix open missing projects problem view" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/quickfix-open-missing-projects.png" alt="quickfix open missing projects" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="new-ui-for-configuring-module-dependencies"><a class="anchor" href="#new-ui-for-configuring-module-dependencies"></a>New UI for configuring Module Dependencies</h5>
<div class="paragraph">
<p>The <strong>Java Build Path</strong> configuration now has a new tab <strong>Module Dependencies</strong>, which will gradually replace
the options previously hidden behind the <strong>Is Modular</strong> node on other tabs of this dialog. The new tab provides
an intuitive way for configuring all those module-related options for which Java 9 had introduced new command
line options like <code><code>--limit-modules</code></code> etc.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/module-dependencies-cropped.png" alt="module dependencies cropped" />
</div>
</div>
<div class="paragraph">
<p>The dialog focuses on how to build one Java Project, here "org.greetings".</p>
</div>
<div class="paragraph">
<p>Below this focus module, the left hand pane shows all modules that participate in the build, where decorations
A and S mark automatic modules and system modules, respectively. The extent of system modules (from JRE)
can be modified with the <strong>Add System Module…</strong> and <strong>Remove</strong> buttons (corresponds to <code><code>--add-modules</code></code>
and <code><code>--limit-modules</code></code>).</p>
</div>
<div class="paragraph">
<p>When a module is selected in the left hand pane, the right hand pane allows to configure the following properties
for this module:</p>
</div>
<div class="paragraph">
<p><strong>Read Module:</strong></p>
</div>
<div class="paragraph">
<p>Select additional modules that should be accessible from the selected module (corresponds to <code><code>--add-reads</code></code>)</p>
</div>
<div class="paragraph">
<p><strong>Expose Package:</strong></p>
</div>
<div class="paragraph">
<p>Select additional packages to be exposed ("exports" or "opens") from the selected module (corresponds
to <code><code>--add-exports</code></code> or <code><code>--add-opens</code></code>)</p>
</div>
<div class="paragraph">
<p><strong>Patch with:</strong></p>
</div>
<div class="paragraph">
<p>Add more packages and classes to the selected module (corresponds to <code><code>--patch-module</code></code>)</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-compiler"><a class="anchor" href="#java-compiler"></a>Java Compiler</h4>
<div class="sect4">
<h5 id="experimental-java-index-retired"><a class="anchor" href="#experimental-java-index-retired"></a>Experimental Java index retired</h5>
<div class="paragraph">
<p>Eclipse 4.7 introduced a new experimental Java index which was disabled by default.</p>
</div>
<div class="paragraph">
<p>Due to lack of resources to properly support all Java 9+ language changes, this index
is not available anymore starting with Eclipse 4.12.</p>
</div>
<div class="paragraph">
<p>The preference to enable it in <strong>Preferences > Java</strong> is removed and the old index will be always used.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<strong>Preferences > Java > Rebuild Index</strong> button can be used to delete the existing index files and free disk space.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="run-to-line-on-ctrlaltclick-in-annotation-ruler"><a class="anchor" href="#run-to-line-on-ctrlaltclick-in-annotation-ruler"></a>'Run to Line' on Ctrl+Alt+Click in annotation ruler</h5>
<div class="paragraph">
<p>A new shortcut, <strong>Ctrl+Alt+Click</strong>, has been added to the annotation ruler that will invoke the <strong>'Run to Line'</strong>
command and take the program execution to the line of invocation.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/run-to-line.png" alt="run to line" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="content-assist-in-debug-shell"><a class="anchor" href="#content-assist-in-debug-shell"></a>Content assist in Debug Shell</h5>
<div class="paragraph">
<p>Content assist (<strong>Ctrl+Space</strong>) support is now available in the <strong>Debug Shell</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/content-assist-debug-shell.png" alt="content assist debug shell" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="clear-java-stack-trace-console-usage-hint-on-first-edit"><a class="anchor" href="#clear-java-stack-trace-console-usage-hint-on-first-edit"></a>Clear Java Stack Trace Console usage hint on first edit</h5>
<div class="paragraph">
<p>The <strong>Java Stack Trace Console</strong> shows a usage hint when opened the first time. This message
is now automatically removed when the user starts typing or pasting a stack trace.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/jstc-initial-clear.png" alt="jstc initial clear" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="lambda-variable-names-shown-in-variables-view"><a class="anchor" href="#lambda-variable-names-shown-in-variables-view"></a>Lambda variable names shown in Variables view</h5>
<div class="paragraph">
<p>The Lambda variable names are now shown in the <strong>Variables</strong> view while debugging projects in the workspace.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.12/images/lambda-variables-view.png" alt="lambda variables view" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="jdt-developers"><a class="anchor" href="#jdt-developers"></a>JDT Developers</h4>
<div class="sect4">
<h5 id="support-for-new-javadoc-tags"><a class="anchor" href="#support-for-new-javadoc-tags"></a>Support for new Javadoc tags</h5>
<div class="paragraph">
<p>The following Javadoc tags are now supported by the compiler and auto-complete.</p>
</div>
<div class="paragraph">
<p>Tags introduced in JDK 8:</p>
</div>
<div class="paragraph">
<p><code>@apiNote</code></p>
</div>
<div class="paragraph">
<p><code>@implSpec</code></p>
</div>
<div class="paragraph">
<p><code>@implNote</code></p>
</div>
<div class="paragraph">
<p>Tags introduced in JDK 9:</p>
</div>
<div class="paragraph">
<p><code>@index</code></p>
</div>
<div class="paragraph">
<p><code>@hidden</code></p>
</div>
<div class="paragraph">
<p><code>@provides</code></p>
</div>
<div class="paragraph">
<p><code>@uses</code></p>
</div>
<div class="paragraph">
<p>Tags introduced in JDK 10:</p>
</div>
<div class="paragraph">
<p><code>@summary</code></p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.12.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.12.0 and Red Hat CodeReady Studio 12.12 out we are already working on the next release for Eclipse 2019-09.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.12.0.am1.htmlJBoss Tools 4.12.0.AM1 for Eclipse 2019-062019-06-12T11:05:17+00:002019-06-12T00:00:00+00:00jeffmaury
Happy to announce 4.12.0.AM1 (Developer Milestone 1) build for Eclipse 2019-06.
Downloads available at JBoss Tools 4.12.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
Server Tools
Wildfly 17 Server Adapter
A server adapter has been added to work with Wildfly 17. It adds support for Java EE 8.
Enjoy!
Jeff Maury
...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.12.0.AM1 (Developer Milestone 1) build for Eclipse 2019-06.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2019-06/4.12.0.AM1.html">JBoss Tools 4.12.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.12.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-17-server-adapter"><a class="anchor" href="#wildfly-17-server-adapter"></a>Wildfly 17 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 17. It adds support for Java EE 8.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/integration-stack-4.11.0.Final.htmlIntegration Tooling for Eclipse 2019-032019-06-03T08:03:56+00:002019-05-30T00:00:00+00:00pleacu
Check out our new branding for Eclipse 2019-03. We’re now Red Hat CodeReady Studio 12 Integration Stack.
JBoss Tools Integration Stack 4.11.0.Final / Red Hat CodeReady Studio Integration Stack 12.11.0.GA
All of the Integration Stack components have been verified to work with the same dependencies as JBoss Tools 4.11 and Red Hat CodeReady Studio 12.
What’s new for this release?
DataVirtualization support from Teiid Designer is no longer available through the Integration Stack. It can be installed directly from Teiid Designer
This release has an updated BPMN2 Modeler and jBPM/Drools/KIE.
Released Tooling Highlights
Business Process and Rules Development
BPMN2 Modeler Known Issues
See the BPMN2 1.5.1.Final Known...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><strong>Check out our new branding for Eclipse 2019-03. We’re now Red Hat CodeReady Studio 12 Integration Stack.</strong></p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
<div class="paragraph">
<p><strong>JBoss Tools Integration Stack 4.11.0.Final / Red Hat CodeReady Studio Integration Stack 12.11.0.GA</strong></p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
All of the Integration Stack components have been verified to work with the same dependencies as JBoss Tools 4.11 and Red Hat CodeReady Studio 12.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="whats-new-for-this-release"><a class="anchor" href="#whats-new-for-this-release"></a>What’s new for this release?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>DataVirtualization support from Teiid Designer is no longer available through the Integration Stack. It can be installed directly from <a href="http://download.jboss.org/jbosstools/photon/stable/updates/integration-stack/teiiddesigner">Teiid Designer</a></p>
</div>
<div class="paragraph">
<p>This release has an updated BPMN2 Modeler and jBPM/Drools/KIE.</p>
</div>
<div class="sect2">
<h3 id="released-tooling-highlights"><a class="anchor" href="#released-tooling-highlights"></a>Released Tooling Highlights</h3>
<div class="sect3">
<h4 id="business-process-and-rules-development"><a class="anchor" href="#business-process-and-rules-development"></a>Business Process and Rules Development</h4>
<div class="sect4">
<h5 id="bpmn2-modeler-known-issues"><a class="anchor" href="#bpmn2-modeler-known-issues"></a>BPMN2 Modeler Known Issues</h5>
<div class="paragraph">
<p>See the <a href="https://access.redhat.com/documentation/en-us/red_hat_codeready_studio_integration_stack/12.11/html/12.11.0_release_notes_and_known_issues/known_issues#bpmn2_1_5_1_final_2">BPMN2 1.5.1.Final Known Issues Section</a> of the Integration Stack 12.11.0.GA release notes.</p>
</div>
</div>
<div class="sect4">
<h5 id="droolsjbpm6-known-issues"><a class="anchor" href="#droolsjbpm6-known-issues"></a>Drools/jBPM6 Known Issues</h5>
<div class="paragraph">
<p>See the <a href="https://access.redhat.com/documentation/en-us/red_hat_codeready_studio_integration_stack/12.11/html/12.11.0_release_notes_and_known_issues/resolved_issues#drools_7_21_0_final">Drools 7.21.0.Final Known Issues Section</a> of the Integration Stack 12.11.0.GA release notes.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="whats-an-integration-stack"><a class="anchor" href="#whats-an-integration-stack"></a>What’s an Integration Stack?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio Integration Stack is a set of Eclipse-based development tools. It further enhances the IDE functionality provided by Developer Studio, with plug-ins specifically for use when developing for other Red Hat products. It’s where BRMS tooling is aggregated. The following frameworks are supported:</p>
</div>
<div class="sect2">
<h3 id="red-hat-business-process-and-rules-development"><a class="anchor" href="#red-hat-business-process-and-rules-development"></a>Red Hat Business Process and Rules Development</h3>
<div class="paragraph">
<p>Business Process and Rules Development plug-ins provide design, debug and testing tooling for developing business processes for Red Hat BRMS and Red Hat BPM Suite.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="https://tools.jboss.org/features/bpel.html">BPEL Designer</a> - Orchestrating your business processes.</p>
</li>
<li>
<p><a href="https://tools.jboss.org/features/bpmn2.html">BPMN2 Modeler</a> - A graphical modeling tool which allows creation and editing of Business Process Modeling Notation diagrams using graphiti.</p>
</li>
<li>
<p><a href="https://tools.jboss.org/features/drools.html">Drools</a> - A Business Logic integration Platform which provides a unified and integrated platform for Rules, Workflow and Event Processing including KIE.</p>
</li>
<li>
<p><a href="https://tools.jboss.org/features/jbpm.html">jBPM</a> - A flexible Business Process Management (BPM) suite.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="the-jboss-tools-website-features-tab"><a class="anchor" href="#the-jboss-tools-website-features-tab"></a>The JBoss Tools website features tab</h3>
<div class="paragraph">
<p>Don’t miss the <a href="https://tools.jboss.org/features">Features tab</a> for up to date information on your favorite Integration Stack components.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The easiest way to install the Integration Stack components is through the <a href="https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?downloadType=distributions&product=jbossdeveloperstudio&version=12.11.0">stand-alone installer</a> or through our <a href="http://tools.jboss.org/downloads/overview.html">JBoss Tools Download Site</a>.</p>
</div>
<div class="paragraph">
<p>For a complete set of Integration Stack installation instructions, see <a href="https://access.redhat.com/documentation/en-us/red_hat_jboss_developer_studio_integration_stack/12.0/html/installation_guide/">Integration Stack Installation Guide</a></p>
</div>
<div class="paragraph">
<p><em>Let us know how it goes!</em></p>
</div>
<div class="paragraph">
<p>Paul Leacu.</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/quarkus.htmlQuarkus2019-05-13T12:23:22+00:002019-05-13T00:00:00+00:00jeffmaury
You’ve probably heard about Quarkus, the Supersonic Subatomic Java framework tailored for Kubernetes and containers.
We wrote an article on how to create your first Quarkus project in an Eclipse based IDE (like Red Hat CodeReady Studio).
You can read it at https://developers.redhat.com/blog/2019/05/09/create-your-first-quarkus-project-with-eclipse-ide-red-hat-codeready-studio/
...
<div><div class="paragraph">
<p>You’ve probably heard about <a href="https://quarkus.io">Quarkus</a>, the Supersonic Subatomic Java framework tailored for Kubernetes and containers.</p>
</div>
<div class="paragraph">
<p>We wrote an article on how to create your first Quarkus project in an Eclipse based IDE (like <a href="https://developers.redhat.com/products/codeready-studio/overview">Red Hat CodeReady Studio</a>).</p>
</div>
<div class="paragraph">
<p>You can read it at <a href="https://developers.redhat.com/blog/2019/05/09/create-your-first-quarkus-project-with-eclipse-ide-red-hat-codeready-studio/" class="bare">https://developers.redhat.com/blog/2019/05/09/create-your-first-quarkus-project-with-eclipse-ide-red-hat-codeready-studio/</a></p>
</div></div>
https://tools.jboss.org/blog/12.11.0.ga.htmlJBoss Tools and Red Hat CodeReady Studio for Eclipse 2019-032019-04-01T20:35:27+00:002019-04-01T00:00:00+00:00jeffmaury
JBoss Tools 4.11.0 and Red Hat CodeReady Studio 12.11 for Eclipse 2019-03 are here waiting for you. Check it out!
Installation
Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat CodeReady product page and run it like this:
java -jar devstudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:
This release requires at least Eclipse 4.11 (2019-03) but we recommend
using the latest Eclipse 4.11 2019-03 JEE Bundle since then you get most of the dependencies preinstalled.
Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2019-03/4.11.0.Final.html">JBoss Tools 4.11.0</a> and <a href="https://tools.jboss.org/downloads/devstudio/2019-03/12.11.0.GA.html">Red Hat CodeReady Studio 12.11</a> for Eclipse 2019-03 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/crstudio12.png" alt="crstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat CodeReady Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/devstudio/overview/">Red Hat CodeReady product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar devstudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) CodeReady Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.11 (2019-03) but we recommend
using the latest <a href="http://www.eclipse.org/downloads/packages/release/2019-03/r/eclipse-ide-java-ee-developers">Eclipse 4.11 2019-03 JEE Bundle</a> since then you get most of the dependencies preinstalled.</p>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat CodeReady Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was improvements for container based development and bug fixing.
Eclipse 2019-03 itself has a lot of new cool stuff but let me highlight just a few updates in both Eclipse 2019-03 and JBoss Tools plugins that I think are worth mentioning.</p>
</div>
<div class="sect2">
<h3 id="openshift-3"><a class="anchor" href="#openshift-3"></a>OpenShift 3</h3>
<div class="sect3">
<h4 id="new-openshift-connection-helper"><a class="anchor" href="#new-openshift-connection-helper"></a>New OpenShift connection helper</h4>
<div class="paragraph">
<p>When you need to defined a new OpenShift connection, you need to provide the following information:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>cluster URL</p>
</li>
<li>
<p>username and password or token</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If you’ve already logged in your cluster through the OpenShift Web Console, you can copy an <code>oc</code> command
in the clipboard that contains both the cluster URL and your token.</p>
</div>
<div class="paragraph">
<p>So, from now, there is a new option that allows you to initialize the wizard fields from the copied <code>oc</code>
command:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/connection-wizard-paste.png" alt="connection wizard paste" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code>Paste Login Command</code> button and the fields will be initialized:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/connection-wizard-paste1.png" alt="connection wizard paste1" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server tools</h3>
<div class="sect3">
<h4 id="eap-7-2-server-adapter"><a class="anchor" href="#eap-7-2-server-adapter"></a>EAP 7.2 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with EAP 7.2.</p>
</div>
</div>
<div class="sect3">
<h4 id="wildfly-15-server-adapter"><a class="anchor" href="#wildfly-15-server-adapter"></a>Wildfly 15 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 15. It adds support for Java EE 8.</p>
</div>
<p>Related JIRA: <a href="https://issues.jboss.org/browse/JBIDE-26502">JBIDE-26502</a></p>
</div>
<div class="sect3">
<h4 id="wildfly-16-server-adapter"><a class="anchor" href="#wildfly-16-server-adapter"></a>Wildfly 16 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 16. It adds support for Java EE 8.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="new-runtime-provider"><a class="anchor" href="#new-runtime-provider"></a>New Runtime Provider</h4>
<div class="paragraph">
<p>The new Hibernate 5.4 runtime provider has been added. It incorporates Hibernate Core version 5.4.1.Final and Hibernate Tools version 5.4.1.Final</p>
</div>
</div>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.9.Final and Hibernate Tools version 5.3.9.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.2 runtime provider now incorporates Hibernate Core version 5.2.18.Final and Hibernate Tools version 5.2.12.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="maven"><a class="anchor" href="#maven"></a>Maven</h3>
<div class="sect3">
<h4 id="maven-support-updated-to-m2e-1-11"><a class="anchor" href="#maven-support-updated-to-m2e-1-11"></a>Maven support updated to M2E 1.11</h4>
<div class="paragraph">
<p>The Maven support is based on Eclipse M2E 1.11</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="platform"><a class="anchor" href="#platform"></a>Platform</h3>
<div class="sect3">
<h4 id="views-dialogs-and-toolbar"><a class="anchor" href="#views-dialogs-and-toolbar"></a>Views, Dialogs and Toolbar</h4>
<div class="sect4">
<h5 id="user-defined-resource-filters-in-project-explorer"><a class="anchor" href="#user-defined-resource-filters-in-project-explorer"></a>User defined resource filters in Project Explorer</h5>
<div class="paragraph">
<p>The <strong>Filters and Customization…</strong> menu in <strong>Project Explorer</strong> now shows an additional <strong>User filters</strong>
tab which can be used to exclude some resources from Project Explorer based on their name.</p>
</div>
<div class="paragraph">
<p>Full name and regular expressions are supported.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/user-filters.png" alt="user filters" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="error-log-view-added-to-platform"><a class="anchor" href="#error-log-view-added-to-platform"></a>Error Log view added to Platform</h5>
<div class="paragraph">
<p>The <strong>Error Log</strong> view has been moved from the PDE project to the Platform project. See
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=50517">bug 50517</a> for details.</p>
</div>
</div>
<div class="sect4">
<h5 id="copy-to-clipboard-in-installation-details"><a class="anchor" href="#copy-to-clipboard-in-installation-details"></a>Copy to clipboard in Installation Details</h5>
<div class="paragraph">
<p>A copy to clipboard action has been added to all tabs of the <strong>Installation Details</strong> dialog.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/copy-installation-details.png" alt="copy installation details" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="copy-paste-of-environment-variables"><a class="anchor" href="#copy-paste-of-environment-variables"></a>Copy & paste of Environment Variables</h5>
<div class="paragraph">
<p>The <strong>Environment</strong> tab in a <strong>Launch configuration</strong> dialog supports copy & paste actions now. The environment
variables are transferred as text data, so it is not only possible to copy & paste between two different
launch configurations, but also between the launch configuration and e.g. some text editor or the command line.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/env-var-copy-paste.png" alt="env var copy paste" />
</div>
</div>
<div class="paragraph">
<p>This feature is available in all launch configurations which use the common <strong>Environment</strong> tab.</p>
</div>
</div>
<div class="sect4">
<h5 id="useful-links-to-add-projects-to-empty-workspace"><a class="anchor" href="#useful-links-to-add-projects-to-empty-workspace"></a>Useful links to add projects to empty workspace</h5>
<div class="paragraph">
<p>When Eclipse IDE is started for the first time or with a new workspace, it may not be intuitive for new users
on how to proceed. To help the users in getting started, the following useful links have been provided to add
a project to the workspace:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Perspective specific project creation wizard</p>
</li>
<li>
<p>Generic New Project wizard</p>
</li>
<li>
<p>Import projects wizard</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/ProjectExplorer.png" alt="ProjectExplorer" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="new-mnemonics-in-error-log-view"><a class="anchor" href="#new-mnemonics-in-error-log-view"></a>New mnemonics in Error Log view</h5>
<div class="paragraph">
<p>New mnemonics have been added for <strong>Export Entry…</strong> and <strong>Event Detail</strong> entries in the context menu of <strong>Error Log</strong> view.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/mneumonics.png" alt="mneumonics" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="themes-and-styling"><a class="anchor" href="#themes-and-styling"></a>Themes and Styling</h4>
<div class="sect4">
<h5 id="improved-dark-theme-for-mac"><a class="anchor" href="#improved-dark-theme-for-mac"></a>Improved Dark theme for Mac</h5>
<div class="paragraph">
<p>The Dark theme for Mac has been improved to use the colors from the macOS system dark appearance. Some of the
notable changes in Eclipse IDE are the dark window title bar, menus, file dialogs, combos and buttons.</p>
</div>
<div class="paragraph">
<p>Note: This change is available on macOS Mojave and later.</p>
</div>
<div class="paragraph">
<p>Before:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/darktheme-before.png" alt="darktheme before" />
</div>
</div>
<div class="paragraph">
<p>After:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/darktheme-after.png" alt="darktheme after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="improved-dark-theme-for-windows"><a class="anchor" href="#improved-dark-theme-for-windows"></a>Improved Dark theme for Windows</h5>
<div class="paragraph">
<p>The drawing operations have been improved in Windows so the custom drawn icons look better now.
For example, check the close icon below.</p>
</div>
<div class="paragraph">
<p>Before:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/closebutton_before.png" alt="closebutton before" />
</div>
</div>
<div class="paragraph">
<p>After:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/closebutton_after.png" alt="closebutton after" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="general-updates"><a class="anchor" href="#general-updates"></a>General Updates</h4>
<div class="sect4">
<h5 id="performance-improvements"><a class="anchor" href="#performance-improvements"></a>Performance improvements</h5>
<div class="paragraph">
<p>The startup and interactive performance of multiple operations has been improved again in this release.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="java-12-support"><a class="anchor" href="#java-12-support"></a>Java 12 Support</h4>
<div class="sect4">
<h5 id="java-12"><a class="anchor" href="#java-12"></a>Java 12</h5>
<div class="paragraph">
<p><a href="http://jdk.java.net/12/">Java 12</a> is out and Eclipse JDT supports Java 12 for 4.11 via
<a href="https://marketplace.eclipse.org/content/java-12-support-eclipse-2019-03-411">Marketplace</a>. The release
notably includes the following Java 12 feature:
<a href="http://openjdk.java.net/jeps/325">JEP 325: Switch Expressions (Preview)</a>. Please note that this is a
<a href="http://openjdk.java.net/jeps/12">preview language feature</a> and hence enable preview option should be on.
For an informal introduction of the support, please refer to
<a href="https://wiki.eclipse.org/Java12/Examples">Java 12 Examples wiki</a>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="junit"><a class="anchor" href="#junit"></a>JUnit</h4>
<div class="sect4">
<h5 id="junit-5-4"><a class="anchor" href="#junit-5-4"></a>JUnit 5.4</h5>
<div class="paragraph">
<p><a href="https://junit.org/junit5/docs/5.4.0/release-notes/">JUnit 5.4</a> is here and Eclipse JDT has been
updated to use this version.</p>
</div>
</div>
<div class="sect4">
<h5 id="test-factory-template"><a class="anchor" href="#test-factory-template"></a>Test factory template</h5>
<div class="paragraph">
<p>JUnit Jupiter now allows test factory methods to return a single <code><code>DynamicNode</code></code>. The <code><code>test_factory</code></code>
template has been updated to include <code><code>DynamicNode</code></code> in the return type.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/junit-test-template.png" alt="junit test template" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="default-and-constant-values-in-content-assist-information-pop-up"><a class="anchor" href="#default-and-constant-values-in-content-assist-information-pop-up"></a>Default and constant values in content assist information pop-up</h5>
<div class="paragraph">
<p>The additional information pop-up of a content assist proposal now shows the default value
of an annotation type element:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/default-value-annotation-type-elelemt.png" alt="default value annotation type elelemt" />
</div>
</div>
<div class="paragraph">
<p>and the value of a constant:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/constant-value.png" alt="constant value" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="create-service-provider-method"><a class="anchor" href="#create-service-provider-method"></a>Create service provider method</h5>
<div class="paragraph">
<p>If a service defined in a <code><code>module-info.java</code></code> file has an invalid service provider implementation,
a <strong>Quick Fix (Ctrl + 1)</strong> is now available to create the new provider method:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/service-provider-proposal.png" alt="service provider proposal" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/service-provider-linked-proposal.png" alt="service provider linked proposal" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-formatter"><a class="anchor" href="#java-formatter"></a>Java Formatter</h4>
<div class="sect4">
<h5 id="line-wrapping-settings-for-binary-operators"><a class="anchor" href="#line-wrapping-settings-for-binary-operators"></a>Line wrapping settings for binary operators</h5>
<div class="paragraph">
<p>Instead of a single line wrapping setting for binary expressions, there’s now a whole section of settings
for various kinds of <strong>binary operators</strong> (multiplicative, additive, logical, etc.). There are settings
for <em>relational</em> (including equality) and <em>shift</em> operators, which were not covered by the old setting.
Also, <em>string concatenation</em> can now be treated differently from arithmetic sum.</p>
</div>
<div class="paragraph">
<p>The settings can be found in the Profile Editor (<strong>Preferences > Java > Code Style > Formatter > Edit…</strong>)
under the <strong>Line Wrapping > Wrapping settings > Binary expressions</strong> subsection.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/formatter-wrap-binary-expressions.png" alt="formatter wrap binary expressions" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="white-space-settings-for-binary-operators"><a class="anchor" href="#white-space-settings-for-binary-operators"></a>White space settings for binary operators</h5>
<div class="paragraph">
<p>The white space around operators in <strong>binary expressions</strong> can now be controlled separately for different groups
of operators, consistent with the line wrapping settings.</p>
</div>
<div class="paragraph">
<p>The new <strong>Binary operators</strong> sub-section has been added under White Space > Expressions in the Formatter
profile editor.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/formatter-spaces-binary-expressions.png" alt="formatter spaces binary expressions" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="wrapping-setting-for-chained-conditional-expressions"><a class="anchor" href="#wrapping-setting-for-chained-conditional-expressions"></a>Wrapping setting for chained conditional expressions</h5>
<div class="paragraph">
<p>A chain of <em>nested conditional expressions</em> (using ternary operator) can be now wrapped as a single group,
with all of them indented at the same level. It’s only possible for right-sided nesting.</p>
</div>
<div class="paragraph">
<p>Find the <strong>Chained conditionals</strong> setting in the Profile Editor under the
<strong>Line Wrapping > Wrapping settings > Other expressions</strong> subsection.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/formatter-wrap-chained-conditionals.png" alt="formatter wrap chained conditionals" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="indent-javadoc-tag-descriptions"><a class="anchor" href="#indent-javadoc-tag-descriptions"></a>Indent Javadoc tag descriptions</h5>
<div class="paragraph">
<p>The Formatter Profile has a new setting that indents wrapped Javadoc tag descriptions.
It’s called <em>Indent other tag descriptions when wrapped</em>, in contrast to the preexisting <em>Indent wrapped
@param/@throws descriptions</em> setting. It affects tags like <code><code>@return</code></code> or <code><code>@deprecated</code></code>.</p>
</div>
<div class="paragraph">
<p>The settings can be found in the Profile Editor (<strong>Preferences > Java > Code Style > Formatter > Edit…</strong>)
under the <strong>Comments > Javadocs</strong> section.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/formatter-indent-tags.png" alt="formatter indent tags" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="history-for-expressions-in-the-variables-view"><a class="anchor" href="#history-for-expressions-in-the-variables-view"></a>History for expressions in the Variables view</h5>
<div class="paragraph">
<p>The <strong>Variables</strong> view now stores a history of the expressions used in the <strong>Detail</strong> pane. You can choose
a <em>previously entered expression</em> for a variable from the new drop-down menu. The expression will be
copied to the <strong>Detail</strong> pane where you can select it to perform various actions present in the context menu.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.11/images/expressions-history.png" alt="expressions history" />
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.11.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.11.0 and Red Hat CodeReady Studio 12.11 out we are already working on the next release for Eclipse 2019-06.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/ij-openshift-connector.htmlAnnouncing IntelliJ OpenShift Connector2019-03-13T13:51:59+00:002019-03-11T00:00:00+00:00jeffmaury
We are extremely pleased to announce that the preview release of the Red Hat OpenShift Connector
for JetBrains products (IntelliJ IDEA, WebStorm,….) is now available. You can download the
OpenShift Connector plugin from the JetBrains marketplace
or install it directly from the plugins gallery in JetBrains products.
This article provides describes the features and benefits of the plugin and provides installation details.
It also provides a demo of how using the plugin improves the end-to-end experience of developing
and deploying Spring Boot applications to your OpenShift cluster.
Benefits of using the extension
Red Hat OpenShift is a container application platform that brings
the power of Kubernetes and containers to...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>We are extremely pleased to announce that the preview release of the Red Hat OpenShift Connector
for JetBrains products (IntelliJ IDEA, WebStorm,….) is now available. You can download the
OpenShift Connector plugin from the <a href="https://pluins.jetbrains.com">JetBrains marketplace</a>
or install it directly from the plugins gallery in JetBrains products.</p>
</div>
<div class="paragraph">
<p>This article provides describes the features and benefits of the plugin and provides installation details.
It also provides a demo of how using the plugin improves the end-to-end experience of developing
and deploying Spring Boot applications to your OpenShift cluster.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="benefits-of-using-the-extension"><a class="anchor" href="#benefits-of-using-the-extension"></a>Benefits of using the extension</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://www.openshiftcom">Red Hat OpenShift</a> is a container application platform that brings
the power of Kubernetes and containers to the enterprise. Regardless of the applications architecture,
OpenShift lets you easily and quickly build, develop, and deploy in nearly any infrastructure, public or private.</p>
</div>
<div class="paragraph">
<p>Therefore, whether it’s on-premises, in a public cloud, or hosted, you have an award-winning platform
to get your next big idea to market ahead of your competition.</p>
</div>
<div class="paragraph">
<p>Using OpenShift Connector, you can interact with any Red Hat OpenShift including a local instance of OpenShift
clusters such as <a href="https://developers.redhat.com/products/cdk/overview/">minishift/Red Hat Container Development Kit</a>.
Leveraging the OpenShift Application Explorer view, you can improve the end-to-end experience of developing applications.</p>
</div>
<div class="paragraph">
<p>The plugin enables you to perform all this directly using JetBrains products (IntelliJ IDEA, WebStorm,….)
on Windows, Linux and macOS platforms and removes the complexity of memorizing some fairly complicated
CLI commands.</p>
</div>
<div class="paragraph">
<p>Once the OpenShift Connector is installed, a new panel, the OpenShift view, is enabled in the Explorer panel.
Then, you can access the view and connect to a running OpenShift cluster to perform the required operations.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="demo"><a class="anchor" href="#demo"></a>Demo</h2>
<div class="sectionbody">
<div class="paragraph">
<p>You can see a live demo of the plugin here:</p>
</div>
<div class="videoblock">
<div class="content">
<iframe src="https://www.youtube.com/embed/kCESA7a5i3M?rel=0" frameborder="0" allowfullscreen=""></iframe>
</div>
</div>
<div class="paragraph">
<p>Below are the steps to run the demonstration by yourself</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>First, you will need to install any JetBrains product (IntelliJ IDEA, WebStorm,….) 2018.1 or later.</p>
</div>
<div class="paragraph">
<p>To install the plugin, bring up the plugins configuration dialog: <code>File → Settings → Plugins</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector.png" alt="ij openshift connector" />
</div>
</div>
<div class="paragraph">
<p>In the search bar, enter <code>OpenShift</code> and click on the <code>OpenShift Connector by Red Hat</code> item:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector1.png" alt="ij openshift connector1" />
</div>
</div>
<div class="paragraph">
<p>Click the <code>Install</code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector2.png" alt="ij openshift connector2" />
</div>
</div>
<div class="paragraph">
<p>Once the plugin has been downloaded, click the <code>Restart IDE</code> button.</p>
</div>
<div class="paragraph">
<p>Once the IDE has been restarted, mouse over the Views icon in the bottom left area:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector3.png" alt="ij openshift connector3" />
</div>
</div>
<div class="paragraph">
<p>Select the <code>OpenShift</code> item:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector4.png" alt="ij openshift connector4" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="the-plugin-in-action"><a class="anchor" href="#the-plugin-in-action"></a>The plugin in action</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="connecting-to-your-openshift-instance"><a class="anchor" href="#connecting-to-your-openshift-instance"></a>Connecting to your OpenShift instance</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>If you’re working locally, start the local OpenShift instance using <a href="https://developers.redhat.com/products/cdk/overview/">minishift/Red Hat Container Development Kit</a></p>
</li>
<li>
<p>You then need to log in to the running OpenShift cluster: right click on the cluster URL tree node and select <code>Log in to cluster</code>.</p>
</li>
</ol>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector5.png" alt="ij openshift connector5" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>developer</code> in the <code>Username</code> field and any value in the <code>Password</code> field and press the <code>OK</code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector6.png" alt="ij openshift connector6" />
</div>
</div>
</div>
<div class="sect2">
<h3 id="import-the-project-to-be-deployed"><a class="anchor" href="#import-the-project-to-be-deployed"></a>Import the project to be deployed</h3>
<div class="paragraph">
<p>Before we work with our local cluster, first import our application source code. We will use a simple
Spring Boot application whose source code is located at <code><a href="https://github.com/openshift-evangelists/Wild-West-Backend" class="bare">https://github.com/openshift-evangelists/Wild-West-Backend</a></code>.</p>
</div>
<div class="paragraph">
<p>In order to import the application, use the <code>File → New → Project from Version Control → Git</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector7.png" alt="ij openshift connector7" />
</div>
</div>
<div class="paragraph">
<p>Enter <code><a href="https://github.com/openshift-evangelists/Wild-West-Backend" class="bare">https://github.com/openshift-evangelists/Wild-West-Backend</a></code> in the <code>URL</code> field and press
the <code>Clone</code> button.</p>
</div>
</div>
<div class="sect2">
<h3 id="create-a-project-for-the-application"><a class="anchor" href="#create-a-project-for-the-application"></a>Create a project for the application</h3>
<div class="paragraph">
<p>The application will be hosted in an OpenShift project (similar to Kubernetes namespaces).
For more information about OpenShift projects, see the
<a href="https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html">official documentation</a></p>
</div>
<div class="paragraph">
<p>In the <code>OpenShift</code> view, right click on the cluster node (the one with the URL) and select <code>New Project</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector8.png" alt="ij openshift connector8" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>spring-boot</code> in the <code>Project name</code> and press the <code>OK</code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector9.png" alt="ij openshift connector9" />
</div>
</div>
</div>
<div class="sect2">
<h3 id="create-the-application"><a class="anchor" href="#create-the-application"></a>Create the application</h3>
<div class="paragraph">
<p>In the <code>spring-boot</code> node, right click and select <code>New Application</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector10.png" alt="ij openshift connector10" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>springbootapp</code> in the <code>Application name</code> field and press the <code>OK</code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector11.png" alt="ij openshift connector11" />
</div>
</div>
</div>
<div class="sect2">
<h3 id="deploy-the-component"><a class="anchor" href="#deploy-the-component"></a>Deploy the component</h3>
<div class="paragraph">
<p>In the <code>springbootapp</code> node, right click and select <code>New Component</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector12.png" alt="ij openshift connector12" />
</div>
</div>
<div class="paragraph">
<p>Enter <code>backend</code> in the <code>Name</code> field:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector13.png" alt="ij openshift connector13" />
</div>
</div>
<div class="paragraph">
<p>Press the <code>Browse</code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector14.png" alt="ij openshift connector14" />
</div>
</div>
<div class="paragraph">
<p>Select the <code>Wild-West-Backend</code> project and press the <code>OK</code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector15.png" alt="ij openshift connector15" />
</div>
</div>
<div class="paragraph">
<p>In the <code>Component type</code> field, select the <code>java</code> item:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector16.png" alt="ij openshift connector16" />
</div>
</div>
<div class="paragraph">
<p>Press the <code>OK</code> button. A new terminal window will be displayed and the component
will be deployed to your local cluster.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector17.png" alt="ij openshift connector17" />
</div>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
On IntelliJ IDEA 2018.3 or 2018.3 based JetBrains products, the terminal window will be
automatically closed when the underlying command process is terminated. We are working for a
workaround but we recommend to use previous versions until the plugin will be updated.
See the <a href="https://github.com/redhat-developer/intellij-openshift-connector/issues/33">issue</a> for
more information
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Once deployed, the component will appear in the <code>OpenShift</code> view:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector18.png" alt="ij openshift connector18" />
</div>
</div>
</div>
<div class="sect2">
<h3 id="testing-the-component"><a class="anchor" href="#testing-the-component"></a>Testing the component</h3>
<div class="paragraph">
<p>Let’s try to test the deployed application in a browser. In the <code>OpenShift</code> view, right click
the <code>backend</code> node and select <code>Open in Browser</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector19.png" alt="ij openshift connector19" />
</div>
</div>
<div class="paragraph">
<p>As no URL has been set up for our component (to allow external access to our application),
press the <code>OK</code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector20.png" alt="ij openshift connector20" />
</div>
</div>
<div class="paragraph">
<p>As our application is exposing several ports, we need to select one: choose the <code>8080</code> one
and press the <code>OK</code> button. The following brower window should be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector21.png" alt="ij openshift connector21" />
</div>
</div>
<div class="paragraph">
<p>Don’t worry, the error message is displayed because our application has no mapping
for the root. Append <code>/egg</code> in the URL bar in the browser window and press the
<code>ENTER</code> key:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector22.png" alt="ij openshift connector22" />
</div>
</div>
</div>
<div class="sect2">
<h3 id="inner-loop"><a class="anchor" href="#inner-loop"></a>Inner loop</h3>
<div class="paragraph">
<p>In the following scenario, we will modify locally the application source code and
verify that the modification is broadcasted immediatly to the cluster.
Let’s switch our application in <code>watch</code> mode so that every local modification is sent
to the cluster:</p>
</div>
<div class="paragraph">
<p>In the <code>OpenShift</code> view, right click the <code>backend</code> node and select <code>Watch</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector23.png" alt="ij openshift connector23" />
</div>
</div>
<div class="paragraph">
<p>Now, in the <code>Project</code> view, open the <code>src/main/java/com/openshift/wildwest/APIController.java</code> file:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector24.png" alt="ij openshift connector24" />
</div>
</div>
<div class="paragraph">
<p>Modify the <code>egg</code> method:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java"> @RequestMapping("/egg")
public String easterEgg() {
return "Every game needs an easter egg!!";
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>with the following content:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java"> @RequestMapping("/egg")
public String easterEgg() {
return "A change from inside my ide";
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Refresh the browser window and you should see the following output:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/ij-openshift-connector25.png" alt="ij openshift connector25" />
</div>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.11.0.am1.htmlJBoss Tools 4.11.0.AM1 for Eclipse 2018-122019-02-28T09:48:57+00:002019-02-26T00:00:00+00:00jeffmaury
Happy to announce 4.11.0.AM1 (Developer Milestone 1) build for Eclipse 2018-12.
Downloads available at JBoss Tools 4.11.0 AM1.
What is New?
Full info is at this page. Some highlights are below.
Server Tools
EAP 7.2 Server Adapter
A server adapter has been added to work with EAP 7.2.
OpenShift 3
New OpenShift connection helper
When you need to defined a new OpenShift connection, you need to provide the following information:
cluster URL
username and password or token
If you’ve already logged in your cluster through the OpenShift Web Console, you can copy an oc command
in the clipboard that contains both the cluster URL and your token.
So, from now, there is a new...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.11.0.AM1 (Developer Milestone 1) build for Eclipse 2018-12.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2018-12/4.11.0.AM1.html">JBoss Tools 4.11.0 AM1</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.11.0.AM1.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="eap-7-2-server-adapter"><a class="anchor" href="#eap-7-2-server-adapter"></a>EAP 7.2 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with EAP 7.2.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="openshift-3"><a class="anchor" href="#openshift-3"></a>OpenShift 3</h3>
<div class="sect3">
<h4 id="new-openshift-connection-helper"><a class="anchor" href="#new-openshift-connection-helper"></a>New OpenShift connection helper</h4>
<div class="paragraph">
<p>When you need to defined a new OpenShift connection, you need to provide the following information:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>cluster URL</p>
</li>
<li>
<p>username and password or token</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If you’ve already logged in your cluster through the OpenShift Web Console, you can copy an <code>oc</code> command
in the clipboard that contains both the cluster URL and your token.</p>
</div>
<div class="paragraph">
<p>So, from now, there is a new option that allows you to initialize the wizard fields from the copied <code>oc</code>
command:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/connection-wizard-paste.png" alt="connection wizard paste" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code>Paste Login Command</code> button and the fields will be initialized:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/connection-wizard-paste1.png" alt="connection wizard paste1" />
</div>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/we-are-hiring - again.htmlWe are hiring2019-01-17T13:31:32+00:002019-01-17T00:00:00+00:00jeffmaury
The Developer Experience and Tooling group, of which JBoss Tools team is part,
is looking for an awesome developer. We are looking to continue
improving the usability for developers around various IDEs including Eclipse, VSCode and IntelliJ and around the Red Hat product line, including JBoss Middleware.
Topics range from Java to JavaScript, application servers to containers, source code tinkering to full blown CI/CD setups.
If you are into making developers life easier and like to be able to get involved in many different technologies and get them to work great together then do apply.
You can also ping me (jeffmaury@redhat.com) for questions.
The current list...
<div><div class="paragraph">
<p>The Developer Experience and Tooling group, of which JBoss Tools team is part,
is looking for an awesome developer. We are looking to continue
improving the usability for developers around various IDEs including Eclipse, VSCode and IntelliJ and around the Red Hat product line, including JBoss Middleware.</p>
</div>
<div class="paragraph">
<p>Topics range from Java to JavaScript, application servers to containers, source code tinkering to full blown CI/CD setups.</p>
</div>
<div class="paragraph">
<p>If you are into making developers life easier and like to be able to get involved in many different technologies and get them to work great together then do apply.</p>
</div>
<div class="paragraph">
<p>You can also ping me (<a href="mailto:jeffmaury@redhat.com">jeffmaury@redhat.com</a>) for questions.</p>
</div>
<div class="paragraph">
<p>The current list of openings are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="https://global-redhat.icims.com/jobs/66514/software-engineer---jboss-and-openshift-tooling/job">Sofware engineer</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Note: the job postings do list a specific location, but for the right candidate we are happy to consider many locations worldwide (anywhere there is a Red Hat office), as well as working from home.</p>
</div>
<div class="paragraph">
<p>Have fun!<br />
Jeff Maury<br />
<a href="http://twitter.com/jeffmaury">@jeffmaury</a>
<a href="http://twitter.com/jbosstools">@jbosstools</a></p>
</div></div>
https://tools.jboss.org/blog/12.9.0.htmlJBoss Tools and Red Hat Developer Studio for Eclipse 2018-092018-10-09T09:17:08+00:002018-10-08T00:00:00+00:00jeffmaury
JBoss Tools 4.9.0 and Red Hat Developer Studio 12.9 for Eclipse 2018-09 are here waiting for you. Check it out!
Installation
Red Hat Developer Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat Developer product page and run it like this:
java -jar devstudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) Developer Studio require a bit more:
This release requires at least Eclipse 4.9 (2018-09) but we recommend
using the latest Eclipse 4.9 2018-09 JEE Bundle since then you get most of the dependencies preinstalled.
Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/2018-09/4.9.0.Final.html">JBoss Tools 4.9.0</a> and <a href="https://tools.jboss.org/downloads/devstudio/2018-09/12.9.0.GA.html">Red Hat Developer Studio 12.9</a> for Eclipse 2018-09 are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/devstudio12.png" alt="devstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat Developer Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/devstudio/overview/">Red Hat Developer product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar devstudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) Developer Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.9 (2018-09) but we recommend
using the latest <a href="http://www.eclipse.org/downloads/packages/release/2018-09/r/eclipse-ide-java-ee-developers">Eclipse 4.9 2018-09 JEE Bundle</a> since then you get most of the dependencies preinstalled.</p>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat Developer Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was on adoption of Java11, improvements for container based development and bug fixing.
Eclipse 2018-09 itself has a lot of new cool stuff but let me highlight just a few updates in both Eclipse 2018-09 and JBoss Tools plugins that I think are worth mentioning.</p>
</div>
<div class="sect2">
<h3 id="openshift-3"><a class="anchor" href="#openshift-3"></a>OpenShift 3</h3>
<div class="sect3">
<h4 id="inner-loop-for-spring-boot-applications"><a class="anchor" href="#inner-loop-for-spring-boot-applications"></a>Inner loop for Spring Boot applications</h4>
<div class="paragraph">
<p>Although Spring Boot applications were already supported by the OpenShift server adapter,
the global developer experience has been enhanced. Let’s complete the full workflow.</p>
</div>
<div class="sect4">
<h5 id="bootstrapping-your-spring-boot-applications"><a class="anchor" href="#bootstrapping-your-spring-boot-applications"></a>Bootstrapping your Spring Boot applications</h5>
<div class="paragraph">
<p>A new generator (wizard) has been added to JBoss Tools. It’s called the Launcher
application as it’s based on the fabric8-launcher project. When you launch JBoss
Tools, you should see this in Red Hat Central:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop.png" alt="spring boot inner loop" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code><code>Launcher application</code></code> link and the following wizard will appear:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop1.png" alt="spring boot inner loop1" />
</div>
</div>
<div class="paragraph">
<p>Switch the <code><code>Mission</code></code> field to <code><code>rest-http </code></code> as we want to generate a simple
REST application and switch the <code><code>Runtime</code></code> field to <code><code>spring-boot current-community</code></code>
as we want to generate a Spring Boot based application.</p>
</div>
<div class="paragraph">
<p>Then set the <code><code>Project name</code></code> field to <code><code>myfirstrestapp</code></code> and leave other fields as-is.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop2.png" alt="spring boot inner loop2" />
</div>
</div>
<div class="paragraph">
<p>Click the <code><code>Finish</code></code> button. A new project will be added to your local workspace.
It may takes some times as Maven will resolve all the Spring Boot dependencies and
thus need to download them from the Internet.</p>
</div>
<div class="paragraph">
<p>When the project is build and if you expand the <code><code>myfirstrestapp</code></code> in the <code><code>Project explorer</code></code>
window, you should see this:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop3.png" alt="spring boot inner loop3" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="storing-your-source-code-on-github"><a class="anchor" href="#storing-your-source-code-on-github"></a>Storing your source code on GitHub</h5>
<div class="paragraph">
<p>As OpenShift builder images retrieves code on a Git repository, we first need to push
the just generated application code to GitHub. The following section assumes that you
created a repository called <code><code>myfirstrestapp</code></code> under your GitHub account.</p>
</div>
<div class="paragraph">
<p>We will first create a local Git repository for our application code then push it to
GitHub.</p>
</div>
<div class="paragraph">
<p>Select the <code><code>myfirstrestapp</code></code> project and right click the <code><code>Team → Share project…</code></code>
menu item:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop4.png" alt="spring boot inner loop4" />
</div>
</div>
<div class="paragraph">
<p>Then select the <code><code>Git</code></code> repository type and click the <code><code>Next</code></code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop5.png" alt="spring boot inner loop5" />
</div>
</div>
<div class="paragraph">
<p>Select the <code><code>Use or create repository in parent folder of project</code></code> checkbox
then select the <code><code>myfirstrestapp</code></code> project:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop6.png" alt="spring boot inner loop6" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code><code>Create repository</code></code> button and the on the <code><code>Finish</code></code> button.</p>
</div>
<div class="paragraph">
<p>The <code><code>Project explorer</code></code> view is updated:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop7.png" alt="spring boot inner loop7" />
</div>
</div>
<div class="paragraph">
<p>Select the <code><code>myfirstrestapp</code></code> project and right click
the <code><code>Team → Show in Repositories View</code></code> menu item. A new view
called <code><code>Git Repositories</code></code> will be added to the perspective:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop8.png" alt="spring boot inner loop8" />
</div>
</div>
<div class="paragraph">
<p>Inside this view, select the <code><code>Remotes</code></code> node and right click
the <code><code>Create Remote…</code></code> menu item. The following dialog will be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop9.png" alt="spring boot inner loop9" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code><code>OK</code></code> button, the following dialog will be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop10.png" alt="spring boot inner loop10" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code><code>Change…</code></code> button and enter <code><code>git@github.com:GITHUB_USER/myfirstrestapp</code></code>
in the <code><code>URI</code></code> field, replacing <code><code>GITHUB_USER</code></code> by your real GitHub user name.</p>
</div>
<div class="paragraph">
<p>Then click the <code><code>Finish</code></code> button and then on the <code><code>Save</code></code> button.</p>
</div>
<div class="sect5">
<h6 id="pushing-code-to-github"><a class="anchor" href="#pushing-code-to-github"></a>Pushing code to GitHub</h6>
<div class="paragraph">
<p>We are now ready to push our application code to GitHub. Select the <code><code>myfirstrestapp</code></code> project
in the <code><code>Project explorer</code></code> view, right click the <code><code>Team → Commit</code></code> menu item. A new view
call <code><code>Git Staging</code></code> will open:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop11.png" alt="spring boot inner loop11" />
</div>
</div>
<div class="paragraph">
<p>Double click on the view title to maximize it:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop12.png" alt="spring boot inner loop12" />
</div>
</div>
<div class="paragraph">
<p>Select all the files listed in the <code><code>Unstaged changes</code></code> list and click the '+' button. The
files will then move to the <code><code>Staged Changes</code></code> list:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop13.png" alt="spring boot inner loop13" />
</div>
</div>
<div class="paragraph">
<p>Enter a commit message (ex 'Initial version') and click the <code><code>Commit and Push…</code></code> button.
the following dialog will be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop14.png" alt="spring boot inner loop14" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code><code>Next</code></code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop15.png" alt="spring boot inner loop15" />
</div>
</div>
<div class="paragraph">
<p>Click on the <code><code>Finish</code></code> button to start the push operation.</p>
</div>
<div class="paragraph">
<p>A dialog with the result of the push operation will be displayed. Click the <code><code>OK</code></code> to
dismiss it.</p>
</div>
</div>
<div class="sect5">
<h6 id="add-spring-boot-devtools-to-the-packaged-application"><a class="anchor" href="#add-spring-boot-devtools-to-the-packaged-application"></a>Add Spring Boot Devtools to the packaged application</h6>
<div class="paragraph">
<p>In order to support live update on an OpenShift cluster, we must add Spring Boot
DevTools to our Spring Boot application.</p>
</div>
<div class="paragraph">
<p>Open the <code><code>pom.xml</code></code> in the <code><code>myfirstrestapp</code></code>. Locate the <code><code>spring-boot-maven-plugin</code></code>
and add the following section:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"> <configuration>
<excludeDevtools>false</excludeDevtools>
</configuration></code></pre>
</div>
</div>
<div class="paragraph">
<p>The whole <code><code>spring-boot-maven-plugin</code></code> section is given below:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"> <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<excludeDevtools>false</excludeDevtools>
</configuration>
</execution>
</executions>
</plugin></code></pre>
</div>
</div>
<div class="paragraph">
<p>Close and save the <code><code>pom.xml</code></code> file.</p>
</div>
<div class="paragraph">
<p>Push the change to GitHub: select the <code><code>Team → Commit…</code></code> with a new commit
message (ex 'With DevTools')</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="deploy-the-application-on-openshift"><a class="anchor" href="#deploy-the-application-on-openshift"></a>Deploy the application on OpenShift</h5>
<div class="paragraph">
<p>Before we can deploy the application on OpenShift, we must first create an ImageStream on
our OpenShift cluster. The reason is that the Spring Boot support relies on S2I builds
that will explode the Spring Boot uber JAR when Spring Boot DevTools is present. As this
is not supported by all Java based S2I images, we will use one that supports it, ie fabric8/s2i-java:2.2</p>
</div>
<div class="paragraph">
<p>First, in the <code><code>myfirstrestapp</code></code> project, create a new JSON file called <code><code>springboot.json</code></code>
and set the content of this file to:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-json" data-lang="json">{
"apiVersion": "image.openshift.io/v1",
"kind": "ImageStream",
"metadata": {
"name": "springboot"
},
"spec": {
"lookupPolicy": {
"local": false
},
"tags": [
{
"annotations": {
"tags": "builder,java"
},
"from": {
"kind": "DockerImage",
"name": "registry.access.redhat.com/fuse7/fuse-java-openshift:1.1"
},
"importPolicy": {},
"name": "1.1",
"referencePolicy": {
"type": "Source"
}
}
]
}
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then, from the OpenShift explorer view, select the OpenShift connection for your cluster (if you don’t have
one already defined, you must define it), right click on the <code><code>New → Resource…</code></code> menu item and the
following dialog will be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop16.png" alt="spring boot inner loop16" />
</div>
</div>
<div class="paragraph">
<p>You can select the OpenShift project you want to work with and then click on
the <code><code>Browse Workspace…</code></code> button and select the <code><code>springboot.json</code></code> file
in the <code><code>myfirstrestapp</code></code> project:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop17.png" alt="spring boot inner loop17" />
</div>
</div>
<div class="paragraph">
<p>Click the <code><code>OK</code></code> and <code><code>Finish</code></code> buttons. The new ImageStream will be created and a status
dialog will be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop18.png" alt="spring boot inner loop18" />
</div>
</div>
<div class="sect5">
<h6 id="create-the-application-on-openshift"><a class="anchor" href="#create-the-application-on-openshift"></a>Create the application on OpenShift</h6>
<div class="paragraph">
<p>We’re now ready to create the application on the OpenShift cluster. Select the OpenShift
connection, right click the <code><code>New → Application…</code></code> menu item. If you scroll down the
list, you should see the <code><code>springboot</code></code> ImageStream we just created:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop19.png" alt="spring boot inner loop19" />
</div>
</div>
<div class="paragraph">
<p>Select this ImageStream and click the <code><code>Next</code></code> button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop20.png" alt="spring boot inner loop20" />
</div>
</div>
<div class="paragraph">
<p>Enter <code><code>`myfirstrestapp</code></code> in the <code><code>`Name</code><code>
field, </code>`https://github.com/GITHUB_USER/myfirstrestapp<code></code> in the </code><code>Git Repository URL<code></code>
field, replacing </code><code>GITHUB_USER<code></code> by your real GitHub user name and click
the </code><code>Next``</code> button.</p>
</div>
<div class="paragraph">
<p>On the <code><code>Deployment Configuration & Scalability</code></code> dialog, click the <code><code>`Next</code></code> button.</p>
</div>
<div class="paragraph">
<p>On the <code><code>Service & Routing Settings</code></code>, select the <code><code>8778-tcp</code></code> port and click
the <code><code>Edit</code></code> button, change the 8787 value to 8080:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop21.png" alt="spring boot inner loop21" />
</div>
</div>
<div class="paragraph">
<p>Click the <code><code>OK</code></code> button then the <code><code>Finish</code></code> button.</p>
</div>
<div class="paragraph">
<p>The list of OpenShift resources created will be displayed by a dialog:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop22.png" alt="spring boot inner loop22" />
</div>
</div>
<div class="paragraph">
<p>Click the <code><code>OK</code></code> button to dismiss it and when asked to import the application
code, click the <code><code>Cancel</code></code> button as we already have the source code.</p>
</div>
<div class="paragraph">
<p>After the build is run (this may takes several minutes as the Maven build will download
lots of dependencies), you should see a running pod:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop23.png" alt="spring boot inner loop23" />
</div>
</div>
</div>
</div>
<div class="sect4">
<h5 id="inner-loop-setup"><a class="anchor" href="#inner-loop-setup"></a>Inner loop setup</h5>
<div class="paragraph">
<p>We are going to synchronize the local Eclipse project with the remote OpenShift pod. Each time a file
will be modified locally, then the pod will be updated accordingly.</p>
</div>
<div class="paragraph">
<p>Select the running pod in the <code><code>OpenShift explorer</code></code>, right click the <code><code>Server Adapter…</code></code> menu
item, the following dialog will be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop24.png" alt="spring boot inner loop24" />
</div>
</div>
<div class="paragraph">
<p>Click the <code><code>OK</code></code> button, the initial synchronization will be started and
the <code><code>Servers</code></code> view will be displayed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop25.png" alt="spring boot inner loop25" />
</div>
</div>
<div class="paragraph">
<p>We’ve not setup the synchronization between our local Eclipse project and the remote
OpenShift project. Each modification done locally will be reported on the remote
OpenShift cluster.</p>
</div>
<div class="paragraph">
<p>Let’s modify our local application code and see the changes applied almost
instantly:</p>
</div>
<div class="paragraph">
<p>Edit the file <code><code>src/main/java/io/openshift/booster/service/Greeting.java</code></code>
in the <code><code>myfirstrestapp</code></code> project and change the <code><code>FORMAT</code></code> string
value from <code><code>Hello, %s!</code></code> to <code><code>Hello, Mr %s!</code></code> and save the file.</p>
</div>
<div class="paragraph">
<p>The file should be now:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">/*
* Copyright 2016-2017 Red Hat, Inc, and individual contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.openshift.booster.service;
// tag::snippet-greeting[]
public class Greeting {
public static final String FORMAT = "Hello, Mr %s!";
private final String content;
public Greeting() {
this.content = null;
}
public Greeting(String content) {
this.content = content;
}
public String getContent() {
return content;
}
}
// end::snippet-greeting[]</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then, in the <code>ÒpenShift explorer</code>` view, select the <code><code>myfirstrestapp</code></code> deployment
and select the <code><code>`Show In → Web Browser</code></code> menu item and once the web browser is
displayed, ckick the <code><code>Invoke</code></code> button, you should see the following view:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/openshift/images/spring-boot-inner-loop26.png" alt="spring boot inner loop26" />
</div>
</div>
<div class="paragraph">
<p>You’ve just experienced the inner loop on your Spring Boot application: any change done
locally is reported and testable almost immedialtely on your OpenShift cluster.</p>
</div>
<div class="paragraph">
<p>You can restart the deployment in debug mode and you’ll be able to remote debug your
Spring Boot application. Amazing, no ?</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server tools</h3>
<div class="sect3">
<h4 id="wildfly-14-server-adapter"><a class="anchor" href="#wildfly-14-server-adapter"></a>Wildfly 14 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 14. It adds support for Java EE 8.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-tools"><a class="anchor" href="#hibernate-tools"></a>Hibernate Tools</h3>
<div class="sect3">
<h4 id="runtime-provider-updates"><a class="anchor" href="#runtime-provider-updates"></a>Runtime Provider Updates</h4>
<div class="paragraph">
<p>The Hibernate 5.3 runtime provider now incorporates Hibernate Core version 5.3.6.Final and Hibernate Tools version 5.3.6.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.2 runtime provider now incorporates Hibernate Core version 5.2.17.Final and Hibernate Tools version 5.2.11.Final.</p>
</div>
<div class="paragraph">
<p>The Hibernate 5.1 runtime provider now incorporates Hibernate Core version 5.1.16.Final and Hibernate Tools version 5.1.10.Final.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="fuse-tooling"><a class="anchor" href="#fuse-tooling"></a>Fuse Tooling</h3>
<div class="sect3">
<h4 id="rest-viewer-becoming-an-editor"><a class="anchor" href="#rest-viewer-becoming-an-editor"></a>REST Viewer becoming an editor</h4>
<div class="paragraph">
<p>Previously, there was a REST editor which was read-only. It is useful to have a great overview of already defined Camel REST DSL definitions. Now the editor and its related properties tab are also providing editing capabilities allowing to develop faster.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/fusetools/images/fuse-editor-rest-tab-properties-11.1.0.am2.jpg" alt="Fully Editable REST Editor" />
</div>
</div>
<div class="paragraph">
<p>You can now:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Create and delete REST Configurations</p>
</li>
<li>
<p>Create and delete new REST Elements</p>
</li>
<li>
<p>Create and delete new REST Operations</p>
</li>
<li>
<p>Edit properties for a selected REST Element in the Properties view</p>
</li>
<li>
<p>Edit properties for a selected REST Operation in the Properties view</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In addition, we’ve improved the look and feel by fixing the scrolling capabilities of the REST Element and REST Operations lists.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="improved-breadcrumb-for-dark-theme"><a class="anchor" href="#improved-breadcrumb-for-dark-theme"></a>Improved Breadcrumb for Dark theme</h5>
<div class="paragraph">
<p>The <strong>Breadcrumb</strong> in the <strong>Java Editor</strong> now uses a dark background in the Dark theme.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/breadcrumb_dark_and_light.png" alt="breadcrumb dark and light" />
</div>
</div>
<div class="paragraph">
<p>In the Light theme, the <strong>Breadcrumb</strong> uses a flat look style instead of a gradient.</p>
</div>
</div>
<div class="sect4">
<h5 id="quick-fix-to-create-abstract-methods"><a class="anchor" href="#quick-fix-to-create-abstract-methods"></a>Quick fix to create abstract methods</h5>
<div class="paragraph">
<p>The existing quick fix to create missing methods has been improved to create abstract
method declarations. The option only appears when the target class is an abstract class.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/quickfix_create_abstract_method_1.png" alt="quickfix create abstract method 1" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="quick-fix-to-convert-to-static-import"><a class="anchor" href="#quick-fix-to-convert-to-static-import"></a>Quick fix to convert to static import</h5>
<div class="paragraph">
<p>A new quick fix has been implemented that allows the user to convert static field accesses
and static methods to use a static import. It’s also possible to replace all occurrences at
the same time.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/quickfix_convert_to_static_import.png" alt="quickfix convert to static import" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-code-generation"><a class="anchor" href="#java-code-generation"></a>Java Code Generation</h4>
<div class="sect4">
<h5 id="improved-hashcode-and-equals-generation"><a class="anchor" href="#improved-hashcode-and-equals-generation"></a>Improved hashCode() and equals() generation</h5>
<div class="paragraph">
<p>A new option in the <strong>Source > Generate hashCode() and equals()…</strong> tool allows you to create
implementations using the Java 7 <code><code>Objects.equals</code></code> and <code><code>Objects.hash</code></code> methods.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/hashcode-equals-dialog.png" alt="hashcode equals dialog" />
</div>
</div>
<div class="paragraph">
<p>The above setup generates the following code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/hashcode-equals-generation.png" alt="hashcode equals generation" />
</div>
</div>
<div class="paragraph">
<p>Additionally, arrays are handled more cleverly. The generation prefers the <code><code>Arrays.deepHashCode</code></code>
and <code><code>Arrays.deepEquals</code></code> methods when dealing with <code><code>Object[]</code></code>, <code><code>Serializable[]</code></code>
and <code><code>Cloneable[]</code></code> or any type variables extending these types.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-views-and-dialogs"><a class="anchor" href="#java-views-and-dialogs"></a>Java Views and Dialogs</h4>
<div class="sect4">
<h5 id="quick-fix-for-jre-compiler-compliance-problem-marker"><a class="anchor" href="#quick-fix-for-jre-compiler-compliance-problem-marker"></a>Quick Fix for JRE Compiler Compliance Problem Marker</h5>
<div class="paragraph">
<p>A new quick fix is provided on the <strong>JRE Compiler Compilance</strong> problem marker which is created
when the compiler compliance does not match the JRE being used. This quick fix provides the
option of opening the <strong>Compiler Compliance</strong> page of the project to fix the issue.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/quickfix_open_cc_page.png" alt="quickfix open cc page" />
</div>
</div>
<div class="paragraph">
<p>Selecting this option opens the <strong>Compiler Compliance</strong> property page for the specified project
as shown below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/quickfix_cc_page.png" alt="quickfix cc page" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="open-type-dialog-now-always-shows-the-full-path"><a class="anchor" href="#open-type-dialog-now-always-shows-the-full-path"></a>Open Type dialog now always shows the full path</h5>
<div class="paragraph">
<p>The <strong>Open Type</strong> dialog now always shows the full path of all the matching items.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/open_type_full_path.png" alt="open type full path" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-formatter"><a class="anchor" href="#java-formatter"></a>Java Formatter</h4>
<div class="sect4">
<h5 id="keep-simple-loops-in-one-line"><a class="anchor" href="#keep-simple-loops-in-one-line"></a>Keep simple loops in one line</h5>
<div class="paragraph">
<p>New formatter settings have been added that make it possible to keep the bodies
of simple loops (without braces) in the same line as their headers, similar to
previously existing setting for simple 'if' statements. Different kind of loops
('for', 'while', 'do while') can be controlled independently.</p>
</div>
<div class="paragraph">
<p>The settings can be found in the profile editor under
<strong>New Lines > In control statements > Simple Loops</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/formatter-compact-loops.png" alt="formatter compact loops" />
</div>
</div>
<div class="paragraph">
<p>There’s also a new setting to control how these loops should be handled if they
exceed the maximum line width. It’s located under
<strong>Line Wrapping > Wrapping settings > Statements > Compact loops ('for', 'while', 'do while')</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/formatter-compact-loops-wrap.png" alt="formatter compact loops wrap" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="align-items-in-columns"><a class="anchor" href="#align-items-in-columns"></a>Align items in columns</h5>
<div class="paragraph">
<p>A feature previously known as <strong>align fields in columns</strong> has been expanded and
can now be used for <strong>variable declarations</strong> and <strong>assignment statements</strong> as well.</p>
</div>
<div class="paragraph">
<p>An option has also been added to always <strong>align with spaces</strong>, even if tabs are
used for general indentation. This is very similar to the <strong>Use spaces to indent wrapped lines</strong>
option and is useful to make the code look good in editors with differing tab width.</p>
</div>
<div class="paragraph">
<p>All the settings related to aligning are now in the new preferences subsection:
<strong>Indentation > Align items in columns</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/formatter-align-in-columns.png" alt="formatter align in columns" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="timeout-for-result-of-step-operation"><a class="anchor" href="#timeout-for-result-of-step-operation"></a>Timeout for result of step operation</h5>
<div class="paragraph">
<p>Observing the result of step operations may slow down execution, which may be
unusable if the step takes long already. Therefore a timeout (default: 7000 ms)
has been introduced after which the observation mechanism is disabled until the
end of the step operation.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/result_timeout_537142.png" alt="result timeout 537142" />
</div>
</div>
<div class="paragraph">
<p>The timeout can be configured
in <strong>Preferences > Java > Debug > Don’t show if step operation takes longer than (ms)</strong>.</p>
</div>
</div>
<div class="sect4">
<h5 id="option-to-hide-running-threads-in-debug-view"><a class="anchor" href="#option-to-hide-running-threads-in-debug-view"></a>Option to hide running threads in Debug view</h5>
<div class="paragraph">
<p>A new option has been introduced in the <strong>Debug</strong> view to show or hide running threads.</p>
</div>
<div class="paragraph">
<p>Hiding running threads can be useful when debugging heavily multithreaded application,
when it is difficult to find threads stopped at breakpoints among hundreds or thousands
of running threads.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/hide-running-threads.png" alt="hide running threads" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="show-command-line-button-in-launch-configuration"><a class="anchor" href="#show-command-line-button-in-launch-configuration"></a>Show Command Line button in Launch Configuration</h5>
<div class="paragraph">
<p>A new button <strong>Show Command Line</strong> has been added in the <strong>Java Launch Configuration</strong>
dialog.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/show_command_line.png" alt="show command line" />
</div>
</div>
<div class="paragraph">
<p>Clicking the button will open a dialog to show the command line used for launching
the application.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/show_command_line_detail.png" alt="show command line detail" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="option-to-disable-thread-name-changes-in-debug-view"><a class="anchor" href="#option-to-disable-thread-name-changes-in-debug-view"></a>Option to disable thread name changes in Debug View</h5>
<div class="paragraph">
<p>Thread name changes in the debuggee JVM are reflected in the <strong>Debug</strong> View.
A VM option can now be used to disable this behavior, in case the JVM communication
necessary for the name updates is not desired.</p>
</div>
<div class="paragraph">
<p>The functionality can be disabled by specifying the following VM option</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code>-Dorg.eclipse.jdt.internal.debug.core.model.ThreadNameChangeListener.disable=true</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="support-for-long-classpathmodulepath"><a class="anchor" href="#support-for-long-classpathmodulepath"></a>Support for long classpath/modulepath</h5>
<div class="paragraph">
<p>Classpath and/or modulepath are now shortened if they are longer than current
operating system limits.</p>
</div>
<div class="paragraph">
<p>If a temporary jar is needed to shorten the classpath (Java 8 and previous versions),
a dialog is shown asking for confirmation.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/enable-classpathonly-dialog.png" alt="enable classpathonly dialog" />
</div>
</div>
<div class="paragraph">
<p>The option <strong>Use temporary jar to specify classpath (to avoid classpath length limitations)</strong>
is available in the <strong>Classpath</strong> tab of the <strong>Run/Debug Configuration</strong> dialog.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.9/images/enable-classpathonly-option.png" alt="enable classpathonly option" />
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.9.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.9.0 and Red Hat Developer Studio 12.9 out we are already working on the next release for Eclipse 2018-12.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.9.0.am3.htmlJBoss Tools 4.9.0.AM3 for Eclipse 2018-09 M22018-09-13T09:39:15+00:002018-09-11T00:00:00+00:00jeffmaury
Happy to announce 4.9.0.AM3 (Developer Milestone 3) build for Eclipse 2018-09 M2.
Downloads available at JBoss Tools 4.9.0 AM3.
What is New?
Full info is at this page. Some highlights are below.
General
Server Tools
Wildfly 14 Server Adapter
A server adapter has been added to work with Wildfly 14. It adds support for Java EE 8.
Forge Tools
Forge Runtime updated to 3.9.1.Final
The included Forge runtime is now 3.9.1.Final. Read the official announcement here.
Fuse Tooling
Know issues
A regression has been introduced touching all functionalities using Jaxb. It includes:
Variable content display in debug
Data Transformation wizard
Tracing Camel route via Jolokia Connection
It may affect other functionalities. In this case, you will have...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.9.0.AM3 (Developer Milestone 3) build for Eclipse 2018-09 M2.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2018-09/4.9.0.AM3.html">JBoss Tools 4.9.0 AM3</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.9.0.AM3.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server Tools</h3>
<div class="sect3">
<h4 id="wildfly-14-server-adapter"><a class="anchor" href="#wildfly-14-server-adapter"></a>Wildfly 14 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 14. It adds support for Java EE 8.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="forge-tools"><a class="anchor" href="#forge-tools"></a>Forge Tools</h3>
<div class="sect3">
<h4 id="forge-runtime-updated-to-3-9-1-final"><a class="anchor" href="#forge-runtime-updated-to-3-9-1-final"></a>Forge Runtime updated to 3.9.1.Final</h4>
<div class="paragraph">
<p>The included Forge runtime is now 3.9.1.Final. Read the official announcement <a href="https://forge.jboss.org/news/jboss-forge-3.9.1.final-is-here">here</a>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="fuse-tooling"><a class="anchor" href="#fuse-tooling"></a>Fuse Tooling</h3>
<div class="sect3">
<h4 id="know-issues"><a class="anchor" href="#know-issues"></a>Know issues</h4>
<div class="paragraph">
<p>A regression has been introduced touching all functionalities using Jaxb. It includes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Variable content display in debug</p>
</li>
<li>
<p>Data Transformation wizard</p>
</li>
<li>
<p>Tracing Camel route via Jolokia Connection</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>It may affect other functionalities. In this case, you will have this kind of error in log:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java.lang.NullPointerException
at javax.xml.bind.ContextFinder.handleClassCastException(ContextFinder.java:95)</pre>
</div>
</div>
<div class="paragraph">
<p>Please note that it has been already fixed on <a href="http://tools.jboss.org/downloads/jbosstools/2018-09/4.9.x.Nightly.html">nightly build</a></p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.9.0.am2.htmlJBoss Tools 4.9.0.AM2 for Eclipse 2018-09 M22018-09-12T06:24:40+00:002018-08-21T00:00:00+00:00jeffmaury
Happy to announce 4.9.0.AM2 (Developer Milestone 2) build for Eclipse 2018-09 M2.
Downloads available at JBoss Tools 4.9.0 AM2.
What is New?
Full info is at this page. Some highlights are below.
General
Eclipse 2018-09
JBoss Tools is now targeting Eclipse 2018-09 M2.
Fuse Tooling
WSDL to Camel REST DSL improvements
The version of the library used to generate Camel REST DSL from WSDl files has been updated. It now covers more types of WSDL files. See https://github.com/jboss-fuse/wsdl2rest/milestone/3?closed=1 for the list of improvements.
REST Editor tab improvements
In the last milestone we began adding editing capabilities to the read-only REST tab to the route editor we added in the previous release....
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.9.0.AM2 (Developer Milestone 2) build for Eclipse 2018-09 M2.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/2018-09/4.9.0.AM2.html">JBoss Tools 4.9.0 AM2</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.9.0.AM2.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="eclipse-2018-09"><a class="anchor" href="#eclipse-2018-09"></a>Eclipse 2018-09</h4>
<div class="paragraph">
<p>JBoss Tools is now targeting Eclipse 2018-09 M2.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="fuse-tooling"><a class="anchor" href="#fuse-tooling"></a>Fuse Tooling</h3>
<div class="sect3">
<h4 id="wsdl-to-camel-rest-dsl-improvements"><a class="anchor" href="#wsdl-to-camel-rest-dsl-improvements"></a>WSDL to Camel REST DSL improvements</h4>
<div class="paragraph">
<p>The version of the library used to generate Camel REST DSL from WSDl files has been updated. It now covers more types of WSDL files. See <a href="https://github.com/jboss-fuse/wsdl2rest/milestone/3?closed=1" class="bare">https://github.com/jboss-fuse/wsdl2rest/milestone/3?closed=1</a> for the list of improvements.</p>
</div>
</div>
<div class="sect3">
<h4 id="rest-editor-tab-improvements"><a class="anchor" href="#rest-editor-tab-improvements"></a>REST Editor tab improvements</h4>
<div class="paragraph">
<p>In the last milestone we began adding editing capabilities to the read-only REST tab to the route editor we added in the previous release. Those efforts have continued and we now have a fully editable REST tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/fusetools/images/fuse-editor-rest-tab-properties-11.1.0.am2.jpg" alt="Fully Editable REST Editor" />
</div>
</div>
<div class="paragraph">
<p>You can now:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Create and delete REST Configurations</p>
</li>
<li>
<p>Create and delete new REST Elements</p>
</li>
<li>
<p>Create and delete new REST Operations</p>
</li>
<li>
<p>Edit properties for a selected REST Element in the Properties view</p>
</li>
<li>
<p>Edit properties for a selected REST Operation in the Properties view</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In addition, we’ve improved the look and feel by fixing the scrolling capabilities of the REST Element and REST Operations lists.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/integration-stack-4.6.0.Final.htmlIntegration Tooling for Eclipse Photon2018-08-14T14:55:52+00:002018-08-09T00:00:00+00:00pleacu
Try our leaner, complete Eclipse Photon and Red Hat Developer Studio 12 compatible integration tooling.
JBoss Tools Integration Stack 4.6.0.Final / Red Hat Developer Studio Integration Stack 12.0.0.GA
All of the Integration Stack components have been verified to work with the same dependencies as JBoss Tools 4.6 and Red Hat Developer Studio 12.
What’s new for this release?
This is the initial release in support of Eclipse Photon. It syncs up with Developer Studio 12.0.0, JBoss Tools 4.6.0 and Eclipse 4.8.0 (Photon). It is also a maintenance release for Teiid Designer and BRMS tooling.
Released Tooling Highlights
Business Process and Rules Development
BPMN2 Modeler Known...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><strong>Try our leaner, complete Eclipse Photon and Red Hat Developer Studio 12 compatible integration tooling.</strong></p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/devstudio12.png" alt="devstudio12" />
</div>
</div>
<div class="paragraph">
<p><strong>JBoss Tools Integration Stack 4.6.0.Final / Red Hat Developer Studio Integration Stack 12.0.0.GA</strong></p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
All of the Integration Stack components have been verified to work with the same dependencies as JBoss Tools 4.6 and Red Hat Developer Studio 12.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="whats-new-for-this-release"><a class="anchor" href="#whats-new-for-this-release"></a>What’s new for this release?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This is the initial release in support of Eclipse Photon. It syncs up with Developer Studio 12.0.0, JBoss Tools 4.6.0 and Eclipse 4.8.0 (Photon). It is also a maintenance release for Teiid Designer and BRMS tooling.</p>
</div>
<div class="sect2">
<h3 id="released-tooling-highlights"><a class="anchor" href="#released-tooling-highlights"></a>Released Tooling Highlights</h3>
<div class="sect3">
<h4 id="business-process-and-rules-development"><a class="anchor" href="#business-process-and-rules-development"></a>Business Process and Rules Development</h4>
<div class="sect4">
<h5 id="bpmn2-modeler-known-issues"><a class="anchor" href="#bpmn2-modeler-known-issues"></a>BPMN2 Modeler Known Issues</h5>
<div class="paragraph">
<p>See the <a href="https://access.redhat.com/documentation/en-us/red_hat_jboss_developer_studio_integration_stack/12.0/html/12.0.0_release_notes_and_known_issues/resolved_issues#bpmn2_1_5_0_final">BPMN2 1.5.0.Final Known Issues Section</a> of the Integration Stack 12.0.0.GA release notes.</p>
</div>
</div>
<div class="sect4">
<h5 id="droolsjbpm6-known-issues"><a class="anchor" href="#droolsjbpm6-known-issues"></a>Drools/jBPM6 Known Issues</h5>
<div class="paragraph">
<p>See the <a href="https://access.redhat.com/documentation/en-us/red_hat_jboss_developer_studio_integration_stack/12.0/html/12.0.0_release_notes_and_known_issues/resolved_issues#drools_7_8_0_final">Drools 7.8.0.Final Known Issues Section</a> of the Integration Stack 12.0.0.GA release notes.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="data-virtualization-highlights"><a class="anchor" href="#data-virtualization-highlights"></a>Data Virtualization Highlights</h4>
<div class="sect4">
<h5 id="teiid-designer"><a class="anchor" href="#teiid-designer"></a>Teiid Designer</h5>
<div class="paragraph">
<p>See the <a href="https://access.redhat.com/documentation/en-us/red_hat_jboss_developer_studio_integration_stack/12.0/html/12.0.0_release_notes_and_known_issues/resolved_issues#teiid_designer_11_2_0_final">Teiid Designer 11.2.0.Final Resolved Issues Section</a> of the Integration Stack 12.0.0.GA release notes.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="whats-an-integration-stack"><a class="anchor" href="#whats-an-integration-stack"></a>What’s an Integration Stack?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat Developer Studio Integration Stack is a set of Eclipse-based development tools. It further enhances the IDE functionality provided by Developer Studio, with plug-ins specifically for use when developing for other Red Hat products. It’s where DataVirt Tooling and BRMS tooling are aggregated. The following frameworks are supported:</p>
</div>
<div class="sect2">
<h3 id="red-hat-business-process-and-rules-development"><a class="anchor" href="#red-hat-business-process-and-rules-development"></a>Red Hat Business Process and Rules Development</h3>
<div class="paragraph">
<p>Business Process and Rules Development plug-ins provide design, debug and testing tooling for developing business processes for Red Hat BRMS and Red Hat BPM Suite.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="https://tools.jboss.org/features/bpel.html">BPEL Designer</a> - Orchestrating your business processes.</p>
</li>
<li>
<p><a href="https://tools.jboss.org/features/bpmn2.html">BPMN2 Modeler</a> - A graphical modeling tool which allows creation and editing of Business Process Modeling Notation diagrams using graphiti.</p>
</li>
<li>
<p><a href="https://tools.jboss.org/features/drools.html">Drools</a> - A Business Logic integration Platform which provides a unified and integrated platform for Rules, Workflow and Event Processing including KIE.</p>
</li>
<li>
<p><a href="https://tools.jboss.org/features/jbpm.html">jBPM</a> - A flexible Business Process Management (BPM) suite.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="red-hat-data-virtualization-development"><a class="anchor" href="#red-hat-data-virtualization-development"></a>Red Hat Data Virtualization Development</h3>
<div class="paragraph">
<p>Red Hat Data Virtualization Development plug-ins provide a graphical interface to manage various aspects of Red Hat Data Virtualization instances, including the ability to design virtual databases and interact with associated governance repositories.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="https://tools.jboss.org/features/teiiddesigner.html">Teiid Designer</a> - A visual tool that enables rapid, model-driven definition, integration, management and testing of data services without programming using the Teiid runtime framework.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="the-jboss-tools-website-features-tab"><a class="anchor" href="#the-jboss-tools-website-features-tab"></a>The JBoss Tools website features tab</h3>
<div class="paragraph">
<p>Don’t miss the <a href="https://tools.jboss.org/features">Features tab</a> for up to date information on your favorite Integration Stack components.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The easiest way to install the Integration Stack components is through the <a href="https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?downloadType=distributions&product=jbossdeveloperstudio&version=12.0.0">stand-alone installer</a> or through our <a href="http://tools.jboss.org/downloads/overview.html">JBoss Tools Download Site</a>.</p>
</div>
<div class="paragraph">
<p>For a complete set of Integration Stack installation instructions, see <a href="https://access.redhat.com/documentation/en-us/red_hat_jboss_developer_studio_integration_stack/12.0/html/installation_guide/">Integration Stack Installation Guide</a></p>
</div>
<div class="paragraph">
<p><em>Let us know how it goes!</em></p>
</div>
<div class="paragraph">
<p>Paul Leacu.</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/rhamt_4.1.0.Final_release.htmlRHAMT Eclipse Plugin 4.1.0.Final has been released!2018-07-18T12:06:03+00:002018-07-17T00:00:00+00:00josteele
Happy to announce version 4.1.0.Final of the Red Hat Application Migration Toolkit (RHAMT) is now available.
Getting Started
Downloads available through JBoss Central and from the update site.
RHAMT in a Nutshel
RHAMT is an application migration and assessment tool. The migrations supported include application platform upgrades,
migrations to a cloud-native deployment environment, and also migrations from several commercial products to the
Red Hat JBoss Enterprise Application Platform.
What is New?
Eclipse Photon
The tooling now targets Eclipse Photon.
Ignoring Patterns
Specify locations of files to exclude from analysis (using regular expressions).
External Report
The generated report has been moved out of Eclipse and into the browser.
Improved Ruleset Schema
The XML ruleset schema has...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce version 4.1.0.Final of the Red Hat Application Migration Toolkit (RHAMT) is now available.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="getting-started"><a class="anchor" href="#getting-started"></a>Getting Started</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Downloads available through JBoss Central and from the <a href="http://download.jboss.org/jbosstools/photon/stable/updates/rhamt/">update site</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rhamt-in-a-nutshel"><a class="anchor" href="#rhamt-in-a-nutshel"></a>RHAMT in a Nutshel</h2>
<div class="sectionbody">
<div class="paragraph">
<p>RHAMT is an application migration and assessment tool. The migrations supported include application platform upgrades,
migrations to a cloud-native deployment environment, and also migrations from several commercial products to the
Red Hat JBoss Enterprise Application Platform.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="sect3">
<h4 id="eclipse-photon"><a class="anchor" href="#eclipse-photon"></a>Eclipse Photon</h4>
<div class="paragraph">
<p>The tooling now targets Eclipse Photon.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/rhamt/4_1_0_final/eclipse_photon.png" alt="Photon" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="ignoring-patterns"><a class="anchor" href="#ignoring-patterns"></a>Ignoring Patterns</h4>
<div class="paragraph">
<p>Specify locations of files to exclude from analysis (using regular expressions).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/rhamt/4_1_0_final/ignore_pattern.png" alt="Ignore Patterns" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="external-report"><a class="anchor" href="#external-report"></a>External Report</h4>
<div class="paragraph">
<p>The generated report has been moved out of Eclipse and into the browser.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/rhamt/4_1_0_final/report_browser.png" alt="Report View" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="improved-ruleset-schema"><a class="anchor" href="#improved-ruleset-schema"></a>Improved Ruleset Schema</h4>
<div class="paragraph">
<p>The XML ruleset schema has been relaxed providing flexible rule structures.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/rhamt/4_1_0_final/ruleset_source.png" alt="Schema" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="custom-severities"><a class="anchor" href="#custom-severities"></a>Custom Severities</h4>
<div class="paragraph">
<p>Custom severities are now included in the Issue Explorer.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/rhamt/4_1_0_final/custom_category.png" alt="Custom Category" />
</div>
</div>
</div>
<div class="sect3">
<h4 id="stability"><a class="anchor" href="#stability"></a>Stability</h4>
<div class="paragraph">
<p>A good amount of time has been spent on ensuring the tooling functions consistently across Windows, OSX, and Linux.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="paragraph">
<p>You can find more detailed information <a href="https://access.redhat.com/documentation/en-us/red_hat_application_migration_toolkit/">here</a>.</p>
</div>
<div class="paragraph">
<p>Our goal is to make the RHAMT tooling easy to use. We look forward to your feedback and comments!<br /></p>
</div>
<div class="paragraph">
<p>Have fun!<br />
John Steele<br />
<a href="https://github.com/johnsteele/">github/johnsteele</a></p>
</div>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/12.0.0.ga-for-photon.htmlJBoss Tools and Red Hat Developer Studio for Eclipse Photon2018-07-17T15:43:40+00:002018-07-17T00:00:00+00:00jeffmaury
JBoss Tools 4.6.0 and Red Hat Developer Studio 12.0 for Eclipse Photon are here waiting for you. Check it out!
Installation
Red Hat Developer Studio comes with everything pre-bundled in its installer. Simply download it from our Red Hat Developer product page and run it like this:
java -jar devstudio-<installername>.jar
JBoss Tools or Bring-Your-Own-Eclipse (BYOE) Developer Studio require a bit more:
This release requires at least Eclipse 4.8 (Photon) but we recommend
using the latest Eclipse 4.8 Photon JEE Bundle since then you get most of the dependencies preinstalled.
Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://tools.jboss.org/downloads/jbosstools/photon/4.6.0.Final.html">JBoss Tools 4.6.0</a> and <a href="https://tools.jboss.org/downloads/devstudio/photon/12.0.0.GA.html">Red Hat Developer Studio 12.0</a> for Eclipse Photon are here waiting for you. Check it out!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/blog/images/devstudio12.png" alt="devstudio12" />
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Red Hat Developer Studio comes with everything pre-bundled in its installer. Simply download it from our <a href="https://developers.redhat.com/products/devstudio/overview/">Red Hat Developer product page</a> and run it like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar devstudio-<installername>.jar</pre>
</div>
</div>
<div class="paragraph">
<p>JBoss Tools or Bring-Your-Own-Eclipse (BYOE) Developer Studio require a bit more:</p>
</div>
<div class="paragraph">
<p>This release requires at least Eclipse 4.8 (Photon) but we recommend
using the latest <a href="http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/photonr">Eclipse 4.8 Photon JEE Bundle</a> since then you get most of the dependencies preinstalled.</p>
</div>
<div class="paragraph">
<p>Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat Developer Studio".</p>
</div>
<div class="paragraph">
<p>For JBoss Tools, you can also use our update site directly.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>http://download.jboss.org/jbosstools/photon/stable/updates/</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is new?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Our main focus for this release was on adoption of Java10, improvements for container based development and bug fixing.
Eclipse Photon itself has <a href="https://www.youtube.com/watch?v=gDAb_iyO5Fc&list=PLy7t4z5SYNaQjVGIS9YUfZzFQpNFYpCny">a lot of new cool stuff</a> but let me highlight just a few updates in both Eclipse Photon and JBoss Tools plugins that I think are worth mentioning.</p>
</div>
<div class="sect2">
<h3 id="openshift-3"><a class="anchor" href="#openshift-3"></a>OpenShift 3</h3>
<div class="sect3">
<h4 id="enhanced-spring-boot-support-for-server-adapter"><a class="anchor" href="#enhanced-spring-boot-support-for-server-adapter"></a>Enhanced Spring Boot support for server adapter</h4>
<div class="paragraph">
<p>Spring Boot runtime was already supported by the OpenShift server adapter. However, it has one major limitation: files and
resources were synchronized between the local workstation and the remote pod(s) only for the main project. If your Spring Boot
application had dependencies that were present in the local workspace, any change to a file or resource of one of these dependencies
was not handled. This is not true anymore.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="server-tools"><a class="anchor" href="#server-tools"></a>Server tools</h3>
<div class="sect3">
<h4 id="wildfly-13-server-adapter"><a class="anchor" href="#wildfly-13-server-adapter"></a>Wildfly 13 Server Adapter</h4>
<div class="paragraph">
<p>A server adapter has been added to work with Wildfly 13. It adds support for Servlet 4.0.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="fuse-tooling"><a class="anchor" href="#fuse-tooling"></a>Fuse Tooling</h3>
<div class="sect3">
<h4 id="camel-rest-dsl-from-wsdl-wizard"><a class="anchor" href="#camel-rest-dsl-from-wsdl-wizard"></a>Camel Rest DSL from WSDL wizard</h4>
<div class="paragraph">
<p>There is a new <em>"Camel Rest DSL from WSDL"</em> wizard. This wizard wraps the <a href="https://github.com/jboss-fuse/wsdl2rest">wsdl2rest tool</a> now included with the Fuse 7 distribution, which
takes a WSDL file for a SOAP-based (JAX-WS) web service and generates a combination of CXF-generated code and a Camel REST DSL route to make it accessible using REST operations.</p>
</div>
<div class="paragraph">
<p>To start, you need an existing Fuse Integration project in your workspace and access to the WSDL for the SOAP service. Then use
<em>File→New→Other…</em> and select <em>Red Hat Fuse→Camel Rest DSL from WSDL</em> wizard.</p>
</div>
<div class="paragraph">
<p>On the first page of the wizard, select your WSDL and the Fuse Integration project in which to generate the Java code and Camel configuration.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/fusetools/images/wsdl2rest-wizard-page-one.jpg" alt="SOAP to REST Wizard page 1" />
</div>
</div>
<div class="paragraph">
<p>On the second page, you can customize the Java folder path for your generated classes, the folder for the generated Camel file, plus any customization for the SOAP service
address and destination REST service address.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/fusetools/images/wsdl2rest-wizard-page-two.jpg" alt="SOAP to REST Wizard page 2" />
</div>
</div>
<div class="paragraph">
<p>Click <em>Finish</em> and the new Camel configuration and associated Java code are generated in your project. The wizard determines whether your project is Blueprint,
Spring, or Spring Boot based, and it creates the corresponding artifacts without requiring any additional input. When the wizard is finished, you can open your
new Camel file in the Fuse Tooling Route Editor to view what it created.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/fusetools/images/fuse-editor-rest-tab-no-properties.jpg" alt="Fuse Tooling editor Rest Tab" />
</div>
</div>
<div class="paragraph">
<p>That brings us to another new functionality, the REST tab in the Fuse Tooling Route Editor.</p>
</div>
</div>
<div class="sect3">
<h4 id="camel-editor-rest-tab"><a class="anchor" href="#camel-editor-rest-tab"></a>Camel Editor REST tab</h4>
<div class="paragraph">
<p>The Fuse Tooling Route Editor provides a new <em>REST</em> tab. For this release, the contents of this tab is read-only and includes the following information:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Details for the REST Configuration element including the component (jetty, netty, servlet, etc.), the context path, the port, binding mode (JSON, XML, etc.), and host. There is only one REST Configuration element.</p>
</li>
<li>
<p>A list of REST elements that collect REST operations. A configuration can have more than one REST element. Each REST element has an associated property page that displays additional details such as the path and the data it consumes or produces.</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/fusetools/images/fuse-editor-rest-tab-rest-element-properties.jpg" alt="Fuse Tooling Rest Elements Properties View" />
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>A list of REST operations for the selected REST element. Each of the operations has an associated property page that provides details such as the URI and output type.</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/fusetools/images/fuse-editor-rest-tab-rest-operation-properties.jpg" alt="Fuse Tooling Rest Operations Properties View" />
</div>
</div>
<div class="paragraph">
<p>For this release, the REST tab is read-only. If you want to edit the REST DSL, use the Route Editor Source tab. When you make changes and save them in the Source tab, the
REST tab refreshes to show your updates.</p>
</div>
</div>
<div class="sect3">
<h4 id="camel-uri-completion-with-xml-dsl"><a class="anchor" href="#camel-uri-completion-with-xml-dsl"></a>Camel URI completion with XML DSL</h4>
<div class="paragraph">
<p>As announced <a href="https://developers.redhat.com/blog/2018/01/31/apache-camel-uri-completion-eclipse-xml-editor/">here</a>, it was already possible to have Camel URI completion with XML DSL in the source tab of the Camel Route editor by installing the <a href="https://github.com/camel-tooling/camel-lsp-client-eclipse">Language Support for Apache Camel</a> in your IDE.</p>
</div>
<div class="paragraph">
<p>This feature is now installed by default with Fuse Tooling!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/fusetools/images/completionSourceEditor.gif" alt="Camel URI completion in source tab of Camel Editor" />
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="maven"><a class="anchor" href="#maven"></a>Maven</h3>
<div class="sect3">
<h4 id="maven-support-updated-to-m2e-1-9-1"><a class="anchor" href="#maven-support-updated-to-m2e-1-9-1"></a>Maven support updated to M2E 1.9.1</h4>
<div class="paragraph">
<p>The Maven support is based on Eclipse M2E 1.9.1, bringing the following features:</p>
</div>
<div class="sect4">
<h5 id="advanced-classpath-isolation"><a class="anchor" href="#advanced-classpath-isolation"></a>Advanced classpath isolation</h5>
<div class="paragraph">
<p>Thanks to Eclipse Photon, there are new two different classpathes, the main and the test classpath.
The main classes will now no longer see the test classes and dependencies</p>
</div>
</div>
<div class="sect4">
<h5 id="embedded-maven-runtime"><a class="anchor" href="#embedded-maven-runtime"></a>Embedded Maven runtime</h5>
<div class="paragraph">
<p>The embedded Maven runtime is now based on Apache Maven 3.5.3.</p>
</div>
</div>
<div class="sect4">
<h5 id="archetype-catalog-management"><a class="anchor" href="#archetype-catalog-management"></a>Archetype catalog management</h5>
<div class="paragraph">
<p>It is now possible to disable an archetype catalog.</p>
</div>
</div>
<div class="sect4">
<h5 id="java-910-support"><a class="anchor" href="#java-910-support"></a>Java 9/10 support</h5>
<div class="paragraph">
<p>Support for Java 9/10 has been improved: bugs fixes, better handling of module path.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="java-developement-tools-jdt"><a class="anchor" href="#java-developement-tools-jdt"></a>Java Developement Tools (JDT)</h3>
<div class="sect3">
<h4 id="support-for-java-10"><a class="anchor" href="#support-for-java-10"></a>Support for Java™ 10</h4>
<div class="sect4">
<h5 id="quick-fix-to-change-project-compliance-and-jre-to-10"><a class="anchor" href="#quick-fix-to-change-project-compliance-and-jre-to-10"></a>Quick fix to change project compliance and JRE to 10</h5>
<div class="paragraph">
<p>A quick fix <strong>Change project compliance and JRE to 10</strong> is provided to quickly change the current project to be compatible with Java 10.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/quickfix-change-compliance-10.png" alt="quickfix change compliance 10" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-editor"><a class="anchor" href="#java-editor"></a>Java Editor</h4>
<div class="sect4">
<h5 id="quick-fix-to-add-nonnullbydefault-to-packages"><a class="anchor" href="#quick-fix-to-add-nonnullbydefault-to-packages"></a>Quick Fix to add @NonNullByDefault to packages</h5>
<div class="paragraph">
<p>A new quick fix is offered to fix issues that are reported when the Missing '@NonNullByDefault' annotation on package warning is enabled.
If the package already has a <code><code>package-info.java</code></code>, the quick fix can be invoked from the editor:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/add-nnbd-existing-packageinfo.png" alt="add nnbd existing packageinfo" />
</div>
</div>
<div class="paragraph">
<p>Otherwise, the quick fix must be invoked from the problems view, and will create a <code><code>package-info.java</code></code> with the required annotation:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/add-nnbd-create-packageinfo.png" alt="add nnbd create packageinfo" />
</div>
</div>
<div class="paragraph">
<p>When invoked from the problems view, both variations of the quick fix can fix the problem for multiple packages simultaneously.</p>
</div>
</div>
<div class="sect4">
<h5 id="navigate-to-switch-statement"><a class="anchor" href="#navigate-to-switch-statement"></a>Navigate to 'switch' statement</h5>
<div class="paragraph">
<p>You can now <strong>Ctrl+click</strong> or use <strong>Open Declaration (F3)</strong> on case or default keywords to quickly navigate to the beginning of the switch statement.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/navigate-to-switch.png" alt="navigate to switch" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="escape-non-ascii-characters-when-pasting-into-a-string-literal"><a class="anchor" href="#escape-non-ascii-characters-when-pasting-into-a-string-literal"></a>Escape non-ASCII characters when pasting into a string literal</h5>
<div class="paragraph">
<p>The <strong>Java > Editor > Typing > Escape text when pasting into a string literal</strong> preference option now has a suboption <strong>Use Unicode escape syntax for non-ASCII characters</strong>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/escape-non-ascii-settings.png" alt="escape non ascii settings" />
</div>
</div>
<div class="paragraph">
<p>When enabled, characters outside the visible ASCII range will be replaced by unicode escape sequences when pasted into a string:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/escape-non-ascii-example.png" alt="escape non ascii example" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="improved-java-syntax-coloring-in-the-dark-theme"><a class="anchor" href="#improved-java-syntax-coloring-in-the-dark-theme"></a>Improved Java syntax coloring in the dark theme</h5>
<div class="paragraph">
<p>To improve readability in the dark theme, bold style usage has been reduced and some colors that were too close to each other have been altered.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/java-syntax-dark.png" alt="java syntax dark" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="improved-coloring-of-links-in-code-element-information-in-the-dark-theme"><a class="anchor" href="#improved-coloring-of-links-in-code-element-information-in-the-dark-theme"></a>Improved coloring of links in code element information in the dark theme</h5>
<div class="paragraph">
<p>The colors of links in code element information control now takes the color settings of the <strong>Hyperlink text color</strong> and the <strong>Active hyperlink text color</strong> from the <strong>Colors & Fonts</strong> preference page into account. The readability in the dark theme has been improved a lot by this.</p>
</div>
<div class="paragraph">
<p>Before:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/element_info_before.png" alt="element info before" />
</div>
</div>
<div class="paragraph">
<p>After:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/element_info_after.png" alt="element info after" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="improved-coloring-of-inherited-members-in-the-quick-outline-in-the-dark-theme"><a class="anchor" href="#improved-coloring-of-inherited-members-in-the-quick-outline-in-the-dark-theme"></a>Improved coloring of inherited members in the Quick Outline in the dark theme</h5>
<div class="paragraph">
<p>The Eclipse default dark theme now includes styling of inherited members in JDT’s <strong>Quick Outline</strong>. This improves readability in the dark theme a lot. The color can be configured via the <strong>Java > Inherited Members</strong> color definition on the <strong>Colors and Fonts</strong> preference page.</p>
</div>
<div class="paragraph">
<p>Before:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/inherited_before.png" alt="inherited before" />
</div>
</div>
<div class="paragraph">
<p>After:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/inherited_after.png" alt="inherited after" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-views-and-dialogs"><a class="anchor" href="#java-views-and-dialogs"></a>Java Views and Dialogs</h4>
<div class="sect4">
<h5 id="test-sources"><a class="anchor" href="#test-sources"></a>Test sources</h5>
<div class="paragraph">
<p>In the <strong>Java Build Path</strong> project settings, there is now an attribute <strong>Contains test sources</strong> to configure that a source folder contains test sources.
(Note: test sources must have their own output folder).
Similarly, for projects and libraries there is an attribute <strong>Visible only for test sources</strong>.
This setting also exists for classpath containers, and if it is set to <strong>Yes</strong> for one of these, this value will be used for all contained libraries and projects.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/1-sourcefolder-settings-521330.png" alt="1 sourcefolder settings 521330" />
</div>
</div>
<div class="paragraph">
<p>Test source folders and dependencies are shown with a darker icon in the build path settings, the package explorer and other locations.
This can be disabled in <strong>Preferences > Java > Appearance</strong>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/1a-modified-test-icon-preferences-530179.png" alt="1a modified test icon preferences 530179" />
</div>
</div>
<div class="paragraph">
<p>Referenced projects can contain test sources and have test dependencies themselves.
Usually, when test sources are compiled, the test code in projects on the build path will be visible.
As this is not always desirable, it can be changed by setting the new build path attribute <strong>Without test code</strong>, that is available for projects, to <strong>Yes</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/2-without-test-code-526858.png" alt="2 without test code 526858" />
</div>
</div>
<div class="paragraph">
<p>Build path entries configured like this have a decoration [without test code] after the project name, which can be disabled in <strong>Preferences > General > Appearance > Label Decorations</strong>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/2a-without-test-code-decorator-530179.png" alt="2a without test code decorator 530179" />
</div>
</div>
<div class="paragraph">
<p>For each project, compilation is now done in two phases: First all main sources (which cannot see any test-code on the build-path) and then all test sources.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/3-visibilities-224708.png" alt="3 visibilities 224708" />
</div>
</div>
<div class="paragraph">
<p>As a consequence, if the project is a modular Java 9 project, test dependencies like JUnit can not be referenced in the <code><code>module-info.java</code></code>, as they will not be visible while compiling it.
The solution used to handle this is the same, that Maven uses: When test dependencies are put on the classpath, the module being compiled will automatically be configured to read the unnamed module during the compilation of the test sources, so the test dependencies will be visible.</p>
</div>
<div class="paragraph">
<p>Of course, code completion will not suggest test code in main sources:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/4a-completion-in-main-521331.png" alt="4a completion in main 521331" />
</div>
</div>
<div class="paragraph">
<p>There are now two dynamic Java working sets <strong>Java Main Sources</strong> and <strong>Java Test Sources</strong> containing the source folders grouped according to value of the <strong>Contains test sources</strong> attribute.
This can for example be used to remove warnings in test sources from the problems view:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/5a-problems-view-521336.png" alt="5a problems view 521336" />
</div>
</div>
<div class="paragraph">
<p>To achieve this, create a new filter that shows warnings for the <strong>Java Main Sources</strong> working set and select it with the <strong>All Errors on Workspace</strong> filter:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/5b-problems-view-filters-521336.png" alt="5b problems view filters 521336" />
</div>
</div>
<div class="paragraph">
<p>There are also dedicated filters to quickly remove hits in main code or test code from Java search results:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/6-filter-search-result-521332.png" alt="6 filter search result 521332" />
</div>
</div>
<div class="paragraph">
<p>Similar, there is a filter to remove test code from <strong>Call hierarchies</strong>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/7-filter-call-hierarchy-521335.png" alt="7 filter call hierarchy 521335" />
</div>
</div>
<div class="paragraph">
<p>Another filter to remove test code exists for <strong>Quick type hierarchies</strong>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/8-filter-quick-type-hierarchy-521333.png" alt="8 filter quick type hierarchy 521333" />
</div>
</div>
<div class="paragraph">
<p>Test source folders will be preselected in the <strong>New JUnit Test Case</strong> wizard</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/9-new-junit-332602.png" alt="9 new junit 332602" />
</div>
</div>
<div class="paragraph">
<p>In Run and Debug configurations, the <strong>Classpath</strong> tab (or <strong>Dependencies</strong> tab when launching with Java 9) contains a new option <strong>Exclude Test Code</strong>, that is automatically preselected when launching a Java Application from a source folder that is not marked to contain test sources:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/10-launching-529321.png" alt="10 launching 529321" />
</div>
</div>
<div class="paragraph">
<p>When launching with Java 9 and this option is not selected, command line options will automatically be added so modules that have a non-empty classpath read the unnamed module.
These command line options are part of what can be overridden using the new <strong>Override Dependencies</strong> button.</p>
</div>
</div>
<div class="sect4">
<h5 id="sort-library-entries-alphabetically-in-package-explorer"><a class="anchor" href="#sort-library-entries-alphabetically-in-package-explorer"></a>Sort library entries alphabetically in Package Explorer</h5>
<div class="paragraph">
<p>The content of libraries are displayed in the order of the classpath.
This makes it difficult to find specific libraries by their name, especially when projects have many dependencies.
The library entries can now be sorted alphabetically when setting the preference <strong>Sort library entries alphabetically in Package Explorer</strong> on the <strong>Java > Appearance</strong> preference page:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/jdt_sort_library_pref.png" alt="jdt sort library pref" />
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/jdt_library_entries_unsorted.png" alt="jdt library entries unsorted" />
</div>
</div>
<div class="paragraph">
<p>The default for this preference is <strong>OFF</strong>.</p>
</div>
</div>
<div class="sect4">
<h5 id="generate-dialogs-use-verbs-instead-of-ok"><a class="anchor" href="#generate-dialogs-use-verbs-instead-of-ok"></a>Generate dialogs use verbs instead of OK</h5>
<div class="paragraph">
<p>The <strong>Generate…</strong> dialogs of the Java tools have been adapted to use verbs instead of OK.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-compiler"><a class="anchor" href="#java-compiler"></a>Java Compiler</h4>
<div class="sect4">
<h5 id="option-for-regex-in-module-declaration-search"><a class="anchor" href="#option-for-regex-in-module-declaration-search"></a>Option for Regex in Module Declaration Search</h5>
<div class="paragraph">
<p>This is an <strong>experimental</strong> support provided to allow the regular expression usage in search field while searching for module declaration.
This can be considered as a wrapper of the API change.</p>
</div>
<div class="paragraph">
<p>To invoke the regular expression search from the search field under <strong>Java Search</strong>, start the expression with "/r " i.e, a slash '/', the letter 'r' and a blank ' ' (not tab) followed by a regex, an example of which is shown below:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/mod.regex.trap.png" alt="mod.regex.trap" />
</div>
</div>
<div class="paragraph">
<p>In the above example, all the characters trailing "/r " form a Java regular expression to denote a module name which starts with zero or more 'n’s followed by the string ".ver" and followed again by zero or more number of arbitrary characters.</p>
</div>
<div class="paragraph">
<p>Another example would be to search for all modules that start with <code><code>java.x</code></code> followed by zero or more characters which is given by the regular expression <code><code>/r java\.x.*</code></code> - note the backslash for . to consider this as a "normal" character instead of the special regex].</p>
</div>
<div class="paragraph">
<p>Yet another example would be search for all module names that start with j followed by zero or more characters and ending with .xml which in regex language translates to <code><code>/r j.*\.xml</code></code>.
Please note that here the first '.' is the special regex character while the second '.' is escaped to denote that this is a normal character.</p>
</div>
<div class="paragraph">
<p><strong>Note</strong>: You should use this only for <strong>Declarations</strong> search for modules as it is not implemented for module references.
Selecting <strong>All occurrences</strong> in conjunction with regex will default to finding only the <strong>Declarations</strong> matching the regex ignoring the references.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="nonnullbydefault-per-module"><a class="anchor" href="#nonnullbydefault-per-module"></a>@NonNullByDefault per module</h4>
<div class="paragraph">
<p>If a module is annotated with <code><code>@NonNullByDefault</code></code>, the compiler will interpret this as the global default for all types in this module:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code class="language-java" data-lang="java">@org.eclipse.jdt.annotation.NonNullByDefault
module my.nullsafe.mod { ...</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note, however, that this requires an annotation type declared either with target <code><code>ElementType.MODULE</code></code>, or with no explicit target at all.
Versions 2.2.0 and greater of bundle <code><code>org.eclipse.jdt.annotation</code></code> use the latter strategy and hence support a module-wide non-null default.</p>
</div>
<div class="sect4">
<h5 id="nonnullbydefault-improvements"><a class="anchor" href="#nonnullbydefault-improvements"></a>@NonNullByDefault improvements</h5>
<div class="paragraph">
<p>When using annotation-based null analysis, there are now more ways to define which unannotated locations are implicitly assumed to be annotated as <code><code>@NonNull</code></code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code><code>@NonNullByDefault</code></code> annotations based on enum <code><code>DefaultLocation</code></code> can also be used if the primary nullness annotations are declaration annotations (previously this was supported only for <code><code>TYPE_USE</code></code> annotations).</p>
</li>
<li>
<p>Support for <code><code>@NonNullByDefault</code></code> annotations that are targeted at parameters has been implemented.</p>
</li>
<li>
<p>Multiple different <code><code>@NonNullByDefault</code></code> annotations (especially with different default values) may be placed at the same target, in which case the sets of affected locations are merged.</p>
</li>
<li>
<p>Annotations which use a meta annotation <code><code>@TypeQualifierDefault</code></code> instead of a <code><code>DefaultLocation</code></code>-based specification are now understood, too, e.g. <code><code>@org.springframework.lang.NonNullApi</code></code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Version 2.2.0 of bundle <code><code>org.eclipse.jdt.annotation</code></code> contains an annotation type <code><code>NonNullByDefault</code></code> that can be applied to parameter and module declarations (in addition to the previously allowed targets).</p>
</div>
</div>
<div class="sect4">
<h5 id="test-sources-2"><a class="anchor" href="#test-sources-2"></a>Test sources</h5>
<div class="paragraph">
<p>There is now support for running Java annotation processors on test sources.
The output folder for files generated for these can be configured in the project properties in <strong>Java Compiler > Annotation Processing</strong> as <strong>Generated test source directory</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/testsources-apt-531072.png" alt="testsources apt 531072" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="new-preference-added-compiler-compliance-does-not-match-used-jre"><a class="anchor" href="#new-preference-added-compiler-compliance-does-not-match-used-jre"></a>New preference added "Compiler Compliance does not match used JRE"</h5>
<div class="paragraph">
<p>A new preference <strong>Compiler Compliance does not match used JRE</strong> is added to <strong>Compiler Preference Building Page</strong>.</p>
</div>
<div class="paragraph">
<p>This preference indicates the severity of the problem reported when project’s used JRE does not match the compiler compliance level selected.
(e.g. a project using JRE 1.8 as JRE System Library, and the compiler compliance is set to 1.7).</p>
</div>
<div class="paragraph">
<p>The value of this preference is by default WARNING.</p>
</div>
<div class="paragraph">
<p>If the JRE being used is 9 or above and the <strong>--release</strong> option is selected and even if the compiler compliance does not match the JRE being used, this option will be ignored.</p>
</div>
<div class="paragraph">
<p>This preference can be set as shown below:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/jdt_compiler_compliance_mismatch_JRE.png" alt="jdt compiler compliance mismatch JRE" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="java-formatter"><a class="anchor" href="#java-formatter"></a>Java Formatter</h4>
<div class="sect4">
<h5 id="new-formatter-profile-page"><a class="anchor" href="#new-formatter-profile-page"></a>New formatter profile page</h5>
<div class="paragraph">
<p>The formatter profile preference page (<strong>Java > Code Style > Formatter > Edit…</strong>) has a new look which makes it much easier to set preferences for formatting Java code.
Instead of multiple tabs, all preferences are presented in an expandable tree.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/formatter-profile-overview.png" alt="formatter profile overview" />
</div>
</div>
<div class="paragraph">
<p>You can use <strong>filtering</strong> to display only the settings with names matching a specific phrase. Filtering by values is also possible (prefix a value filter with a tilde).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/formatter-profile-filtering.png" alt="formatter profile filtering" />
</div>
</div>
<div class="paragraph">
<p>Most sections have a <strong>Modify all</strong> button in their header that lets you set all their preferences to the same value with one click.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/formatter-profile-modify-all.png" alt="formatter profile modify all" />
</div>
</div>
<div class="paragraph">
<p>Some preferences have more convenient controls. For example, number values can be easily modified with arrow buttons.
Wrap policy settings are controlled by simple toolbars so that you can see and compare multiple policies at once.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/formatter-profile-wrap-settings.png" alt="formatter profile wrap settings" />
</div>
</div>
<div class="paragraph">
<p>In the preview panel you can now use your own code to immediately see how it will be affected by the modified settings.
You can also see the raw form of standard preview samples and make temporary modifications to them.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/formatter-profile-preview.png" alt="formatter profile preview" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="formatter-align-javadoc-tags-in-columns"><a class="anchor" href="#formatter-align-javadoc-tags-in-columns"></a>Formatter: align Javadoc tags in columns</h5>
<div class="paragraph">
<p>The formatter can now <strong>align names and/or descriptions</strong> in Javadoc tags in new ways.
The formatter profile editor is available for selection, under <strong>Comments > Javadoc</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/formatter-javadoc-prefs.png" alt="formatter javadoc prefs" />
</div>
</div>
<div class="paragraph">
<p>For example, the <strong>Align descriptions, grouped by type</strong> setting is now used in the built-in Eclipse profile.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/formatter-javadoc-preview.png" alt="formatter javadoc preview" />
</div>
</div>
<div class="paragraph">
<p>The setting previously known as <strong>Indent Javadoc tags</strong> is now called <strong>Align descriptions to tag width</strong>.
The two settings related to <strong>@param tags</strong> also had their labels changed to better describe what they do.</p>
</div>
</div>
<div class="sect4">
<h5 id="java-code-formatter-preferences-now-styled-for-the-dark-theme"><a class="anchor" href="#java-code-formatter-preferences-now-styled-for-the-dark-theme"></a>Java code formatter preferences now styled for the dark theme</h5>
<div class="paragraph">
<p>The formatter preferences tree styling has been fixed to work properly in the dark theme.</p>
</div>
</div>
<div class="sect4">
<h5 id="new-cleanup-action-remove-redundant-modifiers"><a class="anchor" href="#new-cleanup-action-remove-redundant-modifiers"></a>New Cleanup Action "Remove redundant modifiers"</h5>
<div class="paragraph">
<p>The new cleanup action "Remove redundant modifiers" removes unnecessary modifiers on types, methods and fields.
The following modifiers are removed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Interface field declarations: <code><code>public</code></code>, <code><code>static</code></code>, <code><code>final</code></code></p>
</li>
<li>
<p>Interface method declarations: <code><code>public</code></code>, <code><code>abstract</code></code></p>
</li>
<li>
<p>Nested interfaces: <code><code>static</code></code></p>
</li>
<li>
<p>Method declarations in final classes: <code><code>final</code></code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The cleanup action can be configured as save action on the <strong>Unnecessary Code</strong> page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/jdt_remove_redundant_modifiers.png" alt="jdt remove redundant modifiers" />
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="debug"><a class="anchor" href="#debug"></a>Debug</h4>
<div class="sect4">
<h5 id="launch-configuration-prototypes-for-java-launch-configurations"><a class="anchor" href="#launch-configuration-prototypes-for-java-launch-configurations"></a>Launch configuration prototypes for Java Launch Configurations</h5>
<div class="paragraph">
<p>A Java Launch Configuration can now be based on a prototype.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/prototype-java-launch-configuration.png" alt="prototype java launch configuration" />
</div>
</div>
<div class="paragraph">
<p>A prototype seeds attributes in its associated Java Launch Configurations with the settings specified in the Prototype tab.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/prototype-tab-java-launch-configuration-1.png" alt="prototype tab java launch configuration 1" />
</div>
</div>
<div class="paragraph">
<p>Once a Java Launch Configuration has been created, you can override any initial settings from the prototype.
You can also reset the settings of a Java Launch Configuration with the ones from its prototype.
A Java Launch Configuration maintains a link to its prototype, but is a complete stand-alone launch configuration that can be launched, exported, shared, etc.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/prototype-tab-java-launch-configuration-2.png" alt="prototype tab java launch configuration 2" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="advanced-source-lookup-implementation"><a class="anchor" href="#advanced-source-lookup-implementation"></a>Advanced source lookup implementation</h5>
<div class="paragraph">
<p>More precise <strong>advanced</strong> source lookup implementation, particularly useful when debugging applications that load classes dynamically at runtime.</p>
</div>
<div class="paragraph">
<p>New <code><code>org.eclipse.jdt.launching.workspaceProjectDescribers</code></code> extension point can be used to enable advanced source lookup for projects with non-default layout, like PDE Plug-In projects.</p>
</div>
<div class="paragraph">
<p>New <code><code>org.eclipse.jdt.launching.sourceContainerResolvers</code></code> can be used to download sources jar files from remote artifact repositories, like Maven Central or Eclipse P2.</p>
</div>
<div class="paragraph">
<p>Advanced source lookup affects debug launches only and can be enabled or disabled with <strong>Java > Debug > Use advanced source lookup (JRE 1.5 and higher)</strong> preference option:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/advanced-source-lookup.png" alt="advanced source lookup" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="debugger-listens-to-thread-name-changes"><a class="anchor" href="#debugger-listens-to-thread-name-changes"></a>Debugger listens to thread name changes</h5>
<div class="paragraph">
<p><strong>Debug view</strong> now automatically updates thread names if they are changed in the debuggee JVM. This shows live information for worker instances, as described above.</p>
</div>
<div class="paragraph">
<p>Technically speaking, Java debugger automatically adds a new (user invisible) breakpoint in the JVM and notifies clients (like Debug view) on a breakpoint hit.
If this behavior is undesired for some reason, product owners can disable it via product customization.</p>
</div>
<div class="paragraph">
<p>The property value is: <strong>org.eclipse.jdt.debug.ui/org.eclipse.jdt.debug.ui.javaDebug.ListenOnThreadNameChanges=false</strong></p>
</div>
</div>
<div class="sect4">
<h5 id="value-displayed-for-method-exit-and-exception-breakpoints"><a class="anchor" href="#value-displayed-for-method-exit-and-exception-breakpoints"></a>Value displayed for method exit and exception breakpoints</h5>
<div class="paragraph">
<p>When a <strong>method exit breakpoint</strong> is hit, the value being returned is now shown in the variables view.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/returningvalue.png" alt="returningvalue" />
</div>
</div>
<div class="paragraph">
<p>Similarly, when an <strong>exception breakpoint</strong> is hit, the exception being thrown is shown.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/throwingexception.png" alt="throwingexception" />
</div>
</div>
</div>
<div class="sect4">
<h5 id="display-view-renamed-to-debug-shell"><a class="anchor" href="#display-view-renamed-to-debug-shell"></a>Display view renamed to Debug Shell</h5>
<div class="paragraph">
<p>The <strong>Display view</strong> has been renamed to <strong>Debug Shell</strong> to better match the features and purpose of this view.
Also, a java comment is shown in the Debug Shell on fresh open that explains when and how to use it.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://www.eclipse.org/eclipse/news/4.8/images/debugShell.png" alt="debugShell" />
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="and-more"><a class="anchor" href="#and-more"></a>And more…</h3>
<div class="paragraph">
<p>You can find more noteworthy updates in on <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.6.0.Final.html">this page</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-next"><a class="anchor" href="#what-is-next"></a>What is next?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Having JBoss Tools 4.6.0 and Red Hat Developer Studio 12.0 out we are already working on the next release for Eclipse 2018-09.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div></div>
https://tools.jboss.org/blog/4.6.0.am3-for-photon.0.rc3.htmlJBoss Tools 4.6.0.AM3 for Eclipse Photon.0.RC32018-06-20T06:26:08+00:002018-06-19T00:00:00+00:00jeffmaury
Happy to announce 4.6.0.AM3 (Developer Milestone 3) build for Eclipse Photon.0.RC3.
Downloads available at JBoss Tools 4.6.0 AM3.
What is New?
Full info is at this page. Some highlights are below.
General
Eclipse Photon
JBoss Tools is now targeting Eclipse Photon RC3.
Fuse Tooling
Camel URI completion with XML DSL
As announced here, it was already possible to have Camel URI completion with XML DSL in the source tab of the Camel Route editor by installing the Language Support for Apache Camel in your IDE.
This feature is now installed by default with Fuse Tooling!
Now you have the choice to use the properties view with UI help to configure Camel...
<div><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Happy to announce 4.6.0.AM3 (Developer Milestone 3) build for Eclipse Photon.0.RC3.</p>
</div>
<div class="paragraph">
<p>Downloads available at <a href="https://tools.jboss.org/downloads/jbosstools/photon/4.6.0.AM3.html">JBoss Tools 4.6.0 AM3</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-new"><a class="anchor" href="#what-is-new"></a>What is New?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Full info is at <a href="https://tools.jboss.org/documentation/whatsnew/jbosstools/4.6.0.AM3.html">this page</a>. Some highlights are below.</p>
</div>
<div class="sect2">
<h3 id="general"><a class="anchor" href="#general"></a>General</h3>
<div class="sect3">
<h4 id="eclipse-photon"><a class="anchor" href="#eclipse-photon"></a>Eclipse Photon</h4>
<div class="paragraph">
<p>JBoss Tools is now targeting Eclipse Photon RC3.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="fuse-tooling"><a class="anchor" href="#fuse-tooling"></a>Fuse Tooling</h3>
</div>
</div>
</div>
<div class="sect1">
<h2 id="camel-uri-completion-with-xml-dsl"><a class="anchor" href="#camel-uri-completion-with-xml-dsl"></a>Camel URI completion with XML DSL</h2>
<div class="sectionbody">
<div class="paragraph">
<p>As announced <a href="https://developers.redhat.com/blog/2018/01/31/apache-camel-uri-completion-eclipse-xml-editor/">here</a>, it was already possible to have Camel URI completion with XML DSL in the source tab of the Camel Route editor by installing the <a href="https://github.com/camel-tooling/camel-lsp-client-eclipse">Language Support for Apache Camel</a> in your IDE.</p>
</div>
<div class="paragraph">
<p>This feature is now installed by default with Fuse Tooling!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://tools.jboss.org/documentation/whatsnew/fusetools/images/completionSourceEditor.gif" alt="Camel URI completion in source tab of Camel Editor" />
</div>
</div>
<div class="paragraph">
<p>Now you have the choice to use the properties view with UI help to configure Camel components or to use the source editor and benefit from completion features. It all depends on your development preferences!</p>
</div>
<div class="sect2">
<h3 id="webservices-tooling"><a class="anchor" href="#webservices-tooling"></a>Webservices Tooling</h3>
<div class="sect3">
<h4 id="jax-rs-2-1-support"><a class="anchor" href="#jax-rs-2-1-support"></a>JAX-RS 2.1 Support</h4>
<div class="paragraph">
<p>JAX-RS 2.1 is part of JavaEE8 and JBoss Tools now provides you with support for this update of the specification.</p>
</div>
<div class="sect4">
<h5 id="server-side-events"><a class="anchor" href="#server-side-events"></a>Server side events</h5>
<div class="paragraph">
<p>JAX-RS 2.1 brought support for server side events. The <code>Sse</code> and <code>SseEventSink</code> resources can now be injected into
method arguments thanks to the @Context annotation.</p>
</div>
<div class="paragraph">
<p>Enjoy!</p>
</div>
<div class="paragraph">
<p>Jeff Maury</p>
</div>
</div>
</div>
</div>
</div>
</div></div>