Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoopur Gupta2019-01-23 09:55:02 +0000
committerNoopur Gupta2019-01-23 09:55:02 +0000
commitb823e82835414ca8e5e65074df4d53f946c64310 (patch)
treea1228b2799a0c324ad9cac5df7a26a63219d6717
parent669eddf99071fbc080d679d57b0f9e485230879d (diff)
downloadeclipse.jdt.ui-b823e82835414ca8e5e65074df4d53f946c64310.tar.gz
eclipse.jdt.ui-b823e82835414ca8e5e65074df4d53f946c64310.tar.xz
eclipse.jdt.ui-b823e82835414ca8e5e65074df4d53f946c64310.zip
Bug 542579: [12] support --enable-preview in UIY20190201-0030Y20190130-2200Y20190130-0010
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java149
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.java4
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.properties4
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathSupport.java11
4 files changed, 142 insertions, 26 deletions
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java
index a626501105..9d60885a92 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -103,11 +103,14 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
private static final Key PREF_CODEGEN_TARGET_PLATFORM= getJDTCoreKey(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM);
private static final Key PREF_COMPLIANCE= getJDTCoreKey(JavaCore.COMPILER_COMPLIANCE);
private static final Key PREF_RELEASE= getJDTCoreKey(JavaCore.COMPILER_RELEASE);
+ private static final Key PREF_ENABLE_PREVIEW= getJDTCoreKey(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES);
+ private static final Key PREF_PB_REPORT_PREVIEW= getJDTCoreKey(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES);
/* see also BuildPathSupport#PREFS_COMPLIANCE */
private static final Key[] PREFS_COMPLIANCE= new Key[] { PREF_COMPLIANCE,
PREF_PB_ASSERT_AS_IDENTIFIER, PREF_PB_ENUM_AS_IDENTIFIER,
- PREF_SOURCE_COMPATIBILITY, PREF_CODEGEN_TARGET_PLATFORM };
+ PREF_SOURCE_COMPATIBILITY, PREF_CODEGEN_TARGET_PLATFORM,
+ PREF_ENABLE_PREVIEW, PREF_PB_REPORT_PREVIEW};
private static final Key PREF_CODEGEN_INLINE_JSR_BYTECODE= getJDTCoreKey(JavaCore.COMPILER_CODEGEN_INLINE_JSR_BYTECODE);
@@ -168,6 +171,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
* @see #IDX_INLINE_JSR_BYTECODE
* @see #IDX_METHOD_PARAMETERS_ATTR
* @see #IDX_RELEASE
+ * @see #IDX_ENABLE_PREVIEW
+ * @see #IDX_REPORT_PREVIEW
*/
private String[] fRememberedUserCompliance;
@@ -183,6 +188,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
* @see #IDX_INLINE_JSR_BYTECODE
* @see #IDX_METHOD_PARAMETERS_ATTR
* @see #IDX_RELEASE
+ * @see #IDX_ENABLE_PREVIEW
+ * @see #IDX_REPORT_PREVIEW
*/
private String[] fOriginalStoredCompliance;
@@ -194,6 +201,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
private static final int IDX_INLINE_JSR_BYTECODE= 5;
private static final int IDX_METHOD_PARAMETERS_ATTR= 6;
private static final int IDX_RELEASE= 7;
+ private static final int IDX_ENABLE_PREVIEW= 8;
+ private static final int IDX_REPORT_PREVIEW= 9;
private IStatus fComplianceStatus;
@@ -202,6 +211,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
private Composite fControlsComposite;
private ControlEnableState fBlockEnableState;
private Button fComplierReleaseCheck;
+ private Button fEnablePreviewCheck;
+ private Combo fReportPreviewCombo;
public ComplianceConfigurationBlock(IStatusChangeListener context, IProject project, IWorkbenchPreferenceContainer container) {
super(context, project, getKeys(project != null), container);
@@ -222,7 +233,9 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
getValue(PREF_COMPLIANCE),
getValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
getValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR),
- getValue(PREF_RELEASE)
+ getValue(PREF_RELEASE),
+ getValue(PREF_ENABLE_PREVIEW),
+ getValue(PREF_PB_REPORT_PREVIEW)
};
}
@@ -230,7 +243,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
Key[] keys= new Key[] {
PREF_LOCAL_VARIABLE_ATTR, PREF_LINE_NUMBER_ATTR, PREF_SOURCE_FILE_ATTR, PREF_CODEGEN_UNUSED_LOCAL, PREF_CODEGEN_INLINE_JSR_BYTECODE, INTR_DEFAULT_COMPLIANCE,
PREF_COMPLIANCE, PREF_SOURCE_COMPATIBILITY,
- PREF_CODEGEN_TARGET_PLATFORM, PREF_PB_ASSERT_AS_IDENTIFIER, PREF_PB_ENUM_AS_IDENTIFIER, PREF_CODEGEN_METHOD_PARAMETERS_ATTR, PREF_RELEASE
+ PREF_CODEGEN_TARGET_PLATFORM, PREF_PB_ASSERT_AS_IDENTIFIER, PREF_PB_ENUM_AS_IDENTIFIER, PREF_CODEGEN_METHOD_PARAMETERS_ATTR, PREF_RELEASE,
+ PREF_ENABLE_PREVIEW, PREF_PB_REPORT_PREVIEW
};
if (projectSpecific) {
@@ -399,6 +413,19 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
int indent= LayoutUtil.getIndent();
+ String[] warningInfoIgnore= new String[] { WARNING, INFO, IGNORE };
+ String[] warningInfoIgnoreLabels= new String[] {
+ PreferencesMessages.ComplianceConfigurationBlock_warning,
+ PreferencesMessages.ComplianceConfigurationBlock_info,
+ PreferencesMessages.ComplianceConfigurationBlock_ignore
+ };
+
+ label= PreferencesMessages.ComplianceConfigurationBlock_enable_preview_label;
+ fEnablePreviewCheck= addCheckBox(group, label, PREF_ENABLE_PREVIEW, new String[] { ENABLED, DISABLED }, indent);
+ label= PreferencesMessages.ComplianceConfigurationBlock_enable_preview_severity_label;
+ fReportPreviewCombo= addComboBox(group, label, PREF_PB_REPORT_PREVIEW, warningInfoIgnore, warningInfoIgnoreLabels, indent * 2);
+ fReportPreviewCombo.setEnabled(fEnablePreviewCheck.isEnabled() && fEnablePreviewCheck.getSelection());
+
label= PreferencesMessages.ComplianceConfigurationBlock_codegen_targetplatform_label;
addComboBox(group, label, PREF_CODEGEN_TARGET_PLATFORM, targetVersions, targetLabels, indent);
@@ -579,6 +606,7 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
fComplianceStatus= validateCompliance();
validateComplianceStatus();
} else if (PREF_SOURCE_COMPATIBILITY.equals(changedKey)) {
+ updatePreviewFeaturesState();
updateAssertEnumAsIdentifierEnableState();
fComplianceStatus= validateCompliance();
} else if (PREF_CODEGEN_TARGET_PLATFORM.equals(changedKey)) {
@@ -595,11 +623,17 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
updateControls();
updateInlineJSREnableState();
updateStoreMethodParamNamesEnableState();
+ updatePreviewFeaturesState();
updateAssertEnumAsIdentifierEnableState();
fComplianceStatus= validateCompliance();
} else if (PREF_PB_ENUM_AS_IDENTIFIER.equals(changedKey) ||
PREF_PB_ASSERT_AS_IDENTIFIER.equals(changedKey)) {
fComplianceStatus= validateCompliance();
+ } else if (PREF_ENABLE_PREVIEW.equals(changedKey)) {
+ fComplianceStatus= validateCompliance();
+ updatePreviewFeaturesState();
+ } else if (PREF_PB_REPORT_PREVIEW.equals(changedKey)) {
+ fComplianceStatus= validateCompliance();
} else {
return;
}
@@ -607,6 +641,7 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
updateComplianceFollowsEE();
updateControls();
updateComplianceEnableState();
+ updatePreviewFeaturesState();
updateAssertEnumAsIdentifierEnableState();
updateInlineJSREnableState();
updateStoreMethodParamNamesEnableState();
@@ -628,7 +663,9 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
getOriginalStoredValue(PREF_COMPLIANCE),
getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
getOriginalStoredValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR),
- getOriginalStoredValue(PREF_RELEASE)
+ getOriginalStoredValue(PREF_RELEASE),
+ getOriginalStoredValue(PREF_ENABLE_PREVIEW),
+ getOriginalStoredValue(PREF_PB_REPORT_PREVIEW)
};
} else {
@@ -640,7 +677,9 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
getOriginalStoredValue(PREF_COMPLIANCE),
getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
getOriginalStoredValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR),
- getOriginalStoredValue(PREF_RELEASE)
+ getOriginalStoredValue(PREF_RELEASE),
+ getOriginalStoredValue(PREF_ENABLE_PREVIEW),
+ getOriginalStoredValue(PREF_PB_REPORT_PREVIEW)
};
if (!Arrays.equals(fOriginalStoredCompliance, storedCompliance)) {
// compliance changed on disk -> override user modifications
@@ -655,6 +694,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
setValue(PREF_CODEGEN_INLINE_JSR_BYTECODE, storedCompliance[IDX_INLINE_JSR_BYTECODE]);
setValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR, storedCompliance[IDX_METHOD_PARAMETERS_ATTR]);
setValue(PREF_RELEASE, storedCompliance[IDX_RELEASE]);
+ setValue(PREF_ENABLE_PREVIEW, storedCompliance[IDX_ENABLE_PREVIEW]);
+ setValue(PREF_PB_REPORT_PREVIEW, storedCompliance[IDX_REPORT_PREVIEW]);
}
updateComplianceFollowsEE();
@@ -663,6 +704,7 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
validateComplianceStatus();
updateInlineJSREnableState();
updateAssertEnumAsIdentifierEnableState();
+ updatePreviewFeaturesState();
updateStoreMethodParamNamesEnableState();
}
}
@@ -891,6 +933,19 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
}
curr.setEnabled(enable);
}
+ if (controls.contains(fReportPreviewCombo)) {
+ fReportPreviewCombo.setEnabled(fEnablePreviewCheck.isEnabled() && fEnablePreviewCheck.getSelection());
+ }
+ }
+
+ private void updatePreviewFeaturesState() {
+ if (checkValue(INTR_DEFAULT_COMPLIANCE, USER_CONF)) {
+ String compatibility= getValue(PREF_SOURCE_COMPATIBILITY);
+
+ boolean isLessThan11= JavaModelUtil.isVersionLessThan(compatibility, VERSION_11);
+ updateRememberedComplianceOption(PREF_ENABLE_PREVIEW, IDX_ENABLE_PREVIEW, !isLessThan11, null);
+ updateRememberedComplianceOption(PREF_PB_REPORT_PREVIEW, IDX_REPORT_PREVIEW, fEnablePreviewCheck.isEnabled() && fEnablePreviewCheck.getSelection(), WARNING);
+ }
}
private void updateAssertEnumAsIdentifierEnableState() {
@@ -898,31 +953,59 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
String compatibility= getValue(PREF_SOURCE_COMPATIBILITY);
boolean isLessThan14= VERSION_1_3.equals(compatibility);
- updateRememberedComplianceOption(PREF_PB_ASSERT_AS_IDENTIFIER, IDX_ASSERT_AS_IDENTIFIER, isLessThan14);
+ updateRememberedComplianceOption(PREF_PB_ASSERT_AS_IDENTIFIER, IDX_ASSERT_AS_IDENTIFIER, isLessThan14, ERROR);
boolean isLessThan15= isLessThan14 || VERSION_1_4.equals(compatibility);
- updateRememberedComplianceOption(PREF_PB_ENUM_AS_IDENTIFIER, IDX_ENUM_AS_IDENTIFIER, isLessThan15);
+ updateRememberedComplianceOption(PREF_PB_ENUM_AS_IDENTIFIER, IDX_ENUM_AS_IDENTIFIER, isLessThan15, ERROR);
}
}
- private void updateRememberedComplianceOption(Key prefKey, int idx, boolean enabled) {
- Combo combo= getComboBox(prefKey);
- combo.setEnabled(enabled);
+ private void updateRememberedComplianceOption(Key prefKey, int idx, boolean enabled, String defaultComboValue) {
+ if (prefKey.getName().equals(PREF_ENABLE_PREVIEW.getName())) {
+ Button checkBox= getCheckBox(prefKey);
+ boolean wasCheckBoxEnabled= checkBox.isEnabled();
+ checkBox.setEnabled(enabled);
+
+ if (enabled) {
+ if (!wasCheckBoxEnabled) {
+ String val= fRememberedUserCompliance[idx];
+ if (ENABLED.equals(val)) {
+ setValue(PREF_ENABLE_PREVIEW, val);
+ updateCheckBox(checkBox);
+ }
+ }
+ } else {
+ String val= getValue(PREF_ENABLE_PREVIEW);
+ if (wasCheckBoxEnabled) {
+ fRememberedUserCompliance[idx]= val;
+ }
- if (!enabled) {
- String val= getValue(prefKey);
- if (!ERROR.equals(val)) {
- setValue(prefKey, ERROR);
- updateCombo(combo);
- fRememberedUserCompliance[idx]= val;
+ if (ENABLED.equals(val)) {
+ setValue(PREF_ENABLE_PREVIEW, DISABLED);
+ updateCheckBox(checkBox);
+ }
}
+
} else {
- String val= fRememberedUserCompliance[idx];
- if (!ERROR.equals(val)) {
- setValue(prefKey, val);
- updateCombo(combo);
+ Combo combo= getComboBox(prefKey);
+ combo.setEnabled(enabled);
+
+ if (!enabled) {
+ String val= getValue(prefKey);
+ if (!defaultComboValue.equals(val)) {
+ setValue(prefKey, defaultComboValue);
+ updateCombo(combo);
+ fRememberedUserCompliance[idx]= val;
+ }
+ } else {
+ String val= fRememberedUserCompliance[idx];
+ if (!defaultComboValue.equals(val)) {
+ setValue(prefKey, val);
+ updateCombo(combo);
+ }
}
}
+
}
private void updateInlineJSREnableState() {
@@ -989,7 +1072,7 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
* @param oldComplianceLevel the previous compliance level
*/
private void updateComplianceDefaultSettings(boolean rememberOld, String oldComplianceLevel) {
- String assertAsId, enumAsId, source, target;
+ String enablePreview, reportPreview, assertAsId, enumAsId, source, target;
boolean isDefault= checkValue(INTR_DEFAULT_COMPLIANCE, DEFAULT_CONF);
boolean isFollowEE= checkValue(INTR_COMPLIANCE_FOLLOWS_EE, DEFAULT_CONF);
String complianceLevel= getValue(PREF_COMPLIANCE);
@@ -1001,6 +1084,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
oldComplianceLevel= complianceLevel;
}
+ fRememberedUserCompliance[IDX_ENABLE_PREVIEW]= getValue(PREF_ENABLE_PREVIEW);
+ fRememberedUserCompliance[IDX_REPORT_PREVIEW]= getValue(PREF_PB_REPORT_PREVIEW);
fRememberedUserCompliance[IDX_ASSERT_AS_IDENTIFIER]= getValue(PREF_PB_ASSERT_AS_IDENTIFIER);
fRememberedUserCompliance[IDX_ENUM_AS_IDENTIFIER]= getValue(PREF_PB_ENUM_AS_IDENTIFIER);
fRememberedUserCompliance[IDX_SOURCE_COMPATIBILITY]= getValue(PREF_SOURCE_COMPATIBILITY);
@@ -1015,6 +1100,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
if (eeOptions == null)
return;
+ enablePreview= eeOptions.get(PREF_ENABLE_PREVIEW.getName());
+ reportPreview= eeOptions.get(PREF_PB_REPORT_PREVIEW.getName());
assertAsId= eeOptions.get(PREF_PB_ASSERT_AS_IDENTIFIER.getName());
enumAsId= eeOptions.get(PREF_PB_ENUM_AS_IDENTIFIER.getName());
source= eeOptions.get(PREF_SOURCE_COMPATIBILITY.getName());
@@ -1032,6 +1119,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
}
} else if (isRelease) {
+ enablePreview= getValue(PREF_ENABLE_PREVIEW);
+ reportPreview= getValue(PREF_PB_REPORT_PREVIEW);
source= getValue(PREF_COMPLIANCE);
target= getValue(PREF_COMPLIANCE);
assertAsId= getValue(PREF_PB_ASSERT_AS_IDENTIFIER);
@@ -1040,11 +1129,15 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
HashMap<String, String> options= new HashMap<>();
JavaModelUtil.setComplianceOptions(options, complianceLevel);
if (complianceLevel.equals(options.get(JavaCore.COMPILER_COMPLIANCE))) {
+ enablePreview= options.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES);
+ reportPreview= options.get(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES);
source= options.get(JavaCore.COMPILER_SOURCE);
target= options.get(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM);
assertAsId= options.get(JavaCore.COMPILER_PB_ASSERT_IDENTIFIER);
enumAsId= options.get(JavaCore.COMPILER_PB_ENUM_IDENTIFIER);
} else {
+ enablePreview= DISABLED;
+ reportPreview= WARNING;
assertAsId= IGNORE;
enumAsId= IGNORE;
source= VERSION_1_3;
@@ -1053,23 +1146,29 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
}
} else {
if (rememberOld && complianceLevel.equals(fRememberedUserCompliance[IDX_COMPLIANCE])) {
+ enablePreview= fRememberedUserCompliance[IDX_ENABLE_PREVIEW];
+ reportPreview= fRememberedUserCompliance[IDX_REPORT_PREVIEW];
assertAsId= fRememberedUserCompliance[IDX_ASSERT_AS_IDENTIFIER];
enumAsId= fRememberedUserCompliance[IDX_ENUM_AS_IDENTIFIER];
source= fRememberedUserCompliance[IDX_SOURCE_COMPATIBILITY];
target= fRememberedUserCompliance[IDX_CODEGEN_TARGET_PLATFORM];
} else {
updateInlineJSREnableState();
+ updatePreviewFeaturesState();
updateAssertEnumAsIdentifierEnableState();
updateStoreMethodParamNamesEnableState();
return;
}
}
+ setValue(PREF_ENABLE_PREVIEW, enablePreview);
+ setValue(PREF_PB_REPORT_PREVIEW, reportPreview);
setValue(PREF_PB_ASSERT_AS_IDENTIFIER, assertAsId);
setValue(PREF_PB_ENUM_AS_IDENTIFIER, enumAsId);
setValue(PREF_SOURCE_COMPATIBILITY, source);
setValue(PREF_CODEGEN_TARGET_PLATFORM, target);
updateControls();
updateInlineJSREnableState();
+ updatePreviewFeaturesState();
updateAssertEnumAsIdentifierEnableState();
updateStoreMethodParamNamesEnableState();
}
@@ -1095,6 +1194,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
JavaModelUtil.setComplianceOptions(defaultOptions, complianceLevel);
if (complianceLevel.equals(defaultOptions.get(JavaCore.COMPILER_COMPLIANCE))
+ && getValue(PREF_ENABLE_PREVIEW).equals(defaultOptions.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES))
+ && getValue(PREF_PB_REPORT_PREVIEW).equals(defaultOptions.get(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES))
&& getValue(PREF_SOURCE_COMPATIBILITY).equals(defaultOptions.get(JavaCore.COMPILER_SOURCE))
&& getValue(PREF_CODEGEN_TARGET_PLATFORM).equals(defaultOptions.get(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM))
&& getValue(PREF_PB_ASSERT_AS_IDENTIFIER).equals(defaultOptions.get(JavaCore.COMPILER_PB_ASSERT_IDENTIFIER))
@@ -1176,6 +1277,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
Map<String, String> complianceOptions= new HashMap<>();
JavaModelUtil.setComplianceOptions(complianceOptions, complianceLevel);
setDefaultValue(PREF_COMPLIANCE, complianceOptions.get(PREF_COMPLIANCE.getName()));
+ setDefaultValue(PREF_ENABLE_PREVIEW, complianceOptions.get(PREF_ENABLE_PREVIEW.getName()));
+ setDefaultValue(PREF_PB_REPORT_PREVIEW, complianceOptions.get(PREF_PB_REPORT_PREVIEW.getName()));
setDefaultValue(PREF_PB_ASSERT_AS_IDENTIFIER, complianceOptions.get(PREF_PB_ASSERT_AS_IDENTIFIER.getName()));
setDefaultValue(PREF_PB_ENUM_AS_IDENTIFIER, complianceOptions.get(PREF_PB_ENUM_AS_IDENTIFIER.getName()));
setDefaultValue(PREF_SOURCE_COMPATIBILITY, complianceOptions.get(PREF_SOURCE_COMPATIBILITY.getName()));
@@ -1199,6 +1302,8 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock {
&& equals(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, bundleDefaults, options)
&& equals(JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, bundleDefaults, options)
&& equals(JavaCore.COMPILER_PB_ENUM_IDENTIFIER, bundleDefaults, options)
+ && equals(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, bundleDefaults, options)
+ && equals(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, bundleDefaults, options)
&& equals(JavaCore.COMPILER_RELEASE, bundleDefaults, options);
}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.java
index 1b6558b697..d882209b43 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -535,6 +535,8 @@ public final class PreferencesMessages extends NLS {
public static String ComplianceConfigurationBlock_codegen_method_parameters_attr;
public static String ComplianceConfigurationBlock_compiler_compliance_label;
public static String ComplianceConfigurationBlock_default_settings_label;
+ public static String ComplianceConfigurationBlock_enable_preview_label;
+ public static String ComplianceConfigurationBlock_enable_preview_severity_label;
public static String ComplianceConfigurationBlock_source_compatibility_label;
public static String ComplianceConfigurationBlock_codegen_targetplatform_label;
public static String ComplianceConfigurationBlock_pb_assert_as_identifier_label;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.properties b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.properties
index 8da784d221..fa5c00ce5d 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.properties
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.properties
@@ -1,5 +1,5 @@
###############################################################################
-# Copyright (c) 2000, 2018 IBM Corporation and others.
+# Copyright (c) 2000, 2019 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
@@ -606,6 +606,8 @@ ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label=Inline finally bl
ComplianceConfigurationBlock_codegen_method_parameters_attr=&Store information about method parameters (usable via reflection)
ComplianceConfigurationBlock_compiler_compliance_label=Comp&iler compliance level:
ComplianceConfigurationBlock_default_settings_label=Use defaul&t compliance settings
+ComplianceConfigurationBlock_enable_preview_label=Enable &preview features
+ComplianceConfigurationBlock_enable_preview_severity_label=Preview features with se&verity level:
ComplianceConfigurationBlock_source_compatibility_label=Source co&mpatibility:
ComplianceConfigurationBlock_codegen_targetplatform_label=Ge&nerated .class files compatibility:
ComplianceConfigurationBlock_pb_assert_as_identifier_label=Disallow identifie&rs called 'assert':
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathSupport.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathSupport.java
index e6fc127055..08111170ce 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathSupport.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathSupport.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -7,6 +7,10 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
+ *
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
*
* Contributors:
* IBM Corporation - initial API and implementation
@@ -63,7 +67,8 @@ public class BuildPathSupport {
private static final String[] PREFS_COMPLIANCE= new String[] {
JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaCore.COMPILER_PB_ENUM_IDENTIFIER,
JavaCore.COMPILER_SOURCE, JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM,
- JavaCore.COMPILER_COMPLIANCE, JavaCore.COMPILER_RELEASE
+ JavaCore.COMPILER_COMPLIANCE, JavaCore.COMPILER_RELEASE,
+ JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES
};
@@ -418,6 +423,8 @@ public class BuildPathSupport {
* <li>{@link JavaCore#COMPILER_PB_ASSERT_IDENTIFIER}</li>
* <li>{@link JavaCore#COMPILER_PB_ENUM_IDENTIFIER}</li>
* <li>{@link JavaCore#COMPILER_CODEGEN_INLINE_JSR_BYTECODE} for compliance levels 1.5 and greater</li>
+ * <li>{@link JavaCore#COMPILER_PB_ENABLE_PREVIEW_FEATURES} for compliance levels 11 and greater</li>
+ * <li>{@link JavaCore#COMPILER_PB_REPORT_PREVIEW_FEATURES} for compliance levels 11 and greater</li>
* </ul>
*
* @param ee the EE, can be <code>null</code>

Back to the top