Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.classpath7
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.project28
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.pde.api.tools.prefs98
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/META-INF/MANIFEST.MF20
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/about.html28
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/build.properties8
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/plugin.properties10
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/plugin.xml12
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/pom.xml14
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/Activator.java66
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/PapyrusDiagramLayoutConnector.java50
-rw-r--r--extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/PapyrusLayoutSetup.java105
-rw-r--r--features/papyrus-extra-features/org.eclipse.papyrus.extra.feature/feature.xml4
-rw-r--r--features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/.project17
-rw-r--r--features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/build.properties4
-rw-r--r--features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/epl-v10.html304
-rw-r--r--features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/feature.properties138
-rw-r--r--features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/feature.xml32
-rw-r--r--features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/license.html107
-rw-r--r--features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/pom.xml14
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/META-INF/MANIFEST.MF8
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/actions/ExportAllDiagramsParameter.java19
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/engine/ExportAllDiagramsEngine.java2
-rwxr-xr-xreleng/extra-tests/pom.xml1
-rw-r--r--releng/extra-tests/targetPlatform/eclipse/org.eclipse.papyrus.extra.tests.eclipse.target.target8
-rw-r--r--releng/extra-tests/targetPlatform/portable/org.eclipse.papyrus.extra.tests.portable.target.target8
-rw-r--r--releng/extra/pom.xml4
-rw-r--r--releng/extra/targetPlatform/eclipse/org.eclipse.papyrus.extra.eclipse.target.target8
-rw-r--r--releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.target8
-rw-r--r--releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.tpd9
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.classpath7
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.project28
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.pde.api.tools.prefs98
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/META-INF/MANIFEST.MF46
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/about.html28
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/build.properties8
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/org.eclipse.papyrus.infra.gmfdiag.elk.tests.launch41
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/pom.xml15
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/expected/Advanced-expected.SVG85
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/expected/Basic-expected.SVG139
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/initial/Advanced-initial.svg85
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/initial/Basic-initial.svg139
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.di15
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.notation204
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.uml19
-rw-r--r--tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/src/org/eclipse/papyrus/infra/gmfdiag/elk/tests/classdiag/ClassDiagramLayoutTests.java183
-rw-r--r--tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/UIThread.java31
-rw-r--r--tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/UIThreadRule.java94
52 files changed, 3117 insertions, 7 deletions
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.classpath b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.classpath
new file mode 100644
index 00000000000..eca7bdba8f0
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.project b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.project
new file mode 100644
index 00000000000..f51d7adf24f
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.gmfdiag.elk</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.jdt.core.prefs b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..b3aa6d60f94
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.pde.api.tools.prefs b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 00000000000..23fb95e120f
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,98 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Ignore
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Ignore
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=Enabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Warning
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/META-INF/MANIFEST.MF b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..2861ac34bbf
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Papyrus ELK Integration
+Bundle-SymbolicName: org.eclipse.papyrus.infra.gmfdiag.elk;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.infra.gmfdiag.elk.Activator
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.8.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.common,
+ org.eclipse.papyrus.infra.ui;bundle-version="1.2.0",
+ org.eclipse.elk.graph;bundle-version="0.1.0",
+ org.eclipse.elk.core.service;bundle-version="0.1.0",
+ org.eclipse.elk.conn.gmf;bundle-version="0.1.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.infra.gmfdiag.elk
+Bundle-Description: %pluginDescription
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/about.html b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/about.html
new file mode 100644
index 00000000000..dd3c089a94c
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/build.properties b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/build.properties
new file mode 100644
index 00000000000..24c96521fc9
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ build.properties,\
+ plugin.xml
+src.includes = about.html
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/plugin.properties b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/plugin.properties
new file mode 100644
index 00000000000..b86e9a58e4a
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/plugin.properties
@@ -0,0 +1,10 @@
+#################################################################################
+# Copyright (c) 2015 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+##################################################################################)
+
+pluginDescription=This plugin provides Eclipse Layout Kernel (ELK) inside Papyrus. \ No newline at end of file
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/plugin.xml b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/plugin.xml
new file mode 100644
index 00000000000..9870c0240d0
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.elk.core.service.layoutConnectors">
+ <setup
+ class="org.eclipse.papyrus.infra.gmfdiag.elk.PapyrusLayoutSetup"
+ priority="10">
+ </setup>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/pom.xml b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/pom.xml
new file mode 100644
index 00000000000..f8e70ad99b9
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.infra.gmfdiag.elk</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>0.1.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project> \ No newline at end of file
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/Activator.java b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/Activator.java
new file mode 100644
index 00000000000..939f5a34498
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/Activator.java
@@ -0,0 +1,66 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.elk;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.gmfdiag.elk"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/PapyrusDiagramLayoutConnector.java b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/PapyrusDiagramLayoutConnector.java
new file mode 100644
index 00000000000..e807e83d9da
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/PapyrusDiagramLayoutConnector.java
@@ -0,0 +1,50 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.elk;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.elk.conn.gmf.GmfDiagramLayoutConnector;
+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor;
+import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * Override {@link GmfDiagramLayoutConnector} to access the diagram editor
+ */
+public class PapyrusDiagramLayoutConnector extends GmfDiagramLayoutConnector {
+
+ /**
+ * @see org.eclipse.elk.conn.gmf.GmfDiagramLayoutConnector#getDiagramEditor(org.eclipse.ui.IWorkbenchPart)
+ *
+ * @param workbenchPart
+ * @return
+ */
+ @Override
+ protected DiagramEditor getDiagramEditor(IWorkbenchPart workbenchPart) {
+ if (workbenchPart == null) {
+ return null;
+ }
+ IEditorPart activeEditor = Platform.getAdapterManager().getAdapter(workbenchPart, IEditorPart.class);
+ if (activeEditor instanceof IMultiDiagramEditor) {
+ activeEditor = ((IMultiDiagramEditor) activeEditor).getActiveEditor();
+ }
+
+ if (activeEditor instanceof DiagramEditor) {
+ return (DiagramEditor) activeEditor;
+ }
+
+ return null;
+ }
+}
diff --git a/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/PapyrusLayoutSetup.java b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/PapyrusLayoutSetup.java
new file mode 100644
index 00000000000..0c77b0846c4
--- /dev/null
+++ b/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk/src/org/eclipse/papyrus/infra/gmfdiag/elk/PapyrusLayoutSetup.java
@@ -0,0 +1,105 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.elk;
+
+import java.util.Collection;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.elk.conn.gmf.GmfDiagramLayoutConnector;
+import org.eclipse.elk.conn.gmf.GmfLayoutConfigurationStore;
+import org.eclipse.elk.conn.gmf.GmfLayoutSetup;
+import org.eclipse.elk.conn.gmf.GmfLayoutSetup.GmfLayoutModule;
+import org.eclipse.elk.core.service.IDiagramLayoutConnector;
+import org.eclipse.elk.core.service.ILayoutConfigurationStore;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.ServiceUtilsForEditPart;
+import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor;
+import org.eclipse.ui.IEditorPart;
+
+import com.google.inject.Binder;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import com.google.inject.util.Modules;
+
+/**
+ * Specific Papyrus implementation to override the papyryus edit part support
+ */
+public class PapyrusLayoutSetup extends GmfLayoutSetup {
+
+ @Override
+ public boolean supports(Object object) {
+ if (object instanceof Collection) {
+ Collection<?> collection = (Collection<?>) object;
+ for (Object o : collection) {
+ if (isPapyrusEditPart(o)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ return getDiagramEditor(object) != null || isPapyrusEditPart(object);
+ }
+
+ protected boolean isPapyrusEditPart(Object o) {
+ if (o instanceof IGraphicalEditPart) {
+ try {
+ return ServiceUtilsForEditPart.getInstance().getServiceRegistry((IGraphicalEditPart) o) != null;
+ } catch (ServiceException ex) {
+ return false;
+ }
+ }
+ return false;
+ }
+
+ protected DiagramEditor getDiagramEditor(Object object) {
+ if (object == null) {
+ return null;
+ }
+ IEditorPart activeEditor = Platform.getAdapterManager().getAdapter(object, IEditorPart.class);
+ if (activeEditor instanceof IMultiDiagramEditor) {
+ activeEditor = ((IMultiDiagramEditor) activeEditor).getActiveEditor();
+ }
+
+ if (activeEditor instanceof DiagramEditor) {
+ return (DiagramEditor) activeEditor;
+ }
+
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Injector createInjector(final Module defaultModule) {
+ return Guice.createInjector(Modules.override(defaultModule).with(new PapyrusLayoutModule()));
+ }
+
+ /**
+ * Guice module for the generic GMF connector.
+ */
+ public static class PapyrusLayoutModule implements Module {
+
+ @Override
+ public void configure(final Binder binder) {
+ binder.bind(IDiagramLayoutConnector.class).to(PapyrusDiagramLayoutConnector.class);
+ binder.bind(ILayoutConfigurationStore.Provider.class).to(GmfLayoutConfigurationStore.Provider.class);
+ }
+
+ }
+
+}
diff --git a/features/papyrus-extra-features/org.eclipse.papyrus.extra.feature/feature.xml b/features/papyrus-extra-features/org.eclipse.papyrus.extra.feature/feature.xml
index 39b60619cd7..866e766a3ba 100644
--- a/features/papyrus-extra-features/org.eclipse.papyrus.extra.feature/feature.xml
+++ b/features/papyrus-extra-features/org.eclipse.papyrus.extra.feature/feature.xml
@@ -116,4 +116,8 @@ http://www.eclipse.org/legal/epl-v10.html
id="org.eclipse.papyrus.metrics.feature"
version="0.0.0"/>
+ <includes
+ id="org.eclipse.papyrus.infra.gmfdiag.elk.feature"
+ version="0.0.0"/>
+
</feature>
diff --git a/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/.project b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/.project
new file mode 100644
index 00000000000..15d257b7cc6
--- /dev/null
+++ b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.gmfdiag.elk.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/build.properties b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/build.properties
new file mode 100644
index 00000000000..b74af86fe4c
--- /dev/null
+++ b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/build.properties
@@ -0,0 +1,4 @@
+bin.includes = feature.xml,\
+ feature.properties,\
+ epl-v10.html,\
+ license.html
diff --git a/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/epl-v10.html b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/epl-v10.html
new file mode 100644
index 00000000000..cb1073a4bad
--- /dev/null
+++ b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/epl-v10.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+ {
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-font-pitch:variable;
+ mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ }
+p
+ {margin-right:0in;
+ mso-margin-top-alt:auto;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ }
+p.BalloonText, li.BalloonText, div.BalloonText
+ {mso-style-name:"Balloon Text";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+
+ }
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+</head>
+
+<body lang="EN-US" style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal></p>
+
+</div>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/feature.properties b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/feature.properties
new file mode 100644
index 00000000000..c9080c928a6
--- /dev/null
+++ b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/feature.properties
@@ -0,0 +1,138 @@
+# NLS_MESSAGEFORMAT_VAR
+
+# "featureName" property - name of the feature
+featureName=ELK Integration In Papyrus Extra Feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse Modeling Project
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 9, 2014\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+\t- Content may be structured and packaged into modules to facilitate delivering,\n\
+\t extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+\t plug-in fragments ("Fragments"), and features ("Features").\n\
+\t- Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+\t in a directory named "plugins".\n\
+\t- A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+\t Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+\t Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+\t numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+\t- Features may also include other Features ("Included Features"). Within a Feature, files\n\
+\t named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+\t- The top-level (root) directory\n\
+\t- Plug-in and Fragment directories\n\
+\t- Inside Plug-ins and Fragments packaged as JARs\n\
+\t- Sub-directories of the directory named "src" of certain Plug-ins\n\
+\t- Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+\t- Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+\t- Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+\t- Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+\t- Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+\t- Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+\t1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+\t the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+\t extending or updating the functionality of an Eclipse-based product.\n\
+\t2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+\t Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+\t3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+\t govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+\t Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+\t with the Specification. Such Installable Software Agreement must inform the user of the\n\
+\t terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+\t the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+\t indication of agreement by the user, the provisioning Technology will complete installation\n\
+\t of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/feature.xml b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/feature.xml
new file mode 100644
index 00000000000..bce4d84877e
--- /dev/null
+++ b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/feature.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.papyrus.infra.gmfdiag.elk.feature"
+ label="%featureName"
+ version="0.1.0.qualifier"
+ provider-name="%providerName">
+
+ <description>
+ This feature provides the integration of the ELK project inside Papyrus
+ </description>
+
+ <copyright url="http://www.eclipse.org/legal/epl-v10.html">
+ Copyright (c) 2016 CEA LIST
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License
+v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.papyrus.infra.gmfdiag.elk"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/license.html b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/license.html
new file mode 100644
index 00000000000..c3d34c3c21e
--- /dev/null
+++ b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+ (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/pom.xml b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/pom.xml
new file mode 100644
index 00000000000..ab5369e0b98
--- /dev/null
+++ b/features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.extra.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../releng/extra</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.infra.gmfdiag.elk.feature</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>0.1.0-SNAPSHOT</version>
+ <packaging>eclipse-feature</packaging>
+</project> \ No newline at end of file
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/META-INF/MANIFEST.MF
index 73b50bdf6ab..81b81099c9a 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/META-INF/MANIFEST.MF
@@ -1,5 +1,11 @@
Manifest-Version: 1.0
-Export-Package: org.eclipse.papyrus.infra.gmfdiag.export
+Export-Package: org.eclipse.papyrus.infra.gmfdiag.export,
+ org.eclipse.papyrus.infra.gmfdiag.export.actions,
+ org.eclipse.papyrus.infra.gmfdiag.export.engine,
+ org.eclipse.papyrus.infra.gmfdiag.export.messages,
+ org.eclipse.papyrus.infra.gmfdiag.export.propertytester,
+ org.eclipse.papyrus.infra.gmfdiag.export.utils,
+ org.eclipse.papyrus.infra.gmfdiag.export.wizard
Require-Bundle: org.eclipse.gmf.runtime.diagram.ui.render;bundle-version="[1.7.0,2.0.0)",
org.eclipse.papyrus.infra.gmfdiag.css;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.infra.services.validation;bundle-version="[2.0.0,3.0.0)",
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/actions/ExportAllDiagramsParameter.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/actions/ExportAllDiagramsParameter.java
index a0afd5959a7..fde0be01716 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/actions/ExportAllDiagramsParameter.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/actions/ExportAllDiagramsParameter.java
@@ -42,6 +42,9 @@ public class ExportAllDiagramsParameter {
/** The model set. */
private ModelSet modelSet = null;
+ /** boolean to check if the result of the generation has to be displayed */
+ private boolean isDisplayStatus = true;
+
/**
* Constructor.
*
@@ -165,6 +168,20 @@ public class ExportAllDiagramsParameter {
this.modelSet = modelSet;
}
-
+ /**
+ * Returns <code>true</code> if the status has to be displayed at the end of the export.
+ * @return <code>true</code> if the status has to be displayed at the end of the export
+ */
+ public boolean isDisplayStatus() {
+ return isDisplayStatus;
+ }
+
+ /**
+ * Indicates if the status has to be displayed at the end of the export
+ * @param isDisplayStatus <code>true</code> if the status has to be displayed at the end of the export.
+ */
+ public void setDisplayStatus(boolean isDisplayStatus) {
+ this.isDisplayStatus = isDisplayStatus;
+ }
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/engine/ExportAllDiagramsEngine.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/engine/ExportAllDiagramsEngine.java
index d7022d60cd9..a2299d6fb42 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/engine/ExportAllDiagramsEngine.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.export/src/org/eclipse/papyrus/infra/gmfdiag/export/engine/ExportAllDiagramsEngine.java
@@ -459,7 +459,7 @@ public class ExportAllDiagramsEngine {
}
// Display dialog to validate export
- if (workbenchWindow != null && workbenchWindow.getShell() != null) {
+ if (workbenchWindow != null && workbenchWindow.getShell() != null && exportParameter.isDisplayStatus()) {
Display.getDefault().syncExec(new Runnable() {
@Override
diff --git a/releng/extra-tests/pom.xml b/releng/extra-tests/pom.xml
index 93f51f1780f..c5317cfe15c 100755
--- a/releng/extra-tests/pom.xml
+++ b/releng/extra-tests/pom.xml
@@ -40,6 +40,7 @@
<module>../../tests/junit/plugins/sysml/org.eclipse.papyrus.sysml.service.types.tests</module>
<module>../../tests/junit/plugins/sysml/org.eclipse.papyrus.sysml.tests</module>
+ <module>../../tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests</module>
<module>targetPlatform</module>
</modules>
diff --git a/releng/extra-tests/targetPlatform/eclipse/org.eclipse.papyrus.extra.tests.eclipse.target.target b/releng/extra-tests/targetPlatform/eclipse/org.eclipse.papyrus.extra.tests.eclipse.target.target
index bde4d0d2942..c5ba590f2a2 100644
--- a/releng/extra-tests/targetPlatform/eclipse/org.eclipse.papyrus.extra.tests.eclipse.target.target
+++ b/releng/extra-tests/targetPlatform/eclipse/org.eclipse.papyrus.extra.tests.eclipse.target.target
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="Papyrus Extra Tests" sequenceNumber="1468954016">
+<target name="Papyrus Extra Tests" sequenceNumber="1470823031">
<locations>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
<unit id="org.eclipse.b3.aggregator.editor.source.feature.feature.group" version="0.3.0.v20140928-0617"/>
@@ -177,6 +177,12 @@
<repository id="gef" location="file:/home/data/httpd/download.eclipse.org/tools/gef/updates/legacy/releases/4.0.0_gef-master_1952"/>
</location>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+ <unit id="org.eclipse.elk.feature.feature.group" version="0.1.0.201607121925"/>
+ <unit id="org.eclipse.elk.ui.feature.feature.group" version="0.1.0.201607121925"/>
+ <unit id="org.eclipse.elk.gmf.feature.feature.group" version="0.1.0.201607121925"/>
+ <repository id="elk" location="file:/home/data/httpd/download.eclipse.org/elk/updates/releases/0.1.0/"/>
+ </location>
+ <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
<repository id="graphiti" location="file:/home/data/httpd/download.eclipse.org/graphiti/updates/0.13.0/"/>
</location>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
diff --git a/releng/extra-tests/targetPlatform/portable/org.eclipse.papyrus.extra.tests.portable.target.target b/releng/extra-tests/targetPlatform/portable/org.eclipse.papyrus.extra.tests.portable.target.target
index d8d5cca10b7..9e28bb473d2 100644
--- a/releng/extra-tests/targetPlatform/portable/org.eclipse.papyrus.extra.tests.portable.target.target
+++ b/releng/extra-tests/targetPlatform/portable/org.eclipse.papyrus.extra.tests.portable.target.target
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="Papyrus Extra Tests" sequenceNumber="1468954016">
+<target name="Papyrus Extra Tests" sequenceNumber="1470823031">
<locations>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
<unit id="org.eclipse.b3.aggregator.editor.source.feature.feature.group" version="0.3.0.v20140928-0617"/>
@@ -177,6 +177,12 @@
<repository id="gef" location="http://download.eclipse.org/tools/gef/updates/legacy/releases/4.0.0_gef-master_1952"/>
</location>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+ <unit id="org.eclipse.elk.feature.feature.group" version="0.1.0.201607121925"/>
+ <unit id="org.eclipse.elk.ui.feature.feature.group" version="0.1.0.201607121925"/>
+ <unit id="org.eclipse.elk.gmf.feature.feature.group" version="0.1.0.201607121925"/>
+ <repository id="elk" location="http://download.eclipse.org/elk/updates/releases/0.1.0/"/>
+ </location>
+ <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
<repository id="graphiti" location="http://download.eclipse.org/graphiti/updates/0.13.0/"/>
</location>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
diff --git a/releng/extra/pom.xml b/releng/extra/pom.xml
index 012e427212b..cd7f4cff6f9 100644
--- a/releng/extra/pom.xml
+++ b/releng/extra/pom.xml
@@ -226,6 +226,10 @@
<module>../../features/papyrus-main-features/org.eclipse.papyrus.sysml.nattable.feature</module>
<module>../../features/papyrus-main-features/org.eclipse.papyrus.sysml.properties.feature</module>
+ <!-- ELK Integration -->
+ <module>../../extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk</module>
+ <module>../../features/papyrus-extra-features/org.eclipse.papyrus.infra.gmfdiag.elk.feature</module>
+
<module>site</module>
<module>targetPlatform</module>
</modules>
diff --git a/releng/extra/targetPlatform/eclipse/org.eclipse.papyrus.extra.eclipse.target.target b/releng/extra/targetPlatform/eclipse/org.eclipse.papyrus.extra.eclipse.target.target
index 2c99c6df208..dceda78d253 100644
--- a/releng/extra/targetPlatform/eclipse/org.eclipse.papyrus.extra.eclipse.target.target
+++ b/releng/extra/targetPlatform/eclipse/org.eclipse.papyrus.extra.eclipse.target.target
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="Papyrus Extra" sequenceNumber="1468954016">
+<target name="Papyrus Extra" sequenceNumber="1470822727">
<locations>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
<repository id="orbit" location="file:/home/data/httpd/download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository"/>
@@ -142,6 +142,12 @@
<repository id="gef" location="file:/home/data/httpd/download.eclipse.org/tools/gef/updates/legacy/releases/4.0.0_gef-master_1952"/>
</location>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+ <unit id="org.eclipse.elk.feature.feature.group" version="0.1.0.201607121925"/>
+ <unit id="org.eclipse.elk.ui.feature.feature.group" version="0.1.0.201607121925"/>
+ <unit id="org.eclipse.elk.gmf.feature.feature.group" version="0.1.0.201607121925"/>
+ <repository id="elk" location="file:/home/data/httpd/download.eclipse.org/elk/updates/releases/0.1.0/"/>
+ </location>
+ <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
<repository id="graphiti" location="file:/home/data/httpd/download.eclipse.org/graphiti/updates/0.13.0/"/>
</location>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
diff --git a/releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.target b/releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.target
index 9bf8994ddef..610d46254ec 100644
--- a/releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.target
+++ b/releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.target
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="Papyrus Extra" sequenceNumber="1468954016">
+<target name="Papyrus Extra" sequenceNumber="1470822727">
<locations>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
<repository id="orbit" location="http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository"/>
@@ -142,6 +142,12 @@
<repository id="gef" location="http://download.eclipse.org/tools/gef/updates/legacy/releases/4.0.0_gef-master_1952"/>
</location>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+ <unit id="org.eclipse.elk.feature.feature.group" version="0.1.0.201607121925"/>
+ <unit id="org.eclipse.elk.ui.feature.feature.group" version="0.1.0.201607121925"/>
+ <unit id="org.eclipse.elk.gmf.feature.feature.group" version="0.1.0.201607121925"/>
+ <repository id="elk" location="http://download.eclipse.org/elk/updates/releases/0.1.0/"/>
+ </location>
+ <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
<repository id="graphiti" location="http://download.eclipse.org/graphiti/updates/0.13.0/"/>
</location>
<location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
diff --git a/releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.tpd b/releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.tpd
index afe17d3cbdb..c9fc32e2ec4 100644
--- a/releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.tpd
+++ b/releng/extra/targetPlatform/portable/org.eclipse.papyrus.extra.portable.target.tpd
@@ -60,6 +60,15 @@ location gef "http://download.eclipse.org/tools/gef/updates/legacy/releases/4.0.
org.eclipse.zest.layouts
}
+//manualUpdate
+
+location elk "http://download.eclipse.org/elk/updates/releases/0.1.0/" {
+ org.eclipse.elk.feature.feature.group
+ org.eclipse.elk.ui.feature.feature.group
+ org.eclipse.elk.gmf.feature.feature.group
+}
+
+
//Transitive dependencies
//updateFrom("Graphiti",0)
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.classpath b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.classpath
new file mode 100644
index 00000000000..eca7bdba8f0
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.project b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.project
new file mode 100644
index 00000000000..e45d5f6f3d8
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.gmfdiag.elk.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.jdt.core.prefs b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..b3aa6d60f94
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 00000000000..23fb95e120f
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,98 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Ignore
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Ignore
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=Enabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Warning
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/META-INF/MANIFEST.MF b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..1f9bb328361
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,46 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ELK Integration in Papyrus Tests (Incubation)
+Bundle-SymbolicName: org.eclipse.papyrus.infra.gmfdiag.elk.tests
+Bundle-Version: 0.1.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.editor;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.clazz;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.5.0",
+ org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0",
+ org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.2.0",
+ org.junit;bundle-version="4.10.0",
+ org.eclipse.papyrus.junit.framework;bundle-version="1.2.0",
+ org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="3.10.0",
+ org.eclipse.emf.common.ui;bundle-version="2.9.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.papyrus.junit.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.openelement;bundle-version="1.2.0",
+ org.eclipse.core.expressions,
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.xtend.lib;bundle-version="2.8.3",
+ com.google.guava;bundle-version="11.0.0",
+ org.eclipse.xtext.xbase.lib;bundle-version="2.8.3",
+ org.eclipse.papyrus.tests.framework;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.ui;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.sashwindows.di;bundle-version="1.2.0",
+ org.eclipse.papyrus.junit.utils;bundle-version="2.0.100",
+ org.eclipse.papyrus.tests.framework;bundle-version="1.2.0",
+ org.eclipse.elk.core;bundle-version="0.1.0",
+ org.eclipse.elk.core.service;bundle-version="0.1.0",
+ org.eclipse.elk.core.ui;bundle-version="0.1.0",
+ org.eclipse.papyrus.infra.gmfdiag.export;bundle-version="1.2.0",
+ org.eclipse.compare.core;bundle-version="3.6.0",
+ org.eclipse.compare;bundle-version="3.6.0",
+ org.eclipse.elk.conn.gmf;bundle-version="0.1.0"
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/about.html b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/about.html
new file mode 100644
index 00000000000..dd3c089a94c
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/build.properties b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/build.properties
new file mode 100644
index 00000000000..8f9ff93e37b
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = .,\
+ resource/,\
+ about.html,\
+ META-INF/
+src.includes = org.eclipse.papyrus.infra.gmfdiag.elk.tests.launch,\
+ pom.xml
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/org.eclipse.papyrus.infra.gmfdiag.elk.tests.launch b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/org.eclipse.papyrus.infra.gmfdiag.elk.tests.launch
new file mode 100644
index 00000000000..b7578866831
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/org.eclipse.papyrus.infra.gmfdiag.elk.tests.launch
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.papyrus.infra.gmfdiag.elk.tests"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.papyrus.infra.gmfdiag.elk.tests"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.papyrus.infra.gmfdiag.elk.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="false"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/pom.xml b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/pom.xml
new file mode 100644
index 00000000000..794b3dc51c5
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/pom.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.eclipse.papyrus</groupId>
+ <artifactId>org.eclipse.papyrus.extra.tests.releng</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../releng/extra-tests</relativePath>
+ </parent>
+ <groupId>org.eclipse.papyrus</groupId>
+ <artifactId>org.eclipse.papyrus.infra.gmfdiag.elk.tests</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ <packaging>eclipse-test-plugin</packaging>
+</project>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/expected/Advanced-expected.SVG b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/expected/Advanced-expected.SVG
new file mode 100644
index 00000000000..7261da6f564
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/expected/Advanced-expected.SVG
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="120" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 120 240" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="240" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="10" x2="10" y1="130" gradientUnits="userSpaceOnUse" y2="230" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="10" x2="10" y1="10" gradientUnits="userSpaceOnUse" y2="110" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient2" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M10 130 L10 229 L109 229 L109 130 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M10 132 L111 132 L111 154 L10 154 L10 132 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M48 132 L92 132 L92 154 L48 154 L48 132 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M10 153 L111 153 L111 179 L10 179 L10 153 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M10 178 L111 178 L111 204 L10 204 L10 178 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M10 203 L111 203 L111 229 L10 229 L10 203 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M9 129 L111 129 L111 231 L9 231 L9 129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M10 10 L10 109 L109 109 L109 10 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M10 12 L111 12 L111 34 L10 34 L10 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M48 12 L92 12 L92 34 L48 34 L48 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M10 33 L111 33 L111 59 L10 59 L10 33 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M10 58 L111 58 L111 84 L10 84 L10 58 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M10 83 L111 83 L111 109 L10 109 L10 83 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M9 9 L111 9 L111 111 L9 111 L9 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M-1 -1 L121 -1 L121 241 L-1 241 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M51 109 L70 109 L70 122 L51 122 L51 109 Z"/>
+</clipPath>
+</defs>
+<g font-size="15" fill="url(#linearGradient1)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="url(#linearGradient1)" stroke-width="0" stroke-miterlimit="0">
+<rect x="10" y="130" clip-path="url(#clipPath1)" width="100" height="100" stroke="none"/>
+<image stroke="black" width="16" xlink:show="embed" xlink:type="simple" fill="black" clip-path="url(#clipPath2)" preserveAspectRatio="none" height="16" x="30" y="135" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="49" y="150" clip-path="url(#clipPath3)" fill="black" stroke="none" xml:space="preserve">Class1</text>
+</g>
+<g stroke-width="1.1" font-size="15" font-family="'Segoe UI'" stroke-linecap="butt">
+<line clip-path="url(#clipPath4)" fill="none" x1="10" x2="110" y1="154" y2="154"/>
+<line clip-path="url(#clipPath5)" fill="none" x1="10" x2="110" y1="179" y2="179"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="10" x2="110" y1="204" y2="204"/>
+<rect x="10" y="130" clip-path="url(#clipPath7)" fill="none" width="99" rx="0" ry="0" height="99"/>
+<rect x="10" y="10" clip-path="url(#clipPath8)" fill="url(#linearGradient2)" width="100" height="100" stroke="none"/>
+<image x="30" y="15" clip-path="url(#clipPath9)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="49" y="30" clip-path="url(#clipPath10)" stroke="none">Class2</text>
+<line clip-path="url(#clipPath11)" fill="none" x1="10" x2="110" y1="34" y2="34"/>
+<line clip-path="url(#clipPath12)" fill="none" x1="10" x2="110" y1="59" y2="59"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="10" x2="110" y1="84" y2="84"/>
+<rect x="10" y="10" clip-path="url(#clipPath14)" fill="none" width="99" rx="0" ry="0" height="99"/>
+<line clip-path="url(#clipPath15)" fill="none" text-rendering="optimizeLegibility" x1="60" x2="60" y1="130" y2="110"/>
+<polygon fill="white" text-rendering="optimizeLegibility" clip-path="url(#clipPath16)" points=" 60 110 68 120 52 120" stroke="none"/>
+<polygon text-rendering="optimizeLegibility" fill="none" clip-path="url(#clipPath16)" points=" 60 110 68 120 52 120"/>
+</g>
+</g>
+</svg>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/expected/Basic-expected.SVG b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/expected/Basic-expected.SVG
new file mode 100644
index 00000000000..036f3dacc3f
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/expected/Basic-expected.SVG
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="765" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 765 218" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="218" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="10" x2="10" y1="19" gradientUnits="userSpaceOnUse" y2="198" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="232" x2="232" y1="10" gradientUnits="userSpaceOnUse" y2="208" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient2" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="575" x2="575" y1="29" gradientUnits="userSpaceOnUse" y2="188" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient3" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M10 19 L10 197 L211 197 L211 19 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M10 21 L213 21 L213 43 L10 43 L10 21 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M99 21 L143 21 L143 43 L99 43 L99 21 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M10 42 L213 42 L213 95 L10 95 L10 42 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M10 94 L213 94 L213 147 L10 147 L10 94 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M10 146 L213 146 L213 199 L10 199 L10 146 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M9 18 L213 18 L213 199 L9 199 L9 18 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M232 10 L232 207 L438 207 L438 10 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M232 12 L440 12 L440 34 L232 34 L232 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M324 12 L368 12 L368 34 L324 34 L324 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M232 33 L440 33 L440 92 L232 92 L232 33 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M232 91 L440 91 L440 150 L232 150 L232 91 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M232 149 L440 149 L440 208 L232 208 L232 149 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M231 9 L440 9 L440 209 L231 209 L231 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M575 29 L575 187 L754 187 L754 29 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M575 31 L756 31 L756 53 L575 53 L575 31 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M653 31 L697 31 L697 53 L653 53 L653 31 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M575 52 L756 52 L756 98 L575 98 L575 52 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M575 97 L756 97 L756 143 L575 143 L575 97 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M575 142 L756 142 L756 188 L575 188 L575 142 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M574 28 L756 28 L756 189 L574 189 L574 28 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M-1 -1 L766 -1 L766 219 L-1 219 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M221 100 L234 100 L234 118 L221 118 L221 100 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M467 107 L527 107 L527 129 L467 129 L467 107 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M546 107 L606 107 L606 129 L546 129 L546 107 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M445 108 L460 108 L460 130 L445 130 L445 108 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M567 106 L582 106 L582 128 L567 128 L567 106 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
+<path d="M556 101 L577 101 L577 116 L556 116 L556 101 Z"/>
+</clipPath>
+</defs>
+<g font-size="15" fill="url(#linearGradient1)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="url(#linearGradient1)" stroke-width="0" stroke-miterlimit="0">
+<rect x="10" y="19" clip-path="url(#clipPath1)" width="202" height="179" stroke="none"/>
+<image stroke="black" width="16" xlink:show="embed" xlink:type="simple" fill="black" clip-path="url(#clipPath2)" preserveAspectRatio="none" height="16" x="81" y="24" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="100" y="39" clip-path="url(#clipPath3)" fill="black" stroke="none" xml:space="preserve">Class1</text>
+</g>
+<g stroke-width="1.1" font-size="15" font-family="'Segoe UI'" stroke-linecap="butt">
+<line clip-path="url(#clipPath4)" fill="none" x1="10" x2="212" y1="43" y2="43"/>
+<line clip-path="url(#clipPath5)" fill="none" x1="10" x2="212" y1="95" y2="95"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="10" x2="212" y1="147" y2="147"/>
+<rect x="10" y="19" clip-path="url(#clipPath7)" fill="none" width="201" rx="0" ry="0" height="178"/>
+<rect x="232" y="10" clip-path="url(#clipPath8)" fill="url(#linearGradient2)" width="207" height="198" stroke="none"/>
+<image x="306" y="15" clip-path="url(#clipPath9)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="325" y="30" clip-path="url(#clipPath10)" stroke="none">Class2</text>
+<line clip-path="url(#clipPath11)" fill="none" x1="232" x2="439" y1="34" y2="34"/>
+<line clip-path="url(#clipPath12)" fill="none" x1="232" x2="439" y1="92" y2="92"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="232" x2="439" y1="150" y2="150"/>
+<rect x="232" y="10" clip-path="url(#clipPath14)" fill="none" width="206" rx="0" ry="0" height="197"/>
+<rect x="575" y="29" clip-path="url(#clipPath15)" fill="url(#linearGradient3)" width="180" height="159" stroke="none"/>
+<image x="635" y="34" clip-path="url(#clipPath16)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="654" y="49" clip-path="url(#clipPath17)" stroke="none">Class3</text>
+<line clip-path="url(#clipPath18)" fill="none" x1="575" x2="755" y1="53" y2="53"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="575" x2="755" y1="98" y2="98"/>
+<line clip-path="url(#clipPath20)" fill="none" x1="575" x2="755" y1="143" y2="143"/>
+<rect x="575" y="29" clip-path="url(#clipPath21)" fill="none" width="179" rx="0" ry="0" height="158"/>
+<line clip-path="url(#clipPath22)" fill="none" text-rendering="optimizeLegibility" x1="212" x2="232" y1="108" y2="109"/>
+<polygon fill="white" text-rendering="optimizeLegibility" clip-path="url(#clipPath23)" points=" 232 109 222 116 222 101" stroke="none"/>
+<polygon text-rendering="optimizeLegibility" fill="none" clip-path="url(#clipPath23)" points=" 232 109 222 116 222 101"/>
+<line clip-path="url(#clipPath22)" fill="none" text-rendering="optimizeLegibility" x1="439" x2="575" y1="109" y2="108"/>
+<text x="468" y="125" clip-path="url(#clipPath24)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve"> + class2</text>
+<text x="547" y="125" clip-path="url(#clipPath25)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve"> + class3</text>
+<text x="446" y="126" clip-path="url(#clipPath26)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve"> 1</text>
+<text x="568" y="124" clip-path="url(#clipPath27)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve"> 1</text>
+<polygon text-rendering="optimizeLegibility" clip-path="url(#clipPath28)" points=" 575 109 573 111 571 111 569 109 569 108 557 114 569 108 557 102 569 108 569 107 571 105 573 105 575 107" stroke="none"/>
+<polygon text-rendering="optimizeLegibility" fill="none" clip-path="url(#clipPath28)" points=" 575 109 573 111 571 111 569 109 569 108 557 114 569 108 557 102 569 108 569 107 571 105 573 105 575 107"/>
+</g>
+</g>
+</svg>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/initial/Advanced-initial.svg b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/initial/Advanced-initial.svg
new file mode 100644
index 00000000000..1bddb71c31a
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/initial/Advanced-initial.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="308" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 308 249" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="249" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="198" x2="198" y1="10" gradientUnits="userSpaceOnUse" y2="110" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="10" x2="10" y1="139" gradientUnits="userSpaceOnUse" y2="239" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient2" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M198 10 L198 109 L297 109 L297 10 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M198 12 L299 12 L299 34 L198 34 L198 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M236 12 L280 12 L280 34 L236 34 L236 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M198 33 L299 33 L299 59 L198 59 L198 33 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M198 58 L299 58 L299 84 L198 84 L198 58 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M198 83 L299 83 L299 109 L198 109 L198 83 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M197 9 L299 9 L299 111 L197 111 L197 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M10 139 L10 238 L109 238 L109 139 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M10 141 L111 141 L111 163 L10 163 L10 141 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M48 141 L92 141 L92 163 L48 163 L48 141 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M10 162 L111 162 L111 188 L10 188 L10 162 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M10 187 L111 187 L111 213 L10 213 L10 187 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M10 212 L111 212 L111 238 L10 238 L10 212 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M9 138 L111 138 L111 240 L9 240 L9 138 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M-1 -1 L309 -1 L309 250 L-1 250 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M109 163 L125 163 L125 179 L109 179 L109 163 Z"/>
+</clipPath>
+</defs>
+<g font-size="15" fill="url(#linearGradient1)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="url(#linearGradient1)" stroke-width="0" stroke-miterlimit="0">
+<rect x="198" y="10" clip-path="url(#clipPath1)" width="100" height="100" stroke="none"/>
+<image stroke="black" width="16" xlink:show="embed" xlink:type="simple" fill="black" clip-path="url(#clipPath2)" preserveAspectRatio="none" height="16" x="218" y="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="237" y="30" clip-path="url(#clipPath3)" fill="black" stroke="none" xml:space="preserve">Class1</text>
+</g>
+<g stroke-width="1.1" font-size="15" font-family="'Segoe UI'" stroke-linecap="butt">
+<line clip-path="url(#clipPath4)" fill="none" x1="198" x2="298" y1="34" y2="34"/>
+<line clip-path="url(#clipPath5)" fill="none" x1="198" x2="298" y1="59" y2="59"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="198" x2="298" y1="84" y2="84"/>
+<rect x="198" y="10" clip-path="url(#clipPath7)" fill="none" width="99" rx="0" ry="0" height="99"/>
+<rect x="10" y="139" clip-path="url(#clipPath8)" fill="url(#linearGradient2)" width="100" height="100" stroke="none"/>
+<image x="30" y="144" clip-path="url(#clipPath9)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="49" y="159" clip-path="url(#clipPath10)" stroke="none">Class2</text>
+<line clip-path="url(#clipPath11)" fill="none" x1="10" x2="110" y1="163" y2="163"/>
+<line clip-path="url(#clipPath12)" fill="none" x1="10" x2="110" y1="188" y2="188"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="10" x2="110" y1="213" y2="213"/>
+<rect x="10" y="139" clip-path="url(#clipPath14)" fill="none" width="99" rx="0" ry="0" height="99"/>
+<line clip-path="url(#clipPath15)" fill="none" text-rendering="optimizeLegibility" x1="198" x2="110" y1="70" y2="177"/>
+<polygon fill="white" text-rendering="optimizeLegibility" clip-path="url(#clipPath16)" points=" 110 177 110 164 123 174" stroke="none"/>
+<polygon text-rendering="optimizeLegibility" fill="none" clip-path="url(#clipPath16)" points=" 110 177 110 164 123 174"/>
+</g>
+</g>
+</svg>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/initial/Basic-initial.svg b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/initial/Basic-initial.svg
new file mode 100644
index 00000000000..8e145bd9f71
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/initial/Basic-initial.svg
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="1004" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 1004 346" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="346" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<linearGradient x1="10" x2="10" y1="157" gradientUnits="userSpaceOnUse" y2="336" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient1" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="451" x2="451" y1="10" gradientUnits="userSpaceOnUse" y2="208" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient2" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<linearGradient x1="814" x2="814" y1="148" gradientUnits="userSpaceOnUse" y2="307" xlink:type="simple" xlink:actuate="onLoad" id="linearGradient3" xlink:show="other" spreadMethod="pad">
+<stop stop-opacity="1" stop-color="white" offset="0%"/>
+<stop stop-opacity="1" stop-color="rgb(195,215,221)" offset="100%"/>
+</linearGradient>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M10 157 L10 335 L211 335 L211 157 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M10 159 L213 159 L213 181 L10 181 L10 159 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M99 159 L143 159 L143 181 L99 181 L99 159 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M10 180 L213 180 L213 233 L10 233 L10 180 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M10 232 L213 232 L213 285 L10 285 L10 232 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M10 284 L213 284 L213 337 L10 337 L10 284 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M9 156 L213 156 L213 337 L9 337 L9 156 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M451 10 L451 207 L657 207 L657 10 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M451 12 L659 12 L659 34 L451 34 L451 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M543 12 L587 12 L587 34 L543 34 L543 12 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M451 33 L659 33 L659 92 L451 92 L451 33 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M451 91 L659 91 L659 150 L451 150 L451 91 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M451 149 L659 149 L659 208 L451 208 L451 149 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M450 9 L659 9 L659 209 L450 209 L450 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M814 148 L814 306 L993 306 L993 148 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M814 150 L995 150 L995 172 L814 172 L814 150 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M892 150 L936 150 L936 172 L892 172 L892 150 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M814 171 L995 171 L995 217 L814 217 L814 171 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M814 216 L995 216 L995 262 L814 262 L814 216 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M814 261 L995 261 L995 307 L814 307 L814 261 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M813 147 L995 147 L995 308 L813 308 L813 147 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M-1 -1 L1005 -1 L1005 347 L-1 347 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M438 110 L453 110 L453 127 L438 127 L438 110 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M666 132 L726 132 L726 154 L666 154 L666 132 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M783 212 L843 212 L843 234 L783 234 L783 212 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M673 166 L688 166 L688 188 L673 188 L673 166 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M797 176 L812 176 L812 198 L797 198 L797 176 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
+<path d="M794 201 L816 201 L816 219 L794 219 L794 201 Z"/>
+</clipPath>
+</defs>
+<g font-size="15" fill="url(#linearGradient1)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="url(#linearGradient1)" stroke-width="0" stroke-miterlimit="0">
+<rect x="10" y="157" clip-path="url(#clipPath1)" width="202" height="179" stroke="none"/>
+<image stroke="black" width="16" xlink:show="embed" xlink:type="simple" fill="black" clip-path="url(#clipPath2)" preserveAspectRatio="none" height="16" x="81" y="162" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="100" y="177" clip-path="url(#clipPath3)" fill="black" stroke="none" xml:space="preserve">Class1</text>
+</g>
+<g stroke-width="1.1" font-size="15" font-family="'Segoe UI'" stroke-linecap="butt">
+<line clip-path="url(#clipPath4)" fill="none" x1="10" x2="212" y1="181" y2="181"/>
+<line clip-path="url(#clipPath5)" fill="none" x1="10" x2="212" y1="233" y2="233"/>
+<line clip-path="url(#clipPath6)" fill="none" x1="10" x2="212" y1="285" y2="285"/>
+<rect x="10" y="157" clip-path="url(#clipPath7)" fill="none" width="201" rx="0" ry="0" height="178"/>
+<rect x="451" y="10" clip-path="url(#clipPath8)" fill="url(#linearGradient2)" width="207" height="198" stroke="none"/>
+<image x="525" y="15" clip-path="url(#clipPath9)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="544" y="30" clip-path="url(#clipPath10)" stroke="none">Class2</text>
+<line clip-path="url(#clipPath11)" fill="none" x1="451" x2="658" y1="34" y2="34"/>
+<line clip-path="url(#clipPath12)" fill="none" x1="451" x2="658" y1="92" y2="92"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="451" x2="658" y1="150" y2="150"/>
+<rect x="451" y="10" clip-path="url(#clipPath14)" fill="none" width="206" rx="0" ry="0" height="197"/>
+<rect x="814" y="148" clip-path="url(#clipPath15)" fill="url(#linearGradient3)" width="180" height="159" stroke="none"/>
+<image x="874" y="153" clip-path="url(#clipPath16)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="893" y="168" clip-path="url(#clipPath17)" stroke="none">Class3</text>
+<line clip-path="url(#clipPath18)" fill="none" x1="814" x2="994" y1="172" y2="172"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="814" x2="994" y1="217" y2="217"/>
+<line clip-path="url(#clipPath20)" fill="none" x1="814" x2="994" y1="262" y2="262"/>
+<rect x="814" y="148" clip-path="url(#clipPath21)" fill="none" width="179" rx="0" ry="0" height="158"/>
+<line clip-path="url(#clipPath22)" fill="none" text-rendering="optimizeLegibility" x1="212" x2="451" y1="217" y2="114"/>
+<polygon fill="white" text-rendering="optimizeLegibility" clip-path="url(#clipPath23)" points=" 451 114 445 125 439 111" stroke="none"/>
+<polygon text-rendering="optimizeLegibility" fill="none" clip-path="url(#clipPath23)" points=" 451 114 445 125 439 111"/>
+<line clip-path="url(#clipPath22)" fill="none" text-rendering="optimizeLegibility" x1="658" x2="814" y1="149" y2="215"/>
+<text x="667" y="150" clip-path="url(#clipPath24)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve"> + class2</text>
+<text x="784" y="230" clip-path="url(#clipPath25)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve"> + class3</text>
+<text x="674" y="184" clip-path="url(#clipPath26)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve"> 1</text>
+<text x="798" y="194" clip-path="url(#clipPath27)" text-rendering="optimizeLegibility" stroke="none" xml:space="preserve"> 1</text>
+<polygon text-rendering="optimizeLegibility" clip-path="url(#clipPath28)" points=" 814 216 811 217 809 216 808 214 808 213 795 214 808 213 800 202 808 213 809 212 811 211 813 211 814 214" stroke="none"/>
+<polygon text-rendering="optimizeLegibility" fill="none" clip-path="url(#clipPath28)" points=" 814 216 811 217 809 216 808 214 808 213 795 214 808 213 800 202 808 213 809 212 811 211 813 211 814 214"/>
+</g>
+</g>
+</svg>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.di b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.di
new file mode 100644
index 00000000000..2ca86ace07f
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.di
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="model.notation#_xEXsQFonEea4wdu_aWZnHA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="model.notation#_Cr8DMFsVEea4wdu_aWZnHA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.notation b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.notation
new file mode 100644
index 00000000000..c12d4ef3481
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.notation
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_xEXsQFonEea4wdu_aWZnHA" type="PapyrusUMLClassDiagram" name="Basic" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jAvkAFooEea4wdu_aWZnHA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jBDtEFooEea4wdu_aWZnHA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jBDtEVooEea4wdu_aWZnHA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jBDtElooEea4wdu_aWZnHA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jBJzsFooEea4wdu_aWZnHA" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jBKawFooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jBKawVooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jBKawlooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBKaw1ooEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jBLB0FooEea4wdu_aWZnHA" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jBLB0VooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jBLB0looEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jBLB01ooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBLB1FooEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jBLB1VooEea4wdu_aWZnHA" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jBLB1looEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jBLB11ooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jBLB2FooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBLB2VooEea4wdu_aWZnHA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_jAY-sFooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jAvkAVooEea4wdu_aWZnHA" x="104" y="307" width="202" height="179"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jYumMFooEea4wdu_aWZnHA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jYv0UFooEea4wdu_aWZnHA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jYv0UVooEea4wdu_aWZnHA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jYv0UlooEea4wdu_aWZnHA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jYv0U1ooEea4wdu_aWZnHA" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jYv0VFooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jYv0VVooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jYv0VlooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jYv0V1ooEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jYv0WFooEea4wdu_aWZnHA" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jYv0WVooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jYv0WlooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jYv0W1ooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jYv0XFooEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jYv0XVooEea4wdu_aWZnHA" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jYv0XlooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jYv0X1ooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jYv0YFooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jYv0YVooEea4wdu_aWZnHA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_jYsJ8FooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jYumMVooEea4wdu_aWZnHA" x="545" y="160" width="207" height="198"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k7VBYFooEea4wdu_aWZnHA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_k7VBYlooEea4wdu_aWZnHA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k7VocFooEea4wdu_aWZnHA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k7VocVooEea4wdu_aWZnHA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k7VoclooEea4wdu_aWZnHA" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k7Voc1ooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k7VodFooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k7VodVooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k7VodlooEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k7Vod1ooEea4wdu_aWZnHA" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k7VoeFooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k7VoeVooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k7VoelooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k7Voe1ooEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k7WPgFooEea4wdu_aWZnHA" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k7WPgVooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k7WPglooEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k7WPg1ooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k7WPhFooEea4wdu_aWZnHA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_k7TMMFooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k7VBYVooEea4wdu_aWZnHA" x="908" y="298" width="180" height="159"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_xEYTUFonEea4wdu_aWZnHA" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_xEYTUVonEea4wdu_aWZnHA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_xEYTUlonEea4wdu_aWZnHA">
+ <owner xmi:type="uml:Model" href="model.uml#_xBILAFonEea4wdu_aWZnHA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_xBILAFonEea4wdu_aWZnHA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_kXD2sFooEea4wdu_aWZnHA" type="Generalization_Edge" source="_jAvkAFooEea4wdu_aWZnHA" target="_jYumMFooEea4wdu_aWZnHA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kXEdwFooEea4wdu_aWZnHA" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kXEdwVooEea4wdu_aWZnHA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kXD2sVooEea4wdu_aWZnHA"/>
+ <element xmi:type="uml:Generalization" href="model.uml#_kWhEIFooEea4wdu_aWZnHA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kXD2slooEea4wdu_aWZnHA" points="[306, 367, -643984, -643984]$[545, 264, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kYahkFooEea4wdu_aWZnHA" id="(1.0,0.33519553072625696)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kYahkVooEea4wdu_aWZnHA" id="(0.0,0.5252525252525253)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_lMdNoFooEea4wdu_aWZnHA" type="Association_Edge" source="_jYumMFooEea4wdu_aWZnHA" target="_k7VBYFooEea4wdu_aWZnHA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lMd0sFooEea4wdu_aWZnHA" type="Association_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lMd0sVooEea4wdu_aWZnHA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lMd0slooEea4wdu_aWZnHA" type="Association_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lMd0s1ooEea4wdu_aWZnHA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lMd0tFooEea4wdu_aWZnHA" type="Association_TargetRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lMd0tVooEea4wdu_aWZnHA" x="-20" y="-9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lMd0tlooEea4wdu_aWZnHA" type="Association_SourceRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lMd0t1ooEea4wdu_aWZnHA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lMebwFooEea4wdu_aWZnHA" type="Association_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lMebwVooEea4wdu_aWZnHA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lMebwlooEea4wdu_aWZnHA" type="Association_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lMebw1ooEea4wdu_aWZnHA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lMdNoVooEea4wdu_aWZnHA"/>
+ <element xmi:type="uml:Association" href="model.uml#_lMFaMFooEea4wdu_aWZnHA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lMdNolooEea4wdu_aWZnHA" points="[752, 299, -643984, -643984]$[908, 365, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lN4xAFooEea4wdu_aWZnHA" id="(1.0,0.702020202020202)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lN4xAVooEea4wdu_aWZnHA" id="(0.0,0.42138364779874216)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Cr8DMFsVEea4wdu_aWZnHA" type="PapyrusUMLClassDiagram" name="Advanced" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_EflLEFsVEea4wdu_aWZnHA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EfnnUFsVEea4wdu_aWZnHA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EfnnUVsVEea4wdu_aWZnHA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EfnnUlsVEea4wdu_aWZnHA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EfnnU1sVEea4wdu_aWZnHA" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EfoOYFsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EfoOYVsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EfoOYlsVEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EfoOY1sVEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EfoOZFsVEea4wdu_aWZnHA" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EfoOZVsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EfoOZlsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EfoOZ1sVEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EfoOaFsVEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EfoOaVsVEea4wdu_aWZnHA" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EfoOalsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EfoOa1sVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EfoObFsVEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EfoObVsVEea4wdu_aWZnHA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_jAY-sFooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EflLEVsVEea4wdu_aWZnHA" x="280" y="153" width="100" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ef6iQFsVEea4wdu_aWZnHA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ef6iQlsVEea4wdu_aWZnHA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ef6iQ1sVEea4wdu_aWZnHA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ef6iRFsVEea4wdu_aWZnHA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ef7JUFsVEea4wdu_aWZnHA" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ef7JUVsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ef7JUlsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ef7JU1sVEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ef7JVFsVEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ef7JVVsVEea4wdu_aWZnHA" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ef7JVlsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ef7JV1sVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ef7JWFsVEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ef7JWVsVEea4wdu_aWZnHA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ef7JWlsVEea4wdu_aWZnHA" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ef7JW1sVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ef7JXFsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ef7JXVsVEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ef7JXlsVEea4wdu_aWZnHA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_jYsJ8FooEea4wdu_aWZnHA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ef6iQVsVEea4wdu_aWZnHA" x="92" y="282" width="100" height="100"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Cr8DMVsVEea4wdu_aWZnHA" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Cr8DMlsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Cr8DM1sVEea4wdu_aWZnHA">
+ <owner xmi:type="uml:Model" href="model.uml#_xBILAFonEea4wdu_aWZnHA"/>
+ </styles>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_GmPqsFsXEea57_bwVzzcjA" name="layout:org.eclipse.elk.borderSpacing" stringValue="5.0"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_HfMr8FsXEea57_bwVzzcjA" name="layout:org.eclipse.elk.direction" stringValue="UP"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_IQpXAFsXEea57_bwVzzcjA" name="layout:org.eclipse.elk.spacing" stringValue="40.0"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_W2dJ0FsXEea57_bwVzzcjA" name="layout:org.eclipse.elk.algorithm" stringValue="org.eclipse.elk.layered"/>
+ <element xmi:type="uml:Model" href="model.uml#_xBILAFonEea4wdu_aWZnHA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_FVbN8FsVEea4wdu_aWZnHA" type="Generalization_Edge" source="_EflLEFsVEea4wdu_aWZnHA" target="_Ef6iQFsVEea4wdu_aWZnHA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XIO2UFsXEea57_bwVzzcjA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XIO2UVsXEea57_bwVzzcjA" key="routing" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XIO2UlsXEea57_bwVzzcjA" key="smoothness" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FVb1AFsVEea4wdu_aWZnHA" visible="false" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GHmRwFsVEea4wdu_aWZnHA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FVb1AVsVEea4wdu_aWZnHA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FVbN8VsVEea4wdu_aWZnHA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XIOPRFsXEea57_bwVzzcjA" name="junctionPoints" stringValue="()"/>
+ <element xmi:type="uml:Generalization" href="model.uml#_kWhEIFooEea4wdu_aWZnHA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FVbN8lsVEea4wdu_aWZnHA" points="[0, 0, 0, 40]$[0, -40, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GH2wcVsVEea4wdu_aWZnHA" id="(0.0,0.6)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GH2wclsVEea4wdu_aWZnHA" id="(1.0,0.38)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.uml b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.uml
new file mode 100644
index 00000000000..8fc1afdd8e6
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/resource/simple-classdiag/model.uml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_xBILAFonEea4wdu_aWZnHA" name="simple-classdiag">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_xI_tkFonEea4wdu_aWZnHA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jAY-sFooEea4wdu_aWZnHA" name="Class1">
+ <generalization xmi:type="uml:Generalization" xmi:id="_kWhEIFooEea4wdu_aWZnHA" general="_jYsJ8FooEea4wdu_aWZnHA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jYsJ8FooEea4wdu_aWZnHA" name="Class2">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lMLg0FooEea4wdu_aWZnHA" name="class3" type="_k7TMMFooEea4wdu_aWZnHA" association="_lMFaMFooEea4wdu_aWZnHA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_k7TMMFooEea4wdu_aWZnHA" name="Class3"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_lMFaMFooEea4wdu_aWZnHA" memberEnd="_lMLg0FooEea4wdu_aWZnHA _lMLg0VooEea4wdu_aWZnHA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lMJroFooEea4wdu_aWZnHA" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lMKSsFooEea4wdu_aWZnHA" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_lMLg0VooEea4wdu_aWZnHA" name="class2" type="_jYsJ8FooEea4wdu_aWZnHA" association="_lMFaMFooEea4wdu_aWZnHA"/>
+ </packagedElement>
+</uml:Model>
diff --git a/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/src/org/eclipse/papyrus/infra/gmfdiag/elk/tests/classdiag/ClassDiagramLayoutTests.java b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/src/org/eclipse/papyrus/infra/gmfdiag/elk/tests/classdiag/ClassDiagramLayoutTests.java
new file mode 100644
index 00000000000..be2a4a5c01e
--- /dev/null
+++ b/tests/junit/extraplugins/elk/org.eclipse.papyrus.infra.gmfdiag.elk.tests/src/org/eclipse/papyrus/infra/gmfdiag/elk/tests/classdiag/ClassDiagramLayoutTests.java
@@ -0,0 +1,183 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.elk.tests.classdiag;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.stream.Collectors;
+
+import org.eclipse.compare.contentmergeviewer.TokenComparator;
+import org.eclipse.compare.rangedifferencer.IRangeComparator;
+import org.eclipse.compare.rangedifferencer.RangeDifference;
+import org.eclipse.compare.rangedifferencer.RangeDifferencer;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.elk.core.service.DiagramLayoutEngine;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.papyrus.infra.gmfdiag.export.actions.ExportAllDiagramsParameter;
+import org.eclipse.papyrus.infra.gmfdiag.export.engine.ExportAllDiagramsEngine;
+import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PapyrusEditorFixture;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.junit.utils.rules.UIThreadRule;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommandService;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
+
+/**
+ * Basic tests for Class diagram layout by ELK
+ */
+@PluginResource(ClassDiagramLayoutTests.SOURCE_FOLDER+"model.di")
+public class ClassDiagramLayoutTests extends AbstractPapyrusTest {
+
+ static final String SOURCE_FOLDER = "/resource/simple-classdiag/";
+
+ public static final String BASIC_DIAGRAM_NAME = "Basic";
+ public static final String ADVANCED_DIAGRAM_NAME = "Advanced";
+
+ @ClassRule
+ public static final TestRule uiThread = new UIThreadRule();
+
+ @ClassRule
+ public static final PapyrusEditorFixture editor = new PapyrusEditorFixture();
+
+ private static final int TOLERANCE = 1;
+
+ private final Rectangle class1Bounds = new Rectangle(104, 307, 202, 179);
+
+ private final Rectangle class1BoundsAfterLayout = new Rectangle(12, 21, 202, 179);
+
+ /**
+ * Creates a new {@link ClassDiagramLayoutTests}
+ */
+ public ClassDiagramLayoutTests() {
+ // Empty constructor.
+ }
+
+ @Test
+ public void testELKAdvancedLayout() {
+ editor.openDiagram(ADVANCED_DIAGRAM_NAME);
+ assertThat("Active diagram is not the one expected" , editor.getActiveDiagram().getDiagramView().getName(), equalTo(ADVANCED_DIAGRAM_NAME));
+ runLayout(editor.getEditor().getSite().getPart());
+ IFile currentFile = exportDiagramToFile();
+ IFile expectedFile = retrieveReferenceFile(editor.getActiveDiagram().getDiagramView().getName());
+ compareResult(expectedFile, currentFile);
+ editor.undo();
+ }
+
+ @Test
+ public void testELKBasicLayout() {
+ editor.openDiagram(BASIC_DIAGRAM_NAME);
+ assertThat("Active diagram is not the one expected" , editor.getActiveDiagram().getDiagramView().getName(), equalTo(BASIC_DIAGRAM_NAME));
+ runLayout(editor.getEditor().getSite().getPart());
+ EditPart class1EditPart = editor.requireEditPart(editor.getActiveDiagram().getChildBySemanticHint("Class_Shape"), editor.getModel().getPackagedElement("Class1"));
+ Rectangle class1NewBounds = ((GraphicalEditPart)class1EditPart).getFigure().getBounds();
+ assertThat("Class position after layout is not the expected one", class1NewBounds, equalTo(this.class1BoundsAfterLayout));
+ IFile currentFile = exportDiagramToFile();
+ IFile expectedFile = retrieveReferenceFile(editor.getActiveDiagram().getDiagramView().getName());
+ compareResult(expectedFile, currentFile);
+ editor.undo();
+ }
+
+ @Test
+ public void checkInitialConditions() {
+ EditPart class1EditPart = editor.requireEditPart(editor.getActiveDiagram().getChildBySemanticHint("Class_Shape"), editor.getModel().getPackagedElement("Class1"));
+ assertThat("Impossible to find Class1 edit part or is not a GraphicalEditPart", class1EditPart, instanceOf(GraphicalEditPart.class));
+ // get class1 position (no layout yet)
+ Rectangle class1Bounds = ((GraphicalEditPart)class1EditPart).getFigure().getBounds();
+ assertThat("Initial condition does not match test configuration", class1Bounds, equalTo(this.class1Bounds));
+ // check status of the ELK layout handler
+ ICommandService commandService = PlatformUI.getWorkbench().getService(ICommandService.class);
+ org.eclipse.core.commands.Command cmd = commandService.getCommand("org.eclipse.elk.core.ui.command.layout"); //$NON-NLS-1$
+ IHandler handler = cmd.getHandler();
+ ((AbstractHandler)handler).setEnabled("org.eclipse.elk.core.ui.command.layout"); //$NON-NLS-1$
+ boolean res = handler.isEnabled();
+ assertTrue("Layout must be enable", res); //$NON-NLS-1$
+ }
+
+ private IFile retrieveReferenceFile(String diagramName) {
+ Bundle bundle = FrameworkUtil.getBundle(ClassDiagramLayoutTests.class);
+ URL url = bundle.getResource(SOURCE_FOLDER+"expected/"+diagramName+"-expected.SVG");
+ try (InputStream contents = url.openStream()) {
+ IFile expectedFile = editor.getProject().getProject().getFile(URI.createURI(url.toExternalForm()).lastSegment());
+ expectedFile.create(contents, false, null);
+ } catch (Exception e) {
+ throw new WrappedException(e);
+ }
+ return editor.getProject().getProject().getFile(diagramName+"-expected.SVG"); }
+
+ private IFile exportDiagramToFile() {
+ ExportAllDiagramsEngine engine = new ExportAllDiagramsEngine();
+ ExportAllDiagramsParameter parameter = new ExportAllDiagramsParameter(editor.getModelSet());
+ parameter.setExportFormat("SVG");
+ parameter.setOutputDirectory(editor.getProject().getProject());
+ parameter.setDisplayStatus(false); // avoid popup at the end of the export
+ engine.initialise(parameter);
+ engine.export(new NullProgressMonitor(), Arrays.asList(editor.getActiveDiagram().getDiagramView()));
+ return editor.getProject().getProject().getFile(editor.getActiveDiagram().getDiagramView().getName() + "." + parameter.getExportFormat());
+ }
+
+ public void runLayout(IWorkbenchPart part) {
+ DiagramLayoutEngine.invokeLayout(part, null, false, false, false, false);
+ editor.flushDisplayEvents();
+ }
+
+ public void compareResult(IFile expected, IFile current) {
+ IRangeComparator expectedContent = new TokenComparator(readFile(expected));
+ IRangeComparator currentContent = new TokenComparator(readFile(current));
+ RangeDifference[] diffs = RangeDifferencer.findDifferences(expectedContent, currentContent);
+ for(int i = 0; i < diffs.length; i++) {
+ System.err.println(i + " -> " + diffs[i].toString());
+ }
+ assertThat("There should not be any difference, but some diffs were found.", diffs.length, equalTo(0));
+ }
+
+ private static String readFile(IFile file) {
+ try (BufferedReader buffer = new BufferedReader(new InputStreamReader(file.getContents()))) {
+ return buffer.lines().collect(Collectors.joining("\n"));
+ } catch (IOException e) {
+ fail(e.getMessage());
+ e.printStackTrace();
+ } catch (CoreException e) {
+ fail(e.getMessage());
+ e.printStackTrace();
+ }
+ return "ERROR";
+ }
+}
diff --git a/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/UIThread.java b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/UIThread.java
new file mode 100644
index 00000000000..4f7a1bd9d25
--- /dev/null
+++ b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/UIThread.java
@@ -0,0 +1,31 @@
+/*****************************************************************************
+ * Copyright (c) 2016 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.junit.utils.rules;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Used with the {@link UIThreadRule} to annotated a test that requires the UI
+ * thread, where perhaps others in the same scope do not.
+ */
+@Target({ ElementType.METHOD, ElementType.TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+public @interface UIThread {
+ // Empty annotation
+}
diff --git a/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/UIThreadRule.java b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/UIThreadRule.java
new file mode 100644
index 00000000000..a22f6652263
--- /dev/null
+++ b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/UIThreadRule.java
@@ -0,0 +1,94 @@
+/*****************************************************************************
+ * Copyright (c) 2016 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.junit.utils.rules;
+
+import org.eclipse.papyrus.junit.utils.JUnitUtils;
+import org.eclipse.swt.widgets.Display;
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+/**
+ * A JUnit rule that runs its test synchronously on the UI thread.
+ * This should be used only when the test manipulates API that
+ * require the current thread to be the UI thread.
+ */
+public class UIThreadRule implements TestRule {
+
+ private final boolean requireAnnotation;
+
+ /**
+ * Initializes me without the requirement for any annotation: all tests
+ * in my scope will run on the UI thread.
+ */
+ public UIThreadRule() {
+ this(false);
+ }
+
+ /**
+ * Initializes me with the requirement that individual tests needin the UI
+ * thread be annotated with {@link UIThread @UIThread}.
+ *
+ * @param requireAnnotation
+ */
+ public UIThreadRule(boolean requireAnnotation) {
+ super();
+
+ this.requireAnnotation = requireAnnotation;
+ }
+
+ @Override
+ public Statement apply(final Statement base, Description description) {
+ if (!requiresUIThread(description)) {
+ return base; // Nothing to do for this test
+ } else {
+ return new Statement() {
+
+ @Override
+ public void evaluate() throws Throwable {
+ final Throwable[] caught = { null };
+
+ final Runnable runTest = new Runnable() {
+
+ @Override
+ public void run() {
+ try {
+ base.evaluate();
+ } catch (Throwable t) {
+ caught[0] = t;
+ }
+ }
+ };
+
+ if (Display.getCurrent() != null) {
+ // Just run it
+ runTest.run();
+ } else {
+ // Run it on the UI thread
+ Display.getDefault().syncExec(runTest);
+ }
+
+ if (caught[0] != null) {
+ throw caught[0];
+ }
+ }
+ };
+ }
+ }
+
+ private boolean requiresUIThread(Description description) {
+ return !requireAnnotation
+ || JUnitUtils.getAnnotation(description, UIThread.class) != null;
+ }
+}

Back to the top