Bug 569711 - [cleanup] "Java Feature" new tab page

Change-Id: Iaa9490f6301212419bbc84386cc59aa2f7fe307d
Signed-off-by: Fabrice Tiercelin <fabrice.tiercelin@yahoo.fr>
diff --git a/org.eclipse.jdt.ui/plugin.properties b/org.eclipse.jdt.ui/plugin.properties
index eb51d36..25bb938 100644
--- a/org.eclipse.jdt.ui/plugin.properties
+++ b/org.eclipse.jdt.ui/plugin.properties
@@ -1210,6 +1210,7 @@
 
 #--- Clean Up ---
 CleanUpTabPage.CodeStyle.name = &Code Style
+CleanUpTabPage.JavaFeature.name = &Java Feature
 CleanUpTabPage.Optimization.name = O&ptimization
 CleanUpTabPage.MemberAccesses.name = Membe&r Accesses
 CleanUpTabPage.UnnecessaryCode.name = &Unnecessary Code
diff --git a/org.eclipse.jdt.ui/plugin.xml b/org.eclipse.jdt.ui/plugin.xml
index 24c0632..3985545 100644
--- a/org.eclipse.jdt.ui/plugin.xml
+++ b/org.eclipse.jdt.ui/plugin.xml
@@ -6993,6 +6993,11 @@
             cleanUpKind="saveAction">
       </cleanUpConfigurationUI>
       <cleanUpConfigurationUI
+            class="org.eclipse.jdt.internal.ui.preferences.cleanup.JavaFeatureTabPage"
+            name="%CleanUpTabPage.JavaFeature.name"
+            cleanUpKind="cleanUp">
+      </cleanUpConfigurationUI>
+      <cleanUpConfigurationUI
             class="org.eclipse.jdt.internal.ui.preferences.cleanup.OptimizationTabPage"
             name="%CleanUpTabPage.Optimization.name"
             cleanUpKind="saveAction">
@@ -7062,29 +7067,14 @@
             runAfter="org.eclipse.jdt.ui.cleanup.add_all">
       </cleanUp>
       <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.VarCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.var"
-            runAfter="org.eclipse.jdt.ui.cleanup.variables">
-      </cleanUp>
-      <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.LambdaExpressionsCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.lambda"
-            runAfter="org.eclipse.jdt.ui.cleanup.var">
-      </cleanUp>
-      <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.ElseIfCleanUp"
             id="org.eclipse.jdt.ui.cleanup.else_if"
-            runAfter="org.eclipse.jdt.ui.cleanup.lambda">
-      </cleanUp>
-      <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.SwitchExpressionsCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.switch_expressions"
-            runAfter="org.eclipse.jdt.ui.cleanup.else_if">
+            runAfter="org.eclipse.jdt.ui.cleanup.variables">
       </cleanUp>
       <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.ExpressionsCleanUp"
             id="org.eclipse.jdt.ui.cleanup.expressions"
-            runAfter="org.eclipse.jdt.ui.cleanup.switch_expressions">
+            runAfter="org.eclipse.jdt.ui.cleanup.else_if">
       </cleanUp>
       <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.LambdaExpressionAndMethodRefCleanUp"
@@ -7172,14 +7162,9 @@
             runAfter="org.eclipse.jdt.ui.cleanup.unnecessary_modifiers">
       </cleanUp>
       <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.PatternMatchingForInstanceofCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.pattern_matching"
-            runAfter="org.eclipse.jdt.ui.cleanup.embedded_if">
-      </cleanUp>
-      <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.RedundantSemicolonsCleanUp"
             id="org.eclipse.jdt.ui.cleanup.unnecessary_semicolons"
-            runAfter="org.eclipse.jdt.ui.cleanup.pattern_matching">
+            runAfter="org.eclipse.jdt.ui.cleanup.embedded_if">
       </cleanUp>
       <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.UnnecessaryArrayCreationCleanUp"
@@ -7197,14 +7182,9 @@
             runAfter="org.eclipse.jdt.ui.cleanup.useless_return">
       </cleanUp>
       <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.ObjectsEqualsCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.objects_equals"
-            runAfter="org.eclipse.jdt.ui.cleanup.useless_continue">
-      </cleanUp>
-      <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.StringCleanUp"
             id="org.eclipse.jdt.ui.cleanup.strings"
-            runAfter="org.eclipse.jdt.ui.cleanup.objects_equals">
+            runAfter="org.eclipse.jdt.ui.cleanup.useless_continue">
       </cleanUp>
       <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.UnimplementedCodeCleanUp"
@@ -7227,24 +7207,9 @@
             runAfter="org.eclipse.jdt.ui.cleanup.imports">
       </cleanUp>
       <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.TypeParametersCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.type_parameters"
-            runAfter="org.eclipse.jdt.ui.cleanup.format">
-      </cleanUp>
-      <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.HashCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.hash"
-            runAfter="org.eclipse.jdt.ui.cleanup.type_parameters">
-      </cleanUp>
-      <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.JoinCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.join"
-            runAfter="org.eclipse.jdt.ui.cleanup.hash">
-      </cleanUp>
-      <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.ArraysFillCleanUp"
             id="org.eclipse.jdt.ui.cleanup.arrays_fill"
-            runAfter="org.eclipse.jdt.ui.cleanup.join">
+            runAfter="org.eclipse.jdt.ui.cleanup.format">
       </cleanUp>
       <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.EvaluateNullableCleanUp"
@@ -7252,19 +7217,9 @@
             runAfter="org.eclipse.jdt.ui.cleanup.arrays_fill">
       </cleanUp>
       <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.AutoboxingCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.autoboxing"
-            runAfter="org.eclipse.jdt.ui.cleanup.evaluate_nullable">
-      </cleanUp>
-      <cleanUp
-            class="org.eclipse.jdt.internal.ui.fix.UnboxingCleanUp"
-            id="org.eclipse.jdt.ui.cleanup.unboxing"
-            runAfter="org.eclipse.jdt.ui.cleanup.autoboxing">
-      </cleanUp>
-      <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.PushDownNegationCleanUp"
             id="org.eclipse.jdt.ui.cleanup.push_down_negation"
-            runAfter="org.eclipse.jdt.ui.cleanup.unboxing">
+            runAfter="org.eclipse.jdt.ui.cleanup.evaluate_nullable">
       </cleanUp>
       <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.DoubleNegationCleanUp"
@@ -7327,9 +7282,59 @@
             runAfter="org.eclipse.jdt.ui.cleanup.redundant_falling_through_block_end">
       </cleanUp>
       <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.PatternMatchingForInstanceofCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.pattern_matching"
+            runAfter="org.eclipse.jdt.ui.cleanup.if_condition">
+      </cleanUp>
+      <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.SwitchExpressionsCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.switch_expressions"
+            runAfter="org.eclipse.jdt.ui.cleanup.pattern_matching">
+      </cleanUp>
+      <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.VarCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.var"
+            runAfter="org.eclipse.jdt.ui.cleanup.switch_expressions">
+      </cleanUp>
+      <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.LambdaExpressionsCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.lambda"
+            runAfter="org.eclipse.jdt.ui.cleanup.var">
+      </cleanUp>
+      <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.JoinCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.join"
+            runAfter="org.eclipse.jdt.ui.cleanup.lambda">
+      </cleanUp>
+      <cleanUp
             class="org.eclipse.jdt.internal.ui.fix.TryWithResourceCleanUp"
             id="org.eclipse.jdt.ui.cleanup.try_with_resource"
-            runAfter="org.eclipse.jdt.ui.cleanup.if_condition">
+            runAfter="org.eclipse.jdt.ui.cleanup.join">
+      </cleanUp>
+      <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.TypeParametersCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.type_parameters"
+            runAfter="org.eclipse.jdt.ui.cleanup.try_with_resource">
+      </cleanUp>
+      <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.HashCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.hash"
+            runAfter="org.eclipse.jdt.ui.cleanup.type_parameters">
+      </cleanUp>
+      <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.ObjectsEqualsCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.objects_equals"
+            runAfter="org.eclipse.jdt.ui.cleanup.hash">
+      </cleanUp>
+      <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.AutoboxingCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.autoboxing"
+            runAfter="org.eclipse.jdt.ui.cleanup.objects_equals">
+      </cleanUp>
+      <cleanUp
+            class="org.eclipse.jdt.internal.ui.fix.UnboxingCleanUp"
+            id="org.eclipse.jdt.ui.cleanup.unboxing"
+            runAfter="org.eclipse.jdt.ui.cleanup.autoboxing">
       </cleanUp>
    </extension>
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java
index 1c19cfb..911b3de 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java
@@ -49,10 +49,7 @@
 
 	public static String CodeFormatingTabPage_SortMembersSemanticChange_warning;
 
-	public static String CodeStyleTabPage_CheckboxName_ConvertForLoopToEnhanced;
-	public static String CodeStyleTabPage_CheckboxName_ConvertLoopOnlyIfLoopVarUsed;
 	public static String CodeStyleTabPage_CheckboxName_Switch;
-	public static String CodeStyleTabPage_CheckboxName_ConvertToSwitchExpressions;
 	public static String CodeStyleTabPage_CheckboxName_UseAddAllRemoveAll;
 	public static String CodeStyleTabPage_CheckboxName_UseBlocks;
 	public static String CodeStyleTabPage_CheckboxName_UseFinal;
@@ -60,8 +57,6 @@
 	public static String CodeStyleTabPage_CheckboxName_UseFinalForLocals;
 	public static String CodeStyleTabPage_CheckboxName_UseFinalForParameters;
 
-	public static String CodeStyleTabPage_CheckboxName_UseVar;
-
 	public static String CodeStyleTabPage_CheckboxName_UseParentheses;
 	public static String CodeStyleTabPage_GroupName_ControlStatements;
 
@@ -81,10 +76,6 @@
 
 	public static String CodeStyleTabPage_RadioName_UseBlocksSpecial;
 
-	public static String CodeStyleTabPage_GroupName_FunctionalInterfaces;
-	public static String CodeStyleTabPage_CheckboxName_ConvertFunctionalInterfaces;
-	public static String CodeStyleTabPage_RadioName_UseLambdaWherePossible;
-	public static String CodeStyleTabPage_RadioName_UseAnonymous;
 	public static String CodeStyleTabPage_CheckboxName_SimplifyLambdaExpressionAndMethodRefSyntax;
 
 	public static String OptimizationTabPage_GroupName_Optimization;
@@ -130,14 +121,8 @@
 
 	public static String UnnecessaryCodeTabPage_CheckboxName_UnnecessaryCasts;
 	public static String UnnecessaryCodeTabPage_CheckboxName_UnnecessaryNLSTags;
-	public static String UnnecessaryCodeTabPage_CheckboxName_RedundantTypeArguments;
-	public static String UnnecessaryCodeTabPage_CheckboxName_Hash;
-	public static String UnnecessaryCodeTabPage_CheckboxName_Join;
 	public static String UnnecessaryCodeTabPage_CheckboxName_ArraysFill;
 	public static String UnnecessaryCodeTabPage_CheckboxName_EvaluateNullable;
-	public static String UnnecessaryCodeTabPage_CheckboxName_Autoboxing;
-	public static String UnnecessaryCodeTabPage_CheckboxName_Unboxing;
-	public static String UnnecessaryCodeTabPage_CheckboxName_PatternMatchingForInstanceof;
 	public static String UnnecessaryCodeTabPage_CheckboxName_PushDownNegation;
 	public static String UnnecessaryCodeTabPage_CheckboxName_DoubleNegation;
 	public static String UnnecessaryCodeTabPage_CheckboxName_ComparisonStatement;
@@ -154,7 +139,6 @@
 	public static String UnnecessaryCodeTabPage_CheckboxName_RedundantArrayCreation_description;
 	public static String UnnecessaryCodeTabPage_CheckboxName_UselessReturn;
 	public static String UnnecessaryCodeTabPage_CheckboxName_UselessContinue;
-	public static String UnnecessaryCodeTabPage_CheckboxName_ObjectsEquals;
 	public static String UnnecessaryCodeTabPage_CheckboxName_UnnecessaryVarargsArrayCreation;
 	public static String UnnecessaryCodeTabPage_CheckboxName_UnusedConstructors;
 	public static String UnnecessaryCodeTabPage_CheckboxName_UnusedFields;
@@ -174,7 +158,36 @@
 	public static String DuplicateCodeTabPage_CheckboxName_RedundantFallingThroughBlockEnd;
 	public static String DuplicateCodeTabPage_CheckboxName_RedundantIfCondition;
 
+	public static String UnnecessaryCodeTabPage_CheckboxName_PatternMatchingForInstanceof;
+
+	public static String JavaFeatureTabPage_GroupName_Java14;
+	public static String JavaFeatureTabPage_CheckboxName_ConvertToSwitchExpressions;
+
+	public static String JavaFeatureTabPage_GroupName_Java10;
+
+	public static String JavaFeatureTabPage_CheckboxName_UseVar;
+
+	public static String JavaFeatureTabPage_GroupName_Java1d8;
+
+	public static String JavaFeatureTabPage_GroupName_FunctionalInterfaces;
+	public static String JavaFeatureTabPage_CheckboxName_ConvertFunctionalInterfaces;
+	public static String JavaFeatureTabPage_RadioName_UseLambdaWherePossible;
+	public static String JavaFeatureTabPage_RadioName_UseAnonymous;
+	public static String JavaFeatureTabPage_CheckboxName_Join;
+
+	public static String JavaFeatureTabPage_GroupName_Java1d7;
+
 	public static String JavaFeatureTabPage_CheckboxName_TryWithResource;
+	public static String JavaFeatureTabPage_CheckboxName_RedundantTypeArguments;
+	public static String JavaFeatureTabPage_CheckboxName_Hash;
+	public static String JavaFeatureTabPage_CheckboxName_ObjectsEquals;
+
+	public static String JavaFeatureTabPage_GroupName_Java1d5;
+
+	public static String JavaFeatureTabPage_CheckboxName_ConvertForLoopToEnhanced;
+	public static String JavaFeatureTabPage_CheckboxName_ConvertLoopOnlyIfLoopVarUsed;
+	public static String JavaFeatureTabPage_CheckboxName_Autoboxing;
+	public static String JavaFeatureTabPage_CheckboxName_Unboxing;
 
 	static {
 		// initialize resource bundle
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties
index 5fee04e..a8508e0 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties
@@ -46,25 +46,17 @@
 CodeStyleTabPage_CheckboxName_NumberSuffix=Use &uppercase for long literal suffix
 CodeStyleTabPage_CheckboxName_UseFinal=U&se modifier 'final' where possible
 CodeStyleTabPage_CheckboxName_UseFinalForParameters=P&arameter
-CodeStyleTabPage_CheckboxName_UseVar=&Use local variable type inference (Java 10 or higher)
-CodeStyleTabPage_CheckboxName_ConvertToSwitchExpressions=Convert to switch expression (Java 14 or higher)
 CodeStyleTabPage_RadioName_AlwaysUseParantheses=Alwa&ys
 CodeStyleTabPage_RadioName_NeverUseParantheses=Only &if necessary
 CodeStyleTabPage_GroupName_VariableDeclarations=Variable declarations
 CodeStyleTabPage_CheckboxName_UseFinalForFields=Private &fields
 CodeStyleTabPage_CheckboxName_UseFinalForLocals=&Local variables
-CodeStyleTabPage_CheckboxName_ConvertForLoopToEnhanced=Conver&t 'for' loops to enhanced
-CodeStyleTabPage_CheckboxName_ConvertLoopOnlyIfLoopVarUsed=Only if loop variable used
 CodeStyleTabPage_CheckboxName_Switch=Convert if/else if/else chain to switch
 CodeStyleTabPage_CheckboxName_UseAddAllRemoveAll=Add elements in collections without loop
 CodeStyleTabPage_GroupName_ControlStatements=Control statements
 CodeStyleTabPage_RadioName_UseBlocksSpecial=Always &except for single 'return' or 'throw' statements
 CodeStyleTabPage_CheckboxName_UseParentheses=Use parent&heses in expressions
-CodeStyleTabPage_GroupName_FunctionalInterfaces=Functional interface instances
-CodeStyleTabPage_CheckboxName_ConvertFunctionalInterfaces=Con&vert functional interface instances
-CodeStyleTabPage_RadioName_UseLambdaWherePossible=Use lambda where possible
 CodeStyleTabPage_CheckboxName_SimplifyLambdaExpressionAndMethodRefSyntax=Simplify &lambda expression and method reference syntax
-CodeStyleTabPage_RadioName_UseAnonymous=Use anonymous class
 
 OptimizationTabPage_GroupName_Optimization=Optimization
 OptimizationTabPage_CheckboxName_BreakLoop=Exit &loop earlier
@@ -115,14 +107,8 @@
 UnnecessaryCodeTabPage_GroupName_UnnecessaryCode=Unnecessary code
 UnnecessaryCodeTabPage_CheckboxName_UnnecessaryCasts=Remove unnecessar&y casts
 UnnecessaryCodeTabPage_CheckboxName_UnnecessaryNLSTags=Remove unnecessary '$NON-NLS$' ta&gs
-UnnecessaryCodeTabPage_CheckboxName_RedundantTypeArguments=Use di&amond operator (1.7 or higher)
-UnnecessaryCodeTabPage_CheckboxName_Hash=Use Objects.hash() (1.7 or higher)
-UnnecessaryCodeTabPage_CheckboxName_Join=Use String.join() &when possible (1.8 or higher)
 UnnecessaryCodeTabPage_CheckboxName_ArraysFill=Use Arrays.&fill() when possible
 UnnecessaryCodeTabPage_CheckboxName_EvaluateNullable=Evaluate without null check
-UnnecessaryCodeTabPage_CheckboxName_Autoboxing=Use Autobo&xing (1.5 or higher)
-UnnecessaryCodeTabPage_CheckboxName_Unboxing=Use Un&boxing (1.5 or higher)
-UnnecessaryCodeTabPage_CheckboxName_PatternMatchingForInstanceof=&Pattern matching for instanceof (Java 14 or higher with feature preview)
 UnnecessaryCodeTabPage_CheckboxName_PushDownNegation=Push d&own negation
 UnnecessaryCodeTabPage_CheckboxName_DoubleNegation=Double negation
 UnnecessaryCodeTabPage_CheckboxName_ComparisonStatement=Remove redundant comparison statement
@@ -140,7 +126,6 @@
 UnnecessaryCodeTabPage_CheckboxName_UnnecessaryVarargsArrayCreation=Remove unnecessary &array creation (1.5 or higher)
 UnnecessaryCodeTabPage_CheckboxName_UselessReturn=Remo&ve useless return
 UnnecessaryCodeTabPage_CheckboxName_UselessContinue=&Remove useless continue
-UnnecessaryCodeTabPage_CheckboxName_ObjectsEquals=Use Objects.e&quals() in the equals method implementation (1.7 or higher)
 
 DuplicateCodeTabPage_GroupName_DuplicateCode=Duplicate code
 DuplicateCodeTabPage_CheckboxName_TernaryOperator=Replace (X &&&& Y) || (!X &&&& Z) by X ? Y : Z
@@ -149,4 +134,34 @@
 DuplicateCodeTabPage_CheckboxName_RedundantFallingThroughBlockEnd=Remove redundant end of block with &jump statement
 DuplicateCodeTabPage_CheckboxName_RedundantIfCondition=R&edundant if condition
 
-JavaFeatureTabPage_CheckboxName_TryWithResource=Use try-with-resource (1.7 or higher)
+UnnecessaryCodeTabPage_CheckboxName_PatternMatchingForInstanceof=&Pattern matching for instanceof (Java 15 or higher with feature preview)
+
+JavaFeatureTabPage_GroupName_Java14=Java 14
+
+JavaFeatureTabPage_CheckboxName_ConvertToSwitchExpressions=Convert to switch expression
+
+JavaFeatureTabPage_GroupName_Java10=Java 10
+
+JavaFeatureTabPage_CheckboxName_UseVar=&Use local variable type inference
+
+JavaFeatureTabPage_GroupName_Java1d8=Java 8
+
+JavaFeatureTabPage_GroupName_FunctionalInterfaces=Functional interface instances
+JavaFeatureTabPage_CheckboxName_ConvertFunctionalInterfaces=Con&vert functional interface instances
+JavaFeatureTabPage_RadioName_UseLambdaWherePossible=Use lambda where possible
+JavaFeatureTabPage_RadioName_UseAnonymous=Use anonymous class
+JavaFeatureTabPage_CheckboxName_Join=Use String.join() &when possible
+
+JavaFeatureTabPage_GroupName_Java1d7=Java 7
+
+JavaFeatureTabPage_CheckboxName_TryWithResource=Use try-with-resource
+JavaFeatureTabPage_CheckboxName_RedundantTypeArguments=Use di&amond operator
+JavaFeatureTabPage_CheckboxName_Hash=Use Objects.hash()
+JavaFeatureTabPage_CheckboxName_ObjectsEquals=Use Objects.e&quals() in the equals method implementation
+
+JavaFeatureTabPage_GroupName_Java1d5=Java 5
+
+JavaFeatureTabPage_CheckboxName_ConvertForLoopToEnhanced=Conver&t 'for' loops to enhanced
+JavaFeatureTabPage_CheckboxName_ConvertLoopOnlyIfLoopVarUsed=Only if loop variable used
+JavaFeatureTabPage_CheckboxName_Autoboxing=Use Autobo&xing
+JavaFeatureTabPage_CheckboxName_Unboxing=Use Un&boxing
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java
index 7b4ed2e..a36191e 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java
@@ -24,16 +24,12 @@
 import org.eclipse.jdt.internal.ui.fix.AddAllCleanUp;
 import org.eclipse.jdt.internal.ui.fix.BitwiseConditionalExpressionCleanup;
 import org.eclipse.jdt.internal.ui.fix.ControlStatementsCleanUp;
-import org.eclipse.jdt.internal.ui.fix.ConvertLoopCleanUp;
 import org.eclipse.jdt.internal.ui.fix.ElseIfCleanUp;
 import org.eclipse.jdt.internal.ui.fix.ExpressionsCleanUp;
 import org.eclipse.jdt.internal.ui.fix.LambdaExpressionAndMethodRefCleanUp;
-import org.eclipse.jdt.internal.ui.fix.LambdaExpressionsCleanUp;
 import org.eclipse.jdt.internal.ui.fix.NumberSuffixCleanUp;
 import org.eclipse.jdt.internal.ui.fix.PullUpAssignmentCleanUp;
 import org.eclipse.jdt.internal.ui.fix.SwitchCleanUp;
-import org.eclipse.jdt.internal.ui.fix.SwitchExpressionsCleanUp;
-import org.eclipse.jdt.internal.ui.fix.VarCleanUp;
 import org.eclipse.jdt.internal.ui.fix.VariableDeclarationCleanUp;
 
 public final class CodeStyleTabPage extends AbstractCleanUpTabPage {
@@ -42,9 +38,7 @@
 	@Override
 	protected AbstractCleanUp[] createPreviewCleanUps(Map<String, String> values) {
 		return new AbstractCleanUp[] {
-				new SwitchExpressionsCleanUp(values),
 				new ControlStatementsCleanUp(values),
-				new ConvertLoopCleanUp(values),
 				new SwitchCleanUp(values),
 				new AddAllCleanUp(values),
 				new ElseIfCleanUp(values),
@@ -53,8 +47,6 @@
 				new PullUpAssignmentCleanUp(values),
 				new NumberSuffixCleanUp(values),
 				new VariableDeclarationCleanUp(values),
-				new VarCleanUp(values),
-				new LambdaExpressionsCleanUp(values),
 				new LambdaExpressionAndMethodRefCleanUp(values)
 		};
 	}
@@ -63,9 +55,6 @@
 	protected void doCreatePreferences(Composite composite, int numColumns) {
 		Group controlGroup= createGroup(numColumns, composite, CleanUpMessages.CodeStyleTabPage_GroupName_ControlStatements);
 
-		CheckboxPreference convertToSwitchExpressions= createCheckboxPref(controlGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_ConvertToSwitchExpressions, CleanUpConstants.CONTROL_STATEMENTS_CONVERT_TO_SWITCH_EXPRESSIONS, CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(convertToSwitchExpressions);
-
 		final CheckboxPreference useBlockPref= createCheckboxPref(controlGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_UseBlocks, CleanUpConstants.CONTROL_STATEMENTS_USE_BLOCKS, CleanUpModifyDialog.FALSE_TRUE);
 		intent(controlGroup);
 		final RadioPreference useBlockAlwaysPref= createRadioPref(controlGroup, numColumns - 1, CleanUpMessages.CodeStyleTabPage_RadioName_AlwaysUseBlocks, CleanUpConstants.CONTROL_STATEMENTS_USE_BLOCKS_ALWAYS, CleanUpModifyDialog.FALSE_TRUE);
@@ -78,12 +67,6 @@
 		CheckboxPreference elseIf= createCheckboxPref(controlGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_ElseIf, CleanUpConstants.ELSE_IF, CleanUpModifyDialog.FALSE_TRUE);
 		registerPreference(elseIf);
 
-		CheckboxPreference convertLoop= createCheckboxPref(controlGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_ConvertForLoopToEnhanced, CleanUpConstants.CONTROL_STATEMENTS_CONVERT_FOR_LOOP_TO_ENHANCED, CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(convertLoop);
-		intent(controlGroup);
-		final CheckboxPreference convertLoopOnlyIfLoopVariableUsed= createCheckboxPref(controlGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_ConvertLoopOnlyIfLoopVarUsed, CleanUpConstants.CONTROL_STATEMENTS_CONVERT_FOR_LOOP_ONLY_IF_LOOP_VAR_USED, CleanUpModifyDialog.FALSE_TRUE);
-		registerSlavePreference(convertLoop, new CheckboxPreference[] {convertLoopOnlyIfLoopVariableUsed});
-
 		final CheckboxPreference switchPref= createCheckboxPref(controlGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_Switch, CleanUpConstants.USE_SWITCH, CleanUpModifyDialog.FALSE_TRUE);
 		registerPreference(switchPref);
 
@@ -119,17 +102,8 @@
 		final CheckboxPreference useFinalParametersPref= createCheckboxPref(variableGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_UseFinalForParameters, CleanUpConstants.VARIABLE_DECLARATIONS_USE_FINAL_PARAMETERS, CleanUpModifyDialog.FALSE_TRUE);
 		final CheckboxPreference useFinalVariablesPref= createCheckboxPref(variableGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_UseFinalForLocals, CleanUpConstants.VARIABLE_DECLARATIONS_USE_FINAL_LOCAL_VARIABLES, CleanUpModifyDialog.FALSE_TRUE);
 		registerSlavePreference(useFinalPref, new CheckboxPreference[] {useFinalFieldsPref, useFinalParametersPref, useFinalVariablesPref});
-		final CheckboxPreference useVarPref= createCheckboxPref(variableGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_UseVar, CleanUpConstants.USE_VAR,
-				CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(useVarPref);
 
-		Group functionalInterfacesGroup= createGroup(numColumns, composite, CleanUpMessages.CodeStyleTabPage_GroupName_FunctionalInterfaces);
-
-		CheckboxPreference convertFunctionalInterfaces= createCheckboxPref(functionalInterfacesGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_ConvertFunctionalInterfaces, CleanUpConstants.CONVERT_FUNCTIONAL_INTERFACES, CleanUpModifyDialog.FALSE_TRUE);
-		intent(functionalInterfacesGroup);
-		RadioPreference useLambdaPref= createRadioPref(functionalInterfacesGroup, 1, CleanUpMessages.CodeStyleTabPage_RadioName_UseLambdaWherePossible, CleanUpConstants.USE_LAMBDA, CleanUpModifyDialog.FALSE_TRUE);
-		RadioPreference useAnonymousPref= createRadioPref(functionalInterfacesGroup, 1, CleanUpMessages.CodeStyleTabPage_RadioName_UseAnonymous, CleanUpConstants.USE_ANONYMOUS_CLASS_CREATION, CleanUpModifyDialog.FALSE_TRUE);
-		registerSlavePreference(convertFunctionalInterfaces, new RadioPreference[] { useLambdaPref, useAnonymousPref });
+		Group functionalInterfacesGroup= createGroup(numColumns, composite, CleanUpMessages.JavaFeatureTabPage_GroupName_FunctionalInterfaces);
 
 		CheckboxPreference simplifyLambdaExpressionAndMethodRef= createCheckboxPref(functionalInterfacesGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_SimplifyLambdaExpressionAndMethodRefSyntax, CleanUpConstants.SIMPLIFY_LAMBDA_EXPRESSION_AND_METHOD_REF, CleanUpModifyDialog.FALSE_TRUE);
 		registerPreference(simplifyLambdaExpressionAndMethodRef);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/JavaFeatureTabPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/JavaFeatureTabPage.java
new file mode 100644
index 0000000..c8c5ff0
--- /dev/null
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/JavaFeatureTabPage.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2020 IBM Corporation and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Fabrice TIERCELIN - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.internal.ui.preferences.cleanup;
+
+import java.util.Map;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+
+import org.eclipse.jdt.internal.corext.fix.CleanUpConstants;
+
+import org.eclipse.jdt.internal.ui.fix.AbstractCleanUp;
+import org.eclipse.jdt.internal.ui.fix.AutoboxingCleanUp;
+import org.eclipse.jdt.internal.ui.fix.ConvertLoopCleanUp;
+import org.eclipse.jdt.internal.ui.fix.HashCleanUp;
+import org.eclipse.jdt.internal.ui.fix.JoinCleanUp;
+import org.eclipse.jdt.internal.ui.fix.LambdaExpressionsCleanUp;
+import org.eclipse.jdt.internal.ui.fix.ObjectsEqualsCleanUp;
+import org.eclipse.jdt.internal.ui.fix.PatternMatchingForInstanceofCleanUp;
+import org.eclipse.jdt.internal.ui.fix.SwitchExpressionsCleanUp;
+import org.eclipse.jdt.internal.ui.fix.TryWithResourceCleanUp;
+import org.eclipse.jdt.internal.ui.fix.TypeParametersCleanUp;
+import org.eclipse.jdt.internal.ui.fix.UnboxingCleanUp;
+import org.eclipse.jdt.internal.ui.fix.VarCleanUp;
+
+public final class JavaFeatureTabPage extends AbstractCleanUpTabPage {
+	public static final String ID= "org.eclipse.jdt.ui.cleanup.tabpage.java_feature"; //$NON-NLS-1$
+
+	@Override
+	protected AbstractCleanUp[] createPreviewCleanUps(final Map<String, String> values) {
+		return new AbstractCleanUp[] {
+				new PatternMatchingForInstanceofCleanUp(values),
+				new SwitchExpressionsCleanUp(values),
+				new VarCleanUp(values),
+				new LambdaExpressionsCleanUp(values),
+				new JoinCleanUp(values),
+				new TryWithResourceCleanUp(values),
+				new TypeParametersCleanUp(values),
+				new HashCleanUp(values),
+				new ObjectsEqualsCleanUp(values),
+				new ConvertLoopCleanUp(values),
+				new AutoboxingCleanUp(values),
+				new UnboxingCleanUp(values)
+		};
+	}
+
+	@Override
+	protected void doCreatePreferences(final Composite composite, final int numColumns) {
+		// Disabled as long as it is buggy
+		//CheckboxPreference patternMatchingForInstanceof= createCheckboxPref(java15Group, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_PatternMatchingForInstanceof, CleanUpConstants.USE_PATTERN_MATCHING_FOR_INSTANCEOF, CleanUpModifyDialog.FALSE_TRUE);
+		//registerPreference(patternMatchingForInstanceof);
+
+		Group java14Group= createGroup(numColumns, composite, CleanUpMessages.JavaFeatureTabPage_GroupName_Java14);
+
+		CheckboxPreference convertToSwitchExpressions= createCheckboxPref(java14Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_ConvertToSwitchExpressions, CleanUpConstants.CONTROL_STATEMENTS_CONVERT_TO_SWITCH_EXPRESSIONS, CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(convertToSwitchExpressions);
+
+		Group java10Group= createGroup(numColumns, composite, CleanUpMessages.JavaFeatureTabPage_GroupName_Java10);
+
+		CheckboxPreference useVarPref= createCheckboxPref(java10Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_UseVar, CleanUpConstants.USE_VAR,
+				CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(useVarPref);
+
+		Group java1d8Group= createGroup(numColumns, composite, CleanUpMessages.JavaFeatureTabPage_GroupName_Java1d8);
+
+		CheckboxPreference convertFunctionalInterfaces= createCheckboxPref(java1d8Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_ConvertFunctionalInterfaces, CleanUpConstants.CONVERT_FUNCTIONAL_INTERFACES, CleanUpModifyDialog.FALSE_TRUE);
+		intent(java1d8Group);
+		RadioPreference useLambdaPref= createRadioPref(java1d8Group, 1, CleanUpMessages.JavaFeatureTabPage_RadioName_UseLambdaWherePossible, CleanUpConstants.USE_LAMBDA, CleanUpModifyDialog.FALSE_TRUE);
+		RadioPreference useAnonymousPref= createRadioPref(java1d8Group, 1, CleanUpMessages.JavaFeatureTabPage_RadioName_UseAnonymous, CleanUpConstants.USE_ANONYMOUS_CLASS_CREATION, CleanUpModifyDialog.FALSE_TRUE);
+		registerSlavePreference(convertFunctionalInterfaces, new RadioPreference[] { useLambdaPref, useAnonymousPref });
+
+		CheckboxPreference join= createCheckboxPref(java1d8Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_Join, CleanUpConstants.JOIN, CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(join);
+
+		Group java1d7Group= createGroup(numColumns, composite, CleanUpMessages.JavaFeatureTabPage_GroupName_Java1d7);
+
+		CheckboxPreference tryWithResource= createCheckboxPref(java1d7Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_TryWithResource, CleanUpConstants.TRY_WITH_RESOURCE, CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(tryWithResource);
+
+		CheckboxPreference typeArgs= createCheckboxPref(java1d7Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_RedundantTypeArguments, CleanUpConstants.REMOVE_REDUNDANT_TYPE_ARGUMENTS, CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(typeArgs);
+
+		CheckboxPreference hash= createCheckboxPref(java1d7Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_Hash, CleanUpConstants.MODERNIZE_HASH, CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(hash);
+
+		CheckboxPreference objectsEquals= createCheckboxPref(java1d7Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_ObjectsEquals, CleanUpConstants.USE_OBJECTS_EQUALS, CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(objectsEquals);
+
+		Group java1d5Group= createGroup(numColumns, composite, CleanUpMessages.JavaFeatureTabPage_GroupName_Java1d5);
+
+		CheckboxPreference convertLoop= createCheckboxPref(java1d5Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_ConvertForLoopToEnhanced, CleanUpConstants.CONTROL_STATEMENTS_CONVERT_FOR_LOOP_TO_ENHANCED, CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(convertLoop);
+		intent(java1d5Group);
+		CheckboxPreference convertLoopOnlyIfLoopVariableUsed= createCheckboxPref(java1d5Group, 1, CleanUpMessages.JavaFeatureTabPage_CheckboxName_ConvertLoopOnlyIfLoopVarUsed, CleanUpConstants.CONTROL_STATEMENTS_CONVERT_FOR_LOOP_ONLY_IF_LOOP_VAR_USED, CleanUpModifyDialog.FALSE_TRUE);
+		registerSlavePreference(convertLoop, new CheckboxPreference[] {convertLoopOnlyIfLoopVariableUsed});
+
+		CheckboxPreference autoboxing= createCheckboxPref(java1d5Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_Autoboxing, CleanUpConstants.USE_AUTOBOXING, CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(autoboxing);
+
+		CheckboxPreference unboxing= createCheckboxPref(java1d5Group, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_Unboxing, CleanUpConstants.USE_UNBOXING, CleanUpModifyDialog.FALSE_TRUE);
+		registerPreference(unboxing);
+	}
+}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/UnnecessaryCodeTabPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/UnnecessaryCodeTabPage.java
index ee2b5fd..fa866af 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/UnnecessaryCodeTabPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/UnnecessaryCodeTabPage.java
@@ -23,27 +23,19 @@
 
 import org.eclipse.jdt.internal.ui.fix.AbstractCleanUp;
 import org.eclipse.jdt.internal.ui.fix.ArraysFillCleanUp;
-import org.eclipse.jdt.internal.ui.fix.AutoboxingCleanUp;
 import org.eclipse.jdt.internal.ui.fix.CollectionCloningCleanUp;
 import org.eclipse.jdt.internal.ui.fix.DoubleNegationCleanUp;
 import org.eclipse.jdt.internal.ui.fix.EmbeddedIfCleanUp;
 import org.eclipse.jdt.internal.ui.fix.EvaluateNullableCleanUp;
-import org.eclipse.jdt.internal.ui.fix.HashCleanUp;
-import org.eclipse.jdt.internal.ui.fix.JoinCleanUp;
 import org.eclipse.jdt.internal.ui.fix.MapCloningCleanUp;
 import org.eclipse.jdt.internal.ui.fix.MapMethodCleanUp;
-import org.eclipse.jdt.internal.ui.fix.ObjectsEqualsCleanUp;
 import org.eclipse.jdt.internal.ui.fix.OverriddenAssignmentCleanUp;
-import org.eclipse.jdt.internal.ui.fix.PatternMatchingForInstanceofCleanUp;
 import org.eclipse.jdt.internal.ui.fix.PushDownNegationCleanUp;
 import org.eclipse.jdt.internal.ui.fix.RedundantComparisonStatementCleanUp;
 import org.eclipse.jdt.internal.ui.fix.RedundantModifiersCleanUp;
 import org.eclipse.jdt.internal.ui.fix.RedundantSemicolonsCleanUp;
 import org.eclipse.jdt.internal.ui.fix.RedundantSuperCallCleanUp;
 import org.eclipse.jdt.internal.ui.fix.StringCleanUp;
-import org.eclipse.jdt.internal.ui.fix.TryWithResourceCleanUp;
-import org.eclipse.jdt.internal.ui.fix.TypeParametersCleanUp;
-import org.eclipse.jdt.internal.ui.fix.UnboxingCleanUp;
 import org.eclipse.jdt.internal.ui.fix.UnnecessaryArrayCreationCleanUp;
 import org.eclipse.jdt.internal.ui.fix.UnnecessaryCodeCleanUp;
 import org.eclipse.jdt.internal.ui.fix.UnusedCodeCleanUp;
@@ -59,13 +51,8 @@
 				new UnusedCodeCleanUp(values),
 				new UnnecessaryCodeCleanUp(values),
 				new StringCleanUp(values),
-				new TypeParametersCleanUp(values),
-				new HashCleanUp(values),
-				new JoinCleanUp(values),
 				new ArraysFillCleanUp(values),
 				new EvaluateNullableCleanUp(values),
-				new AutoboxingCleanUp(values),
-				new UnboxingCleanUp(values),
 				new PushDownNegationCleanUp(values),
 				new DoubleNegationCleanUp(values),
 				new RedundantComparisonStatementCleanUp(values),
@@ -76,13 +63,10 @@
 				new OverriddenAssignmentCleanUp(values),
 				new RedundantModifiersCleanUp(values),
 				new EmbeddedIfCleanUp(values),
-				new PatternMatchingForInstanceofCleanUp(values),
 				new RedundantSemicolonsCleanUp(values),
 				new UnnecessaryArrayCreationCleanUp(values),
 				new UselessReturnCleanUp(values),
-				new UselessContinueCleanUp(values),
-				new ObjectsEqualsCleanUp(values),
-				new TryWithResourceCleanUp(values)
+				new UselessContinueCleanUp(values)
 		};
 	}
 
@@ -112,27 +96,12 @@
     	CheckboxPreference nls= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_UnnecessaryNLSTags, CleanUpConstants.REMOVE_UNNECESSARY_NLS_TAGS, CleanUpModifyDialog.FALSE_TRUE);
     	registerPreference(nls);
 
-		CheckboxPreference typeArgs= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_RedundantTypeArguments, CleanUpConstants.REMOVE_REDUNDANT_TYPE_ARGUMENTS, CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(typeArgs);
-
-		CheckboxPreference hash= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_Hash, CleanUpConstants.MODERNIZE_HASH, CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(hash);
-
-		CheckboxPreference join= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_Join, CleanUpConstants.JOIN, CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(join);
-
 		CheckboxPreference arraysFill= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_ArraysFill, CleanUpConstants.ARRAYS_FILL, CleanUpModifyDialog.FALSE_TRUE);
 		registerPreference(arraysFill);
 
 		CheckboxPreference evaluateNullable= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_EvaluateNullable, CleanUpConstants.EVALUATE_NULLABLE, CleanUpModifyDialog.FALSE_TRUE);
 		registerPreference(evaluateNullable);
 
-		CheckboxPreference autoboxing= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_Autoboxing, CleanUpConstants.USE_AUTOBOXING, CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(autoboxing);
-
-		CheckboxPreference unboxing= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_Unboxing, CleanUpConstants.USE_UNBOXING, CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(unboxing);
-
 		CheckboxPreference pushDownNegation= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_PushDownNegation, CleanUpConstants.PUSH_DOWN_NEGATION,
 				CleanUpModifyDialog.FALSE_TRUE);
 		registerPreference(pushDownNegation);
@@ -165,10 +134,6 @@
 		CheckboxPreference embeddedIf= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_EmbeddedIf, CleanUpConstants.RAISE_EMBEDDED_IF, CleanUpModifyDialog.FALSE_TRUE);
 		registerPreference(embeddedIf);
 
-		// Disabled as long as it is buggy
-		//CheckboxPreference patternMatchingForInstanceof= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_PatternMatchingForInstanceof, CleanUpConstants.USE_PATTERN_MATCHING_FOR_INSTANCEOF, CleanUpModifyDialog.FALSE_TRUE);
-		//registerPreference(patternMatchingForInstanceof);
-
 		CheckboxPreference semicolons= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_RedundantSemicolons, CleanUpConstants.REMOVE_REDUNDANT_SEMICOLONS, CleanUpModifyDialog.FALSE_TRUE);
 		registerPreference(semicolons);
 
@@ -180,11 +145,5 @@
 
 		CheckboxPreference uselessContinue= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_UselessContinue, CleanUpConstants.REMOVE_USELESS_CONTINUE, CleanUpModifyDialog.FALSE_TRUE);
 		registerPreference(uselessContinue);
-
-		CheckboxPreference objectsEquals= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.UnnecessaryCodeTabPage_CheckboxName_ObjectsEquals, CleanUpConstants.USE_OBJECTS_EQUALS, CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(objectsEquals);
-
-		CheckboxPreference tryWithResource= createCheckboxPref(unnecessaryGroup, numColumns, CleanUpMessages.JavaFeatureTabPage_CheckboxName_TryWithResource, CleanUpConstants.TRY_WITH_RESOURCE, CleanUpModifyDialog.FALSE_TRUE);
-		registerPreference(tryWithResource);
     }
 }