Java app developers, protect your intellectual property and improve the end-user experience. Get Excelsior JET.
 

Excelsior JET Maven and Gradle Plugins Release Candidates

We have updated Excelsior JET Maven and Gradle plugins to version 0.9.5. Here is what they now enable you to do:

  • Add separate files/folders to the package
  • Fully configure Excelsior Installer:

    • set installation wizard language
    • remove all files on uninstall
    • run an executable after installation
    • control installation package compression
    • change installation directory defaults
    • customize the registry key used for installation on Windows
    • add shortcuts to the Windows Start menu, Desktop, etc.
    • suppress the default post-install action
    • configure custom post-install actions
    • create file associations
    • specify install/uninstall callback dynamic libraries
    • customize the (un)installer appearance
  • Allow the user to change the Tomcat port at install time

Feature Freeze

The plugins now support all features accessible via the graphical interfaces (JET Control Panel and JetPackII), with three exceptions:

  1. Eclipse RCP support, because the Eclipse Tycho Maven Plugin graduated the incubation stage just a few days ago. We may support it in the future if there will be enough demand. As for Gradle, there is no such plugin in sight.
  2. Application update packaging, because we plan to overhaul that feature completely in the mid-term future.
  3. Localization of the Excelsior Installer wizard, because we have not yet found an easy-to-use way to configure it from the plugin.

There will be no more features added before the 1.0 release, so you can think of 0.9.5 as a Release Candidate. It is therefore a perfect time now to report any issues that you may have spotted in the plugins previously, but had no time to report back then. (Please check that they are still present in 0.9.5 before reporting.)

Future Plans

We have just a couple of items left on the plugins roadmap. What is interesting is that they are not among the current product features:

  • Multi-component support: building dependencies into separate native libraries to reuse them across multiple builds so as to reduce the overall compilation time, and
  • Code signing

However, please note that the development of the plugins will likely pause for a few weeks or months due to a priority shift. In the meantime, you are welcome to request other features.

Excelsior JET Maven Plugin:
Home page | on GitHub | on Maven Central

Excelsior JET Gradle Plugin:
Home page | on GitHub | on Maven Central

Categories: Excelsior JET, Open Source

Tags: , ,

Excelsior JET Maven and Gradle Plugins Now Support Optimization Presets

We have updated Excelsior JET Maven and Gradle plugins to support optimization presets. When the Typical preset (default) is enabled, all classes from all dependencies get compiled to native code, unless you add compilation set control parameters for particular dependencies. The Smart preset enables library detection heuristics aimed at reducing compilation time and executable size. For more information, consult the README file of the plugin that you are using.

Note: Unlike the identically named preset in the JET Control Panel, the Smart preset does not enable the Global Optimizer.

Excelsior JET Maven Plugin:
Home page | on GitHub | on Maven Central

Excelsior JET Gradle Plugin:
Home page | on GitHub | on Maven Central

Categories: Excelsior JET, Open Source

Tags: , ,

Excelsior JET Maven And Gradle Plugins Support More Runtime Configurations

We have updated Excelsior JET Maven and Gradle plugins to support more runtime configurations. Now the users of those plugins also can:

  • Select the desired Excelsior JET Runtime flavor – Desktop, Server, or Classic
  • Change the default location of the Excelsior JET Runtime directory in the resulting package
  • Reduce application disk footprint (32-bit versions only)

Excelsior JET Maven Plugin:
Home page | on GitHub | on Maven Central

Excelsior JET Gradle Plugin:
Home page | on GitHub | on Maven Central

Categories: Excelsior JET, Open Source

Tags: , ,

Excelsior JET Maven And Gradle Plugins Now Support Compact Profiles

We have updated Excelsior JET Maven and Gradle plugins to support Java SE Compact Profiles.

Excelsior JET Maven Plugin:
Home page | on GitHub | on Maven Central

Excelsior JET Gradle Plugin:
Home page | on GitHub | on Maven Central

Categories: Excelsior JET, Open Source

Tags: , ,

From Excelsior Hack Day V: Git Autocomplete Plugin for Far Manager

Remember Norton Commander? You aren’t much younger than me then. If you don’t, Norton Commander was a file manager for MS-DOS that worked in text mode. It was initially released in 1986, and its pirated copies became ubiquitous in the Soviet Union. To the less computer-savvy people, Norton Commander was the operating system back then — they were literally unable to use a PC without it.

It therefore comes as no surprise that it was a Russian developer Eugene Roshal who created a Norton Commander clone for Windows. Globally Eugene is primarily recognized for the creation of the RAR archive format and the WinRAR archiver. But here, the product many of his fellow Russian developers and some non-developers, including myself and the rest of Excelsior, still use on a daily basis is Far Manager, usually shortened as “Far”. To us, Far is the real Windows Command Prompt.

One area where Far loses out to Bash is command line autocompletion, known to be a productivity boost to all Git users maintaining dozens of local branches. The good news are that Far can be extended with plugins, so a pair of our Far and Git fans decided to put its SDK to a good use during our recent annual hackathon. The result is the Git Autocomplete plugin for Far Manager, released today under the MIT/X11 license.

Categories: Open Source

From Excelsior Hack Day V: LangLocker Plugins

If your mother tongue is English or some other language with Latin alphabet, it may be difficult for you to understand the frustration of, say, a Russian-speaking developer who has just typed “згмдшс ште зфсл(Ашду цщклштпВшкусещкн” into their IDE instead of “public int pack(File workingDirectory” after accidentally switching the keyboard input language.

One such regularly frustrated developer is my colleague here at Excelsior, and during our fifth annual Hack Day he wrote Eclipse and JetBrains IDEs plugins that lock the input language:

Categories: Java

Excelsior JET Maven And Gradle Plugins Updated

We have updated Excelsior JET Maven and Gradle plugins to support invocation libraries and Windows services. Eclipse RCP remains the only application type that the plugins do not support yet.

Excelsior JET Maven Plugin:
Home page | on GitHub | on Maven Central

Excelsior JET Gradle Plugin:
Home page | on GitHub | on Maven Central

Categories: Excelsior JET, Open Source, Product Updates

Tags: ,

Excelsior JET 11.3 Released

We’ve shipped Excelsior JET 11.3 and Excelsior JET Embedded 11.3 for all platforms.

The most important changes are as follows:

  • You can now target Linux/ARM devices with Excelsior JET Embedded
  • Java SE Compact Profiles are now supported on all platforms, so Java Runtime Slim-Down is deprecated
  • The memory management subsystem went through a major overhaul in order to reduce the application RAM requirements and eliminate OOMs in edge cases
  • Performance of 64-bit applications improved
  • More control over unattended builds, direct and via Maven/Gradle plugins
  • Support for Java SE 8 Update 101, Windows 10, Eclipse RCP 4.5 and Apache Tomcat 8.0.
  • Tomcat Web applications support and CoreBalance GC enabled for embedded targets

Learn more
or download your evaluation copy of Excelsior JET 11.3

P.S. if your Support Contract was active on Nov 02, 2016, or you have purchased Excelsior JET 11 from a third-party reseller after that date, you should have received the download instructions for version 11.3 by email.

If those instructions are neither in your inbox nor in your Junk Mail folder, email us at sales@excelsior-usa.com.

Categories: Excelsior JET, News

Tags:

AOT-compiled Jake2 Runs on a Raspberry Pi 3

The first-ever release of Excelsior JET for Linux/ARM is rapidly approaching the end of what we informally call a “release period”, or RP for short. Roughly speaking, it is the period between the feature freeze and general availability dates of a new product version. During an RP, all Excelsior JET developers turn into part-time testers. Of course, most of the JCK and many other tests run in unattended mode, plus we have automated many interactive tests, but still there are some real-world applications and scenarios that have to be tested manually.

From one such test scenario a company tradition stems: on the very last day of a release period, when all other tests have passed, the Excelsior JET team plays natively compiled Jake2, a Java port of the open source Quake2 game engine, in multiplayer mode, of course. This time, however, we have a new platform – Linux/ARM, so we were not sure whether Jake2 will work there at all. Turned out it does work – here is a screenshot of Jake2 running on a Raspberry Pi 3 under 32‑bit Ubuntu MATE 16.04:

Of course, the FPS rate on the Pi fluctuates between 8 and 10 — quite low compared to the 70-80 range observed on a decent Intel PC, so whoever gets to play on that system will be seriously handicapped…

Categories: Embedded, Excelsior JET

Tags: , , ,

Excelsior JET Embedded for Linux/ARM: Swing, JavaFX and SWT Work

Back in early 2015, Oracle infamously removed JavaFX from its ARM JDK bundle and Java SE Embedded.

So we were pleasantly surprised to see Excelsior JET Embedded for Linux/ARM to pass our JavaFX tests.

Moreover, SWT tests passed too, so it seems you may be able to compile your graphical Java applications natively for ARM targets regardless of which of the major Java SE UI toolkits they use – AWT/Java2D/Swing, JavaFX, or SWT.

That said, there is no official support for JavaFX on ARM devices, so it may as well be broken on the particular piece of hardware that you are targeting. In fact, Oracle cited the abundance of non-standard hardware as the main reason for dropping support for JavaFX Embedded. We are unsure of the status of SWT support as well. So do extensive testing on you target device before committing to either technology.

Categories: Embedded, Excelsior JET

Tags: ,