Upgrading

In PreEmptive Protection - DashO v9.0 previously deprecated features have been removed and, in some cases, replaced by new features. Your project configurations may require minor adjustments.
See the change log for a list of the changes.

Include JDK

The new Include JDK feature allows you to specify the location of the JDK used to compile your code, independently of the JDK/JRE DashO is run with.
You should use this feature when working in Java 9, or later.

Java 9 and Java 10

Some features have been deprecated.
These newly-deprecated features are also not available when running DashO with Java 9, or later.
See the Java 9 and Later page for information on working with classes compiled for Java 9, or later.

The Append current Java runtime option is deprecated cannot be used when running DashO with Java 9, or later.
You should use the Include JDK setting instead.
Attempting to use this when running DashO with Java 9 (or later) will cause an error (i.e. Error: You cannot append the current runtime when running DashO with Java 9, or later.).

The Use Classpath from Environment option is deprecated and cannot be used when running DashO with Java 9, or later.
This functionality was partially replaced by the Include JDK setting.
If you need the classpath in addition to what would have been referenced by the sun.boot.class.path Java property, you will need to add the classpath files individually.
Attempting to use this when running DashO with Java 9 (or later) will cause an error (i.e. Error: You cannot use the environment classpath when running DashO with Java 9, or later.).

The ${jce.jar} and ${jsse.jar}property constants cannot be used when running DashO with Java 9, or later.
The classes in these jar files were moved into base modules starting with Java 9.
Including the JDK will allow DashO to access them.

Injecting PreEmptive Analytics (Removed)

Injecting Analytics, deprecated in version 8.4, has been removed.
If your code includes analytics annotations or your project configuration includes virtual annotations or has checks configured to send messages, errors will occur during the build (i.e. Error: PreEmptive Analytics features have been removed from PreEmptive Protection - DashO.).
All virtual annotations will be automatically stripped when opening your project with the DashO GUI.
Coded analytics annotations will need to be removed from your source files.

Note: The dasho-annotations.jar file now only contains Check and Response annotations.
Using this new jar will cause errors during compilation if your source references the removed analytics annotations.

Quick Jar Mode (Removed)

Quick Jar Mode, deprecated in version 8.2, has been removed.
DashO will automatically upgrade Quick Jar Mode projects when opened in the UI, converting them to what was known as "Advanced Mode".

Ant-based Project Configuration

Ant-based configuration of DashO build settings has been removed in the version of the DashO Ant integration distributed with PreEmptive Protection - DashO 9.0 and later.
DashO can still be called inside an Ant build script, but it must operate on an existing .dox file and will no longer augment the configuration.

If you have a project that uses Ant-based configuration of DashO build settings, the easiest way to migrate your project is to use a version of the Ant integration distributed with DashO 8.5 or earlier to generate a .dox file:

Add the the following attributes to <obfuscate> or <obfuscate-jar>:

deleteTempProject="false"

verbose="true"

Run the <obfuscate> or <obfuscate-jar> task.

Look for Temp Project=.../dasho???????.dox in the verbose console output.

Copy that file locally (giving it a better name).

Use the new copy for obfuscation by setting it in the project attribute of <obfuscate>.

If you need different configurations for a single project, you can either create multiple .dox files or use User Properties.
User Properties can still be passed to a DashO via the nested <sysproperty> elements.See the <obfuscate> example and Property References for more details.