browsers do not offer Java Web Start for .jnlp - java-web-start

Since recently I get support cases where the browser (Firefox, IE11) does not offer Java Web Start for .jnlp files – even after fresh Java installations. The users have to search for javaws.exe on their own.
Did anything change? Maybe with Java 9? We currently recommend Java 9 as we had some trouble with a bug in latest Java 8 (Update 161/162).
Does the Java 9 installer no longer associate JNLP with Java Web Start? Maybe having to do with that deprecation? (I was shocked about it, by the way. No idea how we can distribute our many different clients to thousands of business partners without Java Web Start.)

As of Java 9, the file association for Java Web Start no longer exists. Note that when you download Java from Sun, the latest current version is still version 8, which should still work.
You can alternatively create that association of .jnlp to javaws.exe, even in Java 9 and 10.
As of this year, Java 11 no longer contains the binary javaws.exe at all.

Related

Why OptaPlanner example runs very slow on WildFly but fast on Oracle JVM?

I modify the OptaPlanner 6.5 course timetabling example to a REST service using the vehiclerouting web example as a template. We found that the web version of course timetabling run very slow as compared to pure Java version of course timetabling.
For example, the pure Java edition timetabling system can get a 0Hard/-352Soft score. But the web edition can only get -7Hard/-1108Soft. No matter how long we run the example.
The web edition is hosted in a WildFly 9. The JVM versions we use are both Oracle JVM 1.8; Further, we tried using WildFly 10. And the result is the same.
Can anyone shed some light on it? I want get the same performance in web edition as Java edition.

Jose4j library compatibility with Java 6

We are considering the adoption of a library to generate and use JSON Web Tokens. Jose4j seems a good choice but library "Dependencies" state that "...Jose4j is compiled with/for Java 7 and will also run on Java 8..." and our current instalation run on Java 6 version (migration to higher versions is out of our reach), so our question is simple.
Is there any chance to integrate Jose4j with Java 6? (not at all, with some limitations, can be achieved in any way by adding some specific libraries, etc.)
Thanks in advance
Getting jose4j to run on Java 6 is (probably) possible but will require recompilation and some code changes.
There have been a couple forks of somewhat older versions that I believe have back-ported to compile and run with Java 6 - https://bitbucket.org/yosef_kitrossky/jose4j-jdk1.6/commits/all is the most recent that I know about and there's also https://bitbucket.org/ijazfx/jose4j/commits/all
You could probably do a back-port of the latest too without too much trouble. The code base uses some multi-catch, diamond, and try-with-resources syntax that will need to be converted to the pre Java 7 equivalents. Somewhat tedious perhaps but not rocket surgery. There are also some algorithms that won't work. Some might just not be available at runtime and some, like all the AES-GCM related bits, will need to be removed from the code to get it to compile.
You'll also want to have the JCE Unlimited Strength Jurisdiction Policy File(s) in place as some of the unit tests use AES keys that are larger than 128 bits http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
I hope this helps. Unfortunately, I just don't have bandwidth to maintain a Java 6 compatible version myself.
Nimbus JOSE + JWT have support for Java 6 since 4.11.1 version.
From documentation, you just need inform the classifier in the dependency:
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<classifier>jdk16</classifier>
<version>[ version ]</version>
</dependency>
You can find the available versions here.

Java 8 support in GWT

This seems like a very basic question, but I searched high and low and have found almost no mention of it anywhere. So, I'll ask it here here.
What is the current plan for supporting Java 8's new language constructs in GWT?
In addition, what subset of the proposed Java 8 libraries are slated for client-side emulation? The Stream API? The new Date/Time API?
And finally, where are the discussions relating this important topic taking place? I'm sure there are many of us who would like to participate in, and potentially contribute to, the effort.
The Java 8 betas have been around for a while now, and there are numerous articles discussing the proposed APIs. It is supposed to be related later this year, so it seems past time to at least be discussing how and when the much-desired language features will make their way into GWT.
My apologies if this question is answered somewhere else, or if I missed some important piece of information related to it. This would be a great place to have a link to such information, even if it has been answered. Thanks!
EDIT GWT 2.8.0 was released on Oct 20, 2016 with support for Java 8 language constructs (lambdas, method references) and emulation of some Java 8 APIs (streams mostly)
EDIT as of Apr 2014, GWT 2.6 supports Java 7, and work is underway to support Java 8 in GWT 2.7, to be released by the summer 2014. GWT 2.7 is likely to only support Java 8 language constructs though, and not emulate any new API (streams, javax.time, etc.)
The plan is to first support Java 7: https://github.com/gwtproject/gwt/labels/java7
This involves updating JDT, and this is being worked on (or alternatively, switch to something else entirely; JetBrains proposed using their parser which already supports Java 8, but GWT also needs a compiler and I don't know what they provide exactly). The next steps are to map new language constructs to JavaScript (strings-in-switch come to mind, as they could directly map to JavaScript without the hashCode-based desugaring that a Java compiler would be doing).
As long as GWT uses JDT for its Java parsing/munging/compiling, Java 8 can only be supported when JDT will support it (at an acceptable level, which is not yet the case AFAICT).
Time to update the answer.
UPDATE (May 13, 2020)
GWT 2.9.0 finally here. Release notes
Able to compile projects with jsinterop-base 1.0.0, elemental2 1.0.0, and jsinterop-annotations 2.0.0. With the exception of #JsAsync and #JsEnum, this brings GWT2 to be compatible across these tools with J2CL.
Added support for Java language levels 9, 10, and 11.
Officially, support is dropped for running the GWT compiler or server-side tooling on Java 7. The GWT distribution is still compiled to run on Java 7 for this release, but no guarantees are made about whether or not this will work. Future versions will compile bytecode for Java 8+. The release was tested and found to work cross platform when run with Java 8, 11, and 14.
UPDATE (October 2017)
GWT 2.8.2 available here. Release notes.
UPDATE (June 2017)
Official GWT 2.8.1 download location.
Release Notes for 2.8.1
UPDATE (October 2016)
GWT 2.8.0 is finally here!
The GWT team has released the 2.8.0 tag on Github. The official GWT website has not been updated yet, but a pull request for the changes on GWT's website is ready and in review process. So very very soon the compiled version will be available for download!
Available for download
UPDATE (September 2016)
Meanwhile, team GWT has tagged GWT 2.8.0 RC3 on GitHub mirror.
The GWT team (Daniel Kurka) has released the GWT 2.8.0 (RC2) version here.
The release notes are available for 2.8.0 (RC2):
Bug fixes
Fix incorrect unusable-by-js warning.
Fix an issue around DevMode server (jetty) restart.
Fix an issue in super dev mode with changing compiler options not triggering full recompiles.
Added missing command line parameters to DevMode entry point
Fixed a performance regression in String.
The release notes from RC1 are available on official website. Here are the most important changes regarding Java 8 support in the upcoming GWT 2.8.0:
Highlights
Partial support for Java 8 standard library APIs (see below for full list).
Fix memory leak with Java 8 compilation.
Source level set to Java 8.
Static and default methods in interfaces aren’t visible to generators. If you want to take advantage of those Java-8isms, you’re encouraged to switch to an annotation processor. This could break existing build if an interface is changed to turn a non-default method into a default method.
JDK 8 emulation support
Emulate java.io.UncheckedIOException.
Emulate Optional and its int, long, double variants.
Emulate Objects.requireNonNull() with message Supplier.
Fix Math.min/max(float/double) emulation behavior.
Emulate Character.isBmpCodePoint().
Emulate CharSequence.chars().
Emulate java.lang.SecurityException.
Emulate Java 8 API of
java.util.Arrays,
java.util.ArrayDeque,
java.math.BigInteger,
java.util.BitSet,
java.util.Comparator,
java.util.function,
java.util.Iterator,
java.lang.Iterable,
java.util.IntSummaryStatistics/LongSummaryStatistics/DoubleSummaryStatistics
java.util.Collection/Lists/Queues,
java.util.Map,
java.util.logging.Logger,
java.util.PrimitiveIterator,
java.util.Spliterator,
java.util.stream,
java.util.StringJoiner
The GWT 2.8.0 RC2 still has some issues, which the GWT team is expected to fix soon. The final release should be coming out soon ("as soon as it is ready").

How to configure JBoss with its own version of JDK?

I have a Java web app (WAR) that requires an older (1.5.11) version of the JRE, but am on Linux and spent a good deal of time setting up my environment for 1.6.34.
The web app needs to be hosted locally on JBoss (4.0.4 GA), which I have no experience with. I'm wondering if it is possible to download the 1.5.11 version of the JDK and configure things so that my JBoss instance is the only thing on my system that is using it. This way I don't need to worry about blowing out any of my other configs for 1.6.34.
If it is possible, what are the general steps and what are the JBoss configs I need to make? Thanks in advance.
Of course this is possible. You can install as many java versions as you like and make sure path/JAVA_HOME is set up correctly for each process you want to launch.
in JBOSS_HOME/bin/run.conf you can specify your 1.5 JAVA_HOME.
But if you are talking about serious business, you should get somebody (like your software supplier) to upgrade. 1.5.11 is superold and unsupported. and JBoss 4.0.4 is equally old and even less supported.

IDE supporting WAS

Hello all,
Can anyone tell me which IDE I can use to do development towards WAS 7.0?
Please help me out with the answer very soon. I have checked Netbeans 6.5 beta and it does not have the support for it. Also on the MyEclipse Blue Edition page it says Compatible with WebSphere 5.x, 6.0, 6.1, 7, but in http://www.myeclipseide.com/index.php?name=PNphpBB2&file=viewtopic&p=98487 I see "WebSphere Application Server V7.0 is not supported by MyEclipse at the moment. Thats the reasons you guys are running into issues."
Anyone please help me out with this issue ASAP.
IBM Rational Application Developer 7.5
If you want proper support for WAS, you should be using the Rational toolset. RAD/RSA and their brethren are optimized for Websphere (as you'd expect given they're both from IBM).
You can do it with baseline Eclipse (I'd use the "real" Eclipse rather than myeclipse) but the easiest set up will be with Rational. You may not want to spend the money however.
It's well worth the cost, since it comes bundled with WAS test environments and can deploy automatically to other WAS instances (for example, system test environments).
RAD 7.5 supports WAS 7 so I'd go for that one. RAD 7 only supports up to WAS 6.1.
See Compare Eclipse Packages for a nice chart