diff --git a/org.eclipse.jdt.ui/preview/formatter.java b/org.eclipse.jdt.ui/preview/formatter.java
index 6d460ff..f15d82e 100644
--- a/org.eclipse.jdt.ui/preview/formatter.java
+++ b/org.eclipse.jdt.ui/preview/formatter.java
@@ -838,25 +838,42 @@
 500 );}}
 //--PREVIEW--END--org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression
 
-//--PREVIEW--START--org.eclipse.jdt.core.formatter.alignment_for_binary_expression
-class Example extends AnotherClass {int foo() {  int sum= 100
- + 200
- + 300
- + 400
- + 500
- + 600
- + 700
- + 800;  int product= 1
- * 2
- * 3
- * 4
- * 5
- * 6
- * 7
- * 8
- * 9
- * 10;  boolean val= true && false && true && false && true;  return product / sum;}}
-//--PREVIEW--END--org.eclipse.jdt.core.formatter.alignment_for_binary_expression
+//--PREVIEW--START--org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator
+//--PREVIEW--START--org.eclipse.jdt.core.formatter.alignment_for_additive_operator
+//--PREVIEW--START--org.eclipse.jdt.core.formatter.alignment_for_string_concatenation
+//--PREVIEW--START--org.eclipse.jdt.core.formatter.alignment_for_shift_operator
+//--PREVIEW--START--org.eclipse.jdt.core.formatter.alignment_for_relational_operator
+//--PREVIEW--START--org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator
+//--PREVIEW--START--org.eclipse.jdt.core.formatter.alignment_for_logical_operator
+class Example {
+
+boolean firstIsGreater = 11111111 + 22222222 +
+33333333 + 44444444 +
+55555555 + 66666666
+>
+1.11111111 * 2.22222222 * 3.33333333
+* 4.44444444 * 5.55555555 * 6.66666666;
+
+String concatenatedString = "one two three four " + "five six seven eight " + "nine ten eleven twelve";
+
+int shiftedInteger = 0xCAFEFACE >>> 0x00000001
+		>>>
+		0x00000002
+		<<
+		0x00000003 >>> 0x00000004;
+
+int bitAritmetic = 0xCAFEFACE | 0x01010101 & 0x02020202 ^ 0x03030303 ^ 0x04040404 | 0x05050505;
+
+boolean multipleConditions = conditionOne && conditionTwo || conditionThree && conditionFour || conditionFive;
+
+}
+//--PREVIEW--END--org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator
+//--PREVIEW--END--org.eclipse.jdt.core.formatter.alignment_for_additive_operator
+//--PREVIEW--END--org.eclipse.jdt.core.formatter.alignment_for_string_concatenation
+//--PREVIEW--END--org.eclipse.jdt.core.formatter.alignment_for_shift_operator
+//--PREVIEW--END--org.eclipse.jdt.core.formatter.alignment_for_relational_operator
+//--PREVIEW--END--org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator
+//--PREVIEW--END--org.eclipse.jdt.core.formatter.alignment_for_logical_operator
 
 //--PREVIEW--START--org.eclipse.jdt.core.formatter.alignment_for_conditional_expression
 class Example extends AnotherClass {int foo(boolean argument) {return argument ? 100000 : 200000;}}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.java
index 2a7a199..64122cf 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.java
@@ -120,11 +120,12 @@
 	public static String FormatterModifyDialog_indentation_tree_indentation;
 	public static String FormatterModifyDialog_indentation_tree_indented_elements;
 	public static String FormatterModifyDialog_lineWrap_indentation_policy_label;
+	public static String FormatterModifyDialog_lineWrap_pref_additive_operators;
 	public static String FormatterModifyDialog_lineWrap_pref_annotations_arguments;
 	public static String FormatterModifyDialog_lineWrap_pref_arguments;
 	public static String FormatterModifyDialog_lineWrap_pref_array_init;
 	public static String FormatterModifyDialog_lineWrap_pref_assignments;
-	public static String FormatterModifyDialog_lineWrap_pref_binary_exprs;
+	public static String FormatterModifyDialog_lineWrap_pref_bitwise_operators;
 	public static String FormatterModifyDialog_lineWrap_pref_catch;
 	public static String FormatterModifyDialog_lineWrap_pref_compact_if_else;
 	public static String FormatterModifyDialog_lineWrap_pref_compact_loops;
@@ -138,8 +139,10 @@
 	public static String FormatterModifyDialog_lineWrap_pref_extends_clause;
 	public static String FormatterModifyDialog_lineWrap_pref_for;
 	public static String FormatterModifyDialog_lineWrap_pref_implements_clause;
+	public static String FormatterModifyDialog_lineWrap_pref_logical_operators;
 	public static String FormatterModifyDialog_lineWrap_pref_max_line_width;
 	public static String FormatterModifyDialog_lineWrap_pref_module_statements;
+	public static String FormatterModifyDialog_lineWrap_pref_multiplicative_operators;
 	public static String FormatterModifyDialog_lineWrap_pref_never_join_lines;
 	public static String FormatterModifyDialog_lineWrap_pref_object_allocation_arguments;
 	public static String FormatterModifyDialog_lineWrap_pref_param_type_arguments;
@@ -148,11 +151,15 @@
 	public static String FormatterModifyDialog_lineWrap_pref_parameters;
 	public static String FormatterModifyDialog_lineWrap_pref_qualified_invocations;
 	public static String FormatterModifyDialog_lineWrap_pref_qualified_object_allocation_arguments;
+	public static String FormatterModifyDialog_lineWrap_pref_relational_operators;
+	public static String FormatterModifyDialog_lineWrap_pref_shift_operators;
+	public static String FormatterModifyDialog_lineWrap_pref_string_concatenation;
 	public static String FormatterModifyDialog_lineWrap_pref_superinterfaces;
 	public static String FormatterModifyDialog_lineWrap_pref_throws_clause;
 	public static String FormatterModifyDialog_lineWrap_pref_try;
 	public static String FormatterModifyDialog_lineWrap_pref_wrap_outer_expressions_when_nested;
 	public static String FormatterModifyDialog_lineWrap_tree_annotations;
+	public static String FormatterModifyDialog_lineWrap_tree_binary_expressions;
 	public static String FormatterModifyDialog_lineWrap_tree_class_decls;
 	public static String FormatterModifyDialog_lineWrap_tree_constructor_decls;
 	public static String FormatterModifyDialog_lineWrap_tree_enum_decls;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.properties b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.properties
index 61e15b4..3b8a63b 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.properties
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.properties
@@ -189,6 +189,7 @@
 FormatterModifyDialog_lineWrap_pref_constants=Constants
 FormatterModifyDialog_lineWrap_pref_implements_clause='implements' clause
 FormatterModifyDialog_lineWrap_pref_parameters=Parameters
+FormatterModifyDialog_lineWrap_pref_additive_operators=Additive operators (+, -)
 FormatterModifyDialog_lineWrap_pref_arguments=Arguments
 FormatterModifyDialog_lineWrap_pref_qualified_invocations=Qualified invocations
 FormatterModifyDialog_lineWrap_pref_for='for'
@@ -199,7 +200,6 @@
 FormatterModifyDialog_lineWrap_pref_array_init=Array initializers
 FormatterModifyDialog_lineWrap_pref_explicit_constructor_invocations=Explicit constructor invocations
 FormatterModifyDialog_lineWrap_pref_conditionals=Conditionals
-FormatterModifyDialog_lineWrap_pref_binary_exprs=Binary expressions
 FormatterModifyDialog_lineWrap_pref_module_statements=Module statements
 FormatterModifyDialog_lineWrap_val_indentation_default=Default indentation
 FormatterModifyDialog_lineWrap_val_indentation_on_column=Indent on column
@@ -209,7 +209,7 @@
 FormatterModifyDialog_lineWrap_tree_method_decls=Method Declarations
 FormatterModifyDialog_lineWrap_tree_constructor_decls=Constructor declarations
 FormatterModifyDialog_lineWrap_tree_function_calls=Function Calls
-FormatterModifyDialog_lineWrap_tree_expressions=Expressions
+FormatterModifyDialog_lineWrap_tree_expressions=Other expressions
 FormatterModifyDialog_lineWrap_tree_statements=Statements
 FormatterModifyDialog_lineWrap_tree_parameterized_types=Parameterized types
 FormatterModifyDialog_lineWrap_tree_enum_decls='enum' declaration
@@ -226,17 +226,24 @@
 FormatterModifyDialog_lineWrap_val_wrap_after_operators=Wrap after operators
 FormatterModifyDialog_lineWrap_val_wrap_before_operators=Wrap before operators
 FormatterModifyDialog_lineWrap_pref_max_line_width=Maximum line width:
+FormatterModifyDialog_lineWrap_pref_multiplicative_operators=Multiplicative operators (*, /, %)
 FormatterModifyDialog_lineWrap_pref_default_indent_wrapped=Default indentation for wrapped lines:
 FormatterModifyDialog_lineWrap_pref_default_indent_array=Default indentation for array initializers:
 FormatterModifyDialog_lineWrap_pref_never_join_lines=Never join already wrapped lines
+FormatterModifyDialog_lineWrap_pref_shift_operators=Shift operators (<<, >>, >>>)
+FormatterModifyDialog_lineWrap_pref_string_concatenation=String concatenation
 FormatterModifyDialog_lineWrap_pref_superinterfaces='implements' clause
 FormatterModifyDialog_lineWrap_pref_assignments=Assignments
 FormatterModifyDialog_lineWrap_tree_annotations=Annotations
+FormatterModifyDialog_lineWrap_tree_binary_expressions=Binary expressions
 FormatterModifyDialog_lineWrap_pref_annotations_arguments=Element-value pairs
+FormatterModifyDialog_lineWrap_pref_bitwise_operators=Bitwise operators (&&, ^, |)
+FormatterModifyDialog_lineWrap_pref_logical_operators=Logical operators (&&&&, ||)
 FormatterModifyDialog_lineWrap_pref_wrap_outer_expressions_when_nested=Prefer wrapping outer expressions (keep nested expression on one line)
 FormatterModifyDialog_lineWrap_pref_param_type_ref=Type references
 FormatterModifyDialog_lineWrap_pref_param_type_arguments=Type arguments
 FormatterModifyDialog_lineWrap_pref_param_type_parameters=Type parameters
+FormatterModifyDialog_lineWrap_pref_relational_operators=Relational operators (<, >, <=, >=, ==, \!=)
 
 FormatterModifyDialog_blankLines_tree_compilation_unit=Blank lines in compilation unit
 FormatterModifyDialog_blankLines_pref_before_package=Before package declaration:
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterModifyDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterModifyDialog.java
index 84850eb..baf0a46 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterModifyDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterModifyDialog.java
@@ -1245,11 +1245,18 @@
 						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_explicit_constructor_invocations, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_EXPLICIT_CONSTRUCTOR_CALL)
 						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_object_allocation_arguments, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ALLOCATION_EXPRESSION)
 						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_qualified_object_allocation_arguments, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_QUALIFIED_ALLOCATION_EXPRESSION))
+				.node(fTree.builder(FormatterMessages.FormatterModifyDialog_lineWrap_tree_binary_expressions, "-binary-expressions", modAll) //$NON-NLS-1$
+						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_multiplicative_operators, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLICATIVE_OPERATOR)
+						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_additive_operators, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ADDITIVE_OPERATOR)
+						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_string_concatenation, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_STRING_CONCATENATION)
+						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_shift_operators, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SHIFT_OPERATOR)
+						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_relational_operators, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_RELATIONAL_OPERATOR)
+						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_bitwise_operators, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BITWISE_OPERATOR)
+						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_logical_operators, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_LOGICAL_OPERATOR))
 				.node(fTree.builder(FormatterMessages.FormatterModifyDialog_lineWrap_tree_expressions, null, modAll)
-						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_binary_exprs, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION)
 						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_conditionals, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION)
-						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_array_init, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER)
-						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_assignments, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ASSIGNMENT))
+						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_assignments, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ASSIGNMENT)
+						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_array_init, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER))
 				.node(fTree.builder(FormatterMessages.FormatterModifyDialog_lineWrap_tree_statements, null, modAll)
 						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_for, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_FOR_LOOP_HEADER)
 						.pref(FormatterMessages.FormatterModifyDialog_lineWrap_pref_compact_if_else, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_COMPACT_IF)
@@ -1268,8 +1275,26 @@
 						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION:
 							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_CONDITIONAL_OPERATOR;
 							break;
-						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION:
-							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BINARY_OPERATOR;
+						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLICATIVE_OPERATOR:
+							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_MULTIPLICATIVE_OPERATOR;
+							break;
+						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ADDITIVE_OPERATOR:
+							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_ADDITIVE_OPERATOR;
+							break;
+						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_STRING_CONCATENATION:
+							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_STRING_CONCATENATION;
+							break;
+						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SHIFT_OPERATOR:
+							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_SHIFT_OPERATOR;
+							break;
+						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_RELATIONAL_OPERATOR:
+							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_RELATIONAL_OPERATOR;
+							break;
+						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BITWISE_OPERATOR:
+							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BITWISE_OPERATOR;
+							break;
+						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_LOGICAL_OPERATOR:
+							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_LOGICAL_OPERATOR;
 							break;
 						case DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_UNION_TYPE_IN_MULTICATCH:
 							wrapBeforeKey= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_OR_OPERATOR_MULTICATCH;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java
index a089b1d..4c5df9b 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java
@@ -43,10 +43,10 @@
 	private static final int VERSION_12= 12; // https://bugs.eclipse.org/318010
 	private static final int VERSION_13= 13; // https://bugs.eclipse.org/514019
 	private static final int VERSION_14= 14; // https://bugs.eclipse.org/128653, https://bugs.eclipse.org/531826
-
 	private static final int VERSION_15= 15; // https://bugs.eclipse.org/205973
+	private static final int VERSION_16= 16; // https://bugs.eclipse.org/543080
 
-	private static final int CURRENT_VERSION= VERSION_15;
+	private static final int CURRENT_VERSION= VERSION_16;
 
 	@Override
 	public int getFirstVersion() {
@@ -111,9 +111,12 @@
 		case VERSION_13 :
 			version13to14(oldSettings);
 			//$FALL-THROUGH$
-			case VERSION_14:
-				version14to15(oldSettings);
-				//$FALL-THROUGH$
+		case VERSION_14:
+			version14to15(oldSettings);
+			//$FALL-THROUGH$
+		case VERSION_15:
+			version15to16(oldSettings);
+			//$FALL-THROUGH$
 		default:
 		    for (final Iterator<String> iter= oldSettings.keySet().iterator(); iter.hasNext(); ) {
 		        final String key= iter.next();
@@ -462,7 +465,7 @@
 
 		checkAndReplace(oldSettings,
 			FORMATTER_BINARY_EXPRESSION_ALIGNMENT,
-			DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION);
+			FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION);
 
 		checkAndReplace(oldSettings,
 			FORMATTER_COMPACT_IF_ALIGNMENT,
@@ -657,6 +660,23 @@
 		}
 	}
 
+	private static void version15to16(Map<String, String> oldSettings) {
+		checkAndReplace(oldSettings, FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION, new String[] {
+				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLICATIVE_OPERATOR,
+				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ADDITIVE_OPERATOR,
+				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_STRING_CONCATENATION,
+				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BITWISE_OPERATOR,
+				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_LOGICAL_OPERATOR,
+		});
+		checkAndReplace(oldSettings, FORMATTER_WRAP_BEFORE_BINARY_OPERATOR, new String[] {
+				DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_MULTIPLICATIVE_OPERATOR,
+				DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_ADDITIVE_OPERATOR,
+				DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_STRING_CONCATENATION,
+				DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BITWISE_OPERATOR,
+				DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_LOGICAL_OPERATOR,
+		});
+	}
+
 	/* old format constant values */
 
     private static final String FORMATTER_METHOD_DECLARATION_ARGUMENTS_ALIGNMENT = JavaCore.PLUGIN_ID + ".formatter.method_declaration_arguments_alignment"; //$NON-NLS-1$
@@ -848,4 +868,27 @@
 	 */
 	@Deprecated
 	private static final String FORMATTER_INSERT_NEW_LINE_IN_EMPTY_TYPE_DECLARATION= DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_TYPE_DECLARATION;
+
+	/**
+	 * @deprecated As of 3.17 replaced by
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_ALIGNMENT_FOR_MULTIPLICATIVE_OPERATOR},
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_ALIGNMENT_FOR_ADDITIVE_OPERATOR},
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_ALIGNMENT_FOR_STRING_CONCATENATION},
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_ALIGNMENT_FOR_BITWISE_OPERATOR},
+	 *             and
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_ALIGNMENT_FOR_LOGICAL_OPERATOR}
+	 */
+	@Deprecated
+	private static final String FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION= DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION;
+
+	/**
+	 * @deprecated As of 3.17 replaced by
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_WRAP_BEFORE_MULTIPLICATIVE_OPERATOR},
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_WRAP_BEFORE_ADDITIVE_OPERATOR},
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_WRAP_BEFORE_STRING_CONCATENATION},
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_WRAP_BEFORE_BITWISE_OPERATOR}, and
+	 *             {@link DefaultCodeFormatterConstants#FORMATTER_WRAP_BEFORE_LOGICAL_OPERATOR}
+	 */
+	@Deprecated
+	private static final String FORMATTER_WRAP_BEFORE_BINARY_OPERATOR= DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BINARY_OPERATOR;
  }
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaStringAutoIndentStrategy.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaStringAutoIndentStrategy.java
index 4ed166f..9753729 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaStringAutoIndentStrategy.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaStringAutoIndentStrategy.java
@@ -228,7 +228,7 @@
 
 	private boolean isWrappingBeforeBinaryOperator() {
 		return DefaultCodeFormatterConstants.TRUE.equals(getCoreFormatterOption(
-				DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BINARY_OPERATOR));
+				DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_STRING_CONCATENATION));
 	}
 
 	private int getContinuationIndentationSize() {
@@ -244,7 +244,7 @@
 	
 	private int getBinaryOperatorAlignmentStyle() {
 		String binaryAlignmentValue= getCoreFormatterOption(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION);
+				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_STRING_CONCATENATION);
 		return DefaultCodeFormatterConstants.getIndentStyle(binaryAlignmentValue);
 	}
 
