Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBeat Schwarzentrub2018-05-15 20:41:44 +0000
committerBeat Schwarzentrub2018-05-15 20:41:44 +0000
commit76718ad3f6675c050e1cf7f303ddfa2f719514b9 (patch)
treed08792b984a627f8ca5f2ce777b86ce1b284e33a
parent1e8c912ff11967e228bcb1e9637d813773ae52c9 (diff)
downloadorg.eclipse.scout.rt-76718ad3f6675c050e1cf7f303ddfa2f719514b9.tar.gz
org.eclipse.scout.rt-76718ad3f6675c050e1cf7f303ddfa2f719514b9.tar.xz
org.eclipse.scout.rt-76718ad3f6675c050e1cf7f303ddfa2f719514b9.zip
REST: add Jersey client module to install Scout Job ExecutorService
To configure the ExecutorService to use for asynchronous REST calls (created via IRestClientHelper), Scout now provides the module "org.eclipse.scout.rt.rest.jersey.client" that injects the JobManager's ExecutorService into Jersey. Move Jersey dependency management (inclusion of BOM) to pom.xml of org.eclipse.scout.rt. Refactor AbstractRestClientHelper to use a single Client instance per helper (don't re-create heavy-weight objects for each request). Change-Id: Icf1049229276ed006e188e6449c75d1d8a23ebb2
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.classpath31
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.project23
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/.jsdtscope8
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/com.eclipsesource.jshint.ui.prefs3
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/de.loskutov.anyedit.AnyEditTools.prefs18
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.core.resources.prefs18
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.core.runtime.prefs2
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.core.prefs396
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.launching.prefs2
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.ui.prefs127
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.m2e.core.prefs4
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.html.core.prefs42
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.core.prefs307
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.prefs100
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.superType.container1
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.superType.name1
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.validation.prefs10
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.xml.core.prefs19
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/.settings/org.sonarlint.eclipse.core.prefs7
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/README.md12
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/pom.xml39
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/src/main/java/org/eclipse/scout/rt/rest/jersey/client/ScoutJobExecutorServiceConfigurator.java23
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/src/main/java/org/eclipse/scout/rt/rest/jersey/client/ScoutJobExecutorServiceProvider.java36
-rw-r--r--org.eclipse.scout.rt.rest.jersey.client/src/main/resources/META-INF/scout.xml15
-rw-r--r--org.eclipse.scout.rt.rest/pom.xml1
-rw-r--r--org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/AbstractRestClientHelper.java89
-rw-r--r--org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/IGlobalRestClientConfigurator.java24
-rw-r--r--org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/IRestClientHelper.java15
-rw-r--r--org.eclipse.scout.rt.team-project-set/scoutRT.psf1
-rw-r--r--org.eclipse.scout.rt/pom.xml16
30 files changed, 1336 insertions, 54 deletions
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.classpath b/org.eclipse.scout.rt.rest.jersey.client/.classpath
new file mode 100644
index 0000000000..aa91ddd2d0
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.classpath
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.project b/org.eclipse.scout.rt.rest.jersey.client/.project
new file mode 100644
index 0000000000..3b85b2bf3f
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.scout.rt.rest.jersey.client</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/.jsdtscope b/org.eclipse.scout.rt.rest.jersey.client/.settings/.jsdtscope
new file mode 100644
index 0000000000..555a5ca408
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/.jsdtscope
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="src/main/js" excluding="*-module.js"/>
+ <classpathentry kind="lib" path="src/main/resources/WebContent/res" excluding="*-macro.js"/>
+ <classpathentry exported="true" kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
+ <classpathentry kind="output" path=""/>
+</classpath>
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/com.eclipsesource.jshint.ui.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/com.eclipsesource.jshint.ui.prefs
new file mode 100644
index 0000000000..00492d9645
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/com.eclipsesource.jshint.ui.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+included=src/main/js//*.js\:src/test/js//*.js
+projectSpecificOptions=true
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/de.loskutov.anyedit.AnyEditTools.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/de.loskutov.anyedit.AnyEditTools.prefs
new file mode 100644
index 0000000000..9e00de0d04
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/de.loskutov.anyedit.AnyEditTools.prefs
@@ -0,0 +1,18 @@
+activeContentFilterList=*.makefile,makefile,*.Makefile,Makefile,Makefile.*,*.mk,MANIFEST.MF,.project,*.target
+addNewLine=true
+convertActionOnSaave=AnyEdit.CnvrtTabToSpaces
+eclipse.preferences.version=1
+fixLineDelimiters=true
+ignoreBlankLinesWhenTrimming=false
+inActiveContentFilterList=
+javaTabWidthForJava=true
+org.eclipse.jdt.ui.editor.tab.width=2
+projectPropsEnabled=true
+removeTrailingSpaces=true
+replaceAllSpaces=false
+replaceAllTabs=true
+saveAndAddLine=true
+saveAndConvert=true
+saveAndFixLineDelimiters=true
+saveAndTrim=true
+useModulo4Tabs=true
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.core.resources.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..13d34f372b
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,18 @@
+eclipse.preferences.version=1
+encoding//src/main/client=UTF-8
+encoding//src/main/fixture=UTF-8
+encoding//src/main/java=UTF-8
+encoding//src/main/java-jcl=UTF-8
+encoding//src/main/java-log4j=UTF-8
+encoding//src/main/java-original=UTF-8
+encoding//src/main/js=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/main/shared=UTF-8
+encoding//src/main/webapp=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/js=UTF-8
+encoding//src/test/resources=UTF-8
+encoding//target/generated-sources/annotations=UTF-8
+encoding//target/generated-sources/wsimport=UTF-8
+encoding/<project>=UTF-8
+encoding/files=UTF-8
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000000..5a0ad22d2a
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..7602d1cf28
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,396 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=m_
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.processAnnotations=disabled
+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=16
+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=16
+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=16
+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=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+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=false
+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=120
+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=true
+org.eclipse.jdt.core.formatter.indentation.size=2
+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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=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=do not 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=do not 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=do not 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=do not 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=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=true
+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=true
+org.eclipse.jdt.core.formatter.lineSplit=240
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
+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=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
+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/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.launching.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000000..d211d32633
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..ee7e612009
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,127 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=false
+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=true
+cleanup.format_source_code=true
+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=true
+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=false
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+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=false
+cleanup.remove_unnecessary_nls_tags=false
+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=false
+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=_Eclipse Scout
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Eclipse Scout
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><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"/><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">/*******************************************************************************&\#13;\r\n * Copyright (c) ${year} BSI Business Systems Integration AG.&\#13;\r\n * All rights reserved. This program and the accompanying materials&\#13;\r\n * are made available under the terms of the Eclipse Public License v1.0&\#13;\r\n * which accompanies this distribution, and is available at&\#13;\r\n * http\://www.eclipse.org/legal/epl-v10.html&\#13;\r\n *&\#13;\r\n * Contributors\:&\#13;\r\n * BSI Business Systems Integration AG - initial API and implementation&\#13;\r\n ******************************************************************************/</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment"/><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><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"/><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"/><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}\r\n${package_declaration}\r\n\r\n${typecomment}\r\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">\r\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">\r\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">\r\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">\r\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\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" 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}</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><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment"/><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment"/><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.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.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=false
+sp_cleanup.add_missing_deprecated_annotations=false
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=false
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000000..f897a7f1cb
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.html.core.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.html.core.prefs
new file mode 100644
index 0000000000..559b1191a8
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.html.core.prefs
@@ -0,0 +1,42 @@
+attrDuplicate=2
+attrInvalidName=2
+attrInvalidValue=2
+attrNameMismatch=2
+attrNamesToIgnore=
+attrUndefName=2
+attrUndefValue=2
+attrValueEqualsMissing=2
+attrValueMismatch=1
+attrValueUnclosed=2
+cdataInvalidContent=2
+cdataUnclosed=1
+commentInvalidContent=2
+commentUnclosed=1
+docDoctypeUnclosed=1
+docDuplicateTag=1
+docInvalidChar=2
+docInvalidContent=2
+eclipse.preferences.version=1
+elemCoexistence=2
+elemDuplicate=2
+elemEndInvalidCase=1
+elemInvalidContent=2
+elemInvalidDirective=1
+elemInvalidEmptyTag=2
+elemInvalidName=1
+elemInvalidText=2
+elemMissingEnd=2
+elemMissingStart=2
+elemStartInvalidCase=2
+elemUnclosedEndTag=1
+elemUnclosedStartTag=1
+elemUnknownName=-1
+elemUnnecessaryEnd=2
+ignoreAttrNames=false
+ignoreElementNames=false
+piInvalidContent=2
+piUnclosed=1
+piUndefined=2
+refInvalidContent=2
+resourceNotFound=2
+use-project-settings=true
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.core.prefs
new file mode 100644
index 0000000000..1b2735d2df
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -0,0 +1,307 @@
+eclipse.preferences.version=1
+org.eclipse.wst.jsdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.wst.jsdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.wst.jsdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.wst.jsdt.core.compiler.compliance=1.4
+org.eclipse.wst.jsdt.core.compiler.debug.lineNumber=generate
+org.eclipse.wst.jsdt.core.compiler.debug.localVariable=generate
+org.eclipse.wst.jsdt.core.compiler.debug.sourceFile=generate
+org.eclipse.wst.jsdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.wst.jsdt.core.compiler.problem.deprecation=warning
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.wst.jsdt.core.compiler.problem.duplicateLocalVariables=warning
+org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.wst.jsdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.looseVarDecleration=warning
+org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.nullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.optionalSemicolon=warning
+org.eclipse.wst.jsdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.undefinedField=warning
+org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedGlobalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedLocalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedFieldReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedMethodReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedTypeReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.wst.jsdt.core.compiler.source=1.3
+org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_assignment=0
+org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.wst.jsdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package=1
+org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field=0
+org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method=1
+org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package=0
+org.eclipse.wst.jsdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations=0
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_objlit_initializer=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.wst.jsdt.core.formatter.comment.format_block_comments=true
+org.eclipse.wst.jsdt.core.formatter.comment.format_header=false
+org.eclipse.wst.jsdt.core.formatter.comment.format_html=true
+org.eclipse.wst.jsdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.wst.jsdt.core.formatter.comment.format_line_comments=true
+org.eclipse.wst.jsdt.core.formatter.comment.format_source_code=true
+org.eclipse.wst.jsdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.wst.jsdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.wst.jsdt.core.formatter.comment.line_length=80
+org.eclipse.wst.jsdt.core.formatter.compact_else_if=true
+org.eclipse.wst.jsdt.core.formatter.continuation_indentation=2
+org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_objlit_initializer=1
+org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.wst.jsdt.core.formatter.indent_empty_lines=false
+org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.wst.jsdt.core.formatter.indentation.size=2
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_annotation=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_comma_in_objlit_initializer=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_objlit_initializer=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_objlit_initializer=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_object_initializer=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_function_keyword=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_object_initializer=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line=true
+org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.wst.jsdt.core.formatter.keep_empty_objlit_initializer_on_one_line=false
+org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line=true
+org.eclipse.wst.jsdt.core.formatter.lineSplit=9999
+org.eclipse.wst.jsdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.wst.jsdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.wst.jsdt.core.formatter.tabulation.char=space
+org.eclipse.wst.jsdt.core.formatter.tabulation.size=2
+org.eclipse.wst.jsdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.wst.jsdt.core.formatter.wrap_before_binary_operator=true
+semanticValidation=disabled
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.prefs
new file mode 100644
index 0000000000..c256e89009
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.prefs
@@ -0,0 +1,100 @@
+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_nls_tags=false
+cleanup.add_missing_override_annotations=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_to_enhanced_for_loop=false
+cleanup.format_source_code=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+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_trailing_whitespaces=false
+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_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+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_profile=_Eclipse Scout
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.wst.jsdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Eclipse Scout
+formatter_settings_version=11
+org.eclipse.wst.jsdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="org.eclipse.jsdt.gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="org.eclipse.jsdt.settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="org.eclipse.jsdt.constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" context\="org.eclipse.jsdt.filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} BSI Business Systems Integration AG.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * BSI Business Systems Integration AG - initial API and implementation\r\n ******************************************************************************/</template><template autoinsert\="false" context\="org.eclipse.jsdt.typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment"/><template autoinsert\="false" context\="org.eclipse.jsdt.fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="org.eclipse.jsdt.methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="org.eclipse.jsdt.overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="org.eclipse.jsdt.delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="org.eclipse.jsdt.newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="org.eclipse.jsdt.catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block</template><template autoinsert\="true" context\="org.eclipse.jsdt.methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="org.eclipse.jsdt.constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="org.eclipse.jsdt.getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="org.eclipse.jsdt.setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.format_source_code=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.superType.container b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.superType.container
new file mode 100644
index 0000000000..49c8cd4f14
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.superType.container
@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.JRE_CONTAINER \ No newline at end of file
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.superType.name b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.superType.name
new file mode 100644
index 0000000000..11006e2a54
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.jsdt.ui.superType.name
@@ -0,0 +1 @@
+Global \ No newline at end of file
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.validation.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000000..4364f03ff8
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,10 @@
+DELEGATES_PREFERENCE=delegateValidatorList
+USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
+USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
+USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.700.v201508251749
+eclipse.preferences.version=1
+override=true
+suspend=false
+vals/org.eclipse.wst.html.core.HTMLValidator/global=FF01
+vals/org.eclipse.wst.json.core.json/global=FF03
+vf.version=3
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.xml.core.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.xml.core.prefs
new file mode 100644
index 0000000000..583de8125d
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.eclipse.wst.xml.core.prefs
@@ -0,0 +1,19 @@
+attributeHasNoValue=2
+eclipse.preferences.version=1
+endTagWithAttributes=2
+honourAllSchemaLocations=true
+indicateNoGrammar=-1
+indicateReferencedFileContainsErrors=2
+indiciateNoDocumentElement=-1
+markupValidation=false
+missingClosingBracket=2
+missingClosingQuote=2
+missingEndTag=2
+missingQuotes=2
+missingStartTag=2
+missingTagName=2
+namespaceInPITarget=2
+use-project-settings=true
+whitespaceAtStart=2
+whitespaceBeforeTagName=2
+xinclude=false
diff --git a/org.eclipse.scout.rt.rest.jersey.client/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.sonarlint.eclipse.core.prefs
new file mode 100644
index 0000000000..4735ed54ae
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/.settings/org.sonarlint.eclipse.core.prefs
@@ -0,0 +1,7 @@
+autoEnabled=true
+eclipse.preferences.version=1
+extraProperties=
+fileExclusions=
+moduleKey=org.eclipse.scout.rt\:org.eclipse.scout.rt\:releases_8.0.x
+projectKey=org.eclipse.scout.rt\:org.eclipse.scout.rt\:releases_8.0.x
+serverId=Scout
diff --git a/org.eclipse.scout.rt.rest.jersey.client/README.md b/org.eclipse.scout.rt.rest.jersey.client/README.md
new file mode 100644
index 0000000000..e1b6a159dd
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/README.md
@@ -0,0 +1,12 @@
+# org.eclipse.scout.rt.rest.jersey.client
+
+This is a [Jersey](www.eclipse.org/ee4j/jersey) specific extension to *org.eclipse.scout.rt.rest*
+that provides an `IGlobalRestClientConfigurator` which registers a custom `ExecutorServiceProvider`
+for a Jersey REST `Client`.
+
+By default, Jersey creates a new unbounded `java.util.concurrent.ExecutorService` to submit tasks
+for asynchronous REST calls (see [DefaultClientAsyncExecutorProvider](https://github.com/eclipse-ee4j/jersey/blob/master/core-client/src/main/java/org/glassfish/jersey/client/DefaultClientAsyncExecutorProvider.java)).
+When running jobs in a Scout platform, the [JobManager](http://eclipsescout.github.io/8.0/technical-guide.html#jobmanager)
+uses a single `ExecutorService` instance that can be easily configured using system properties. By
+including this module in the dependencies of your project, all asynchronous REST calls made via an
+`IRestClientHelper` bean will be submitted to the same executor service.
diff --git a/org.eclipse.scout.rt.rest.jersey.client/pom.xml b/org.eclipse.scout.rt.rest.jersey.client/pom.xml
new file mode 100644
index 0000000000..93b5ad122e
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (c) 2010-2017 BSI Business Systems Integration AG.
+ 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:
+ BSI Business Systems Integration AG - initial API and implementation
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt</artifactId>
+ <version>8.0.0-SNAPSHOT</version>
+ <relativePath>../org.eclipse.scout.rt/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>org.eclipse.scout.rt.rest.jersey.client</artifactId>
+ <packaging>jar</packaging>
+ <name>${project.groupId}:${project.artifactId}</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.rest</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.glassfish.jersey.core</groupId>
+ <artifactId>jersey-client</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/org.eclipse.scout.rt.rest.jersey.client/src/main/java/org/eclipse/scout/rt/rest/jersey/client/ScoutJobExecutorServiceConfigurator.java b/org.eclipse.scout.rt.rest.jersey.client/src/main/java/org/eclipse/scout/rt/rest/jersey/client/ScoutJobExecutorServiceConfigurator.java
new file mode 100644
index 0000000000..ff332df551
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/src/main/java/org/eclipse/scout/rt/rest/jersey/client/ScoutJobExecutorServiceConfigurator.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2018 BSI Business Systems Integration AG.
+ * 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:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.rest.jersey.client;
+
+import javax.ws.rs.client.ClientBuilder;
+
+import org.eclipse.scout.rt.rest.client.IGlobalRestClientConfigurator;
+
+public class ScoutJobExecutorServiceConfigurator implements IGlobalRestClientConfigurator {
+
+ @Override
+ public void configure(ClientBuilder clientBuilder) {
+ clientBuilder.register(ScoutJobExecutorServiceProvider.class);
+ }
+}
diff --git a/org.eclipse.scout.rt.rest.jersey.client/src/main/java/org/eclipse/scout/rt/rest/jersey/client/ScoutJobExecutorServiceProvider.java b/org.eclipse.scout.rt.rest.jersey.client/src/main/java/org/eclipse/scout/rt/rest/jersey/client/ScoutJobExecutorServiceProvider.java
new file mode 100644
index 0000000000..7cfc68f9ae
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/src/main/java/org/eclipse/scout/rt/rest/jersey/client/ScoutJobExecutorServiceProvider.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2018 BSI Business Systems Integration AG.
+ * 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:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.rest.jersey.client;
+
+import java.util.concurrent.ExecutorService;
+
+import org.eclipse.scout.rt.platform.BEANS;
+import org.eclipse.scout.rt.platform.job.internal.JobManager;
+import org.glassfish.jersey.client.ClientAsyncExecutor;
+import org.glassfish.jersey.spi.ExecutorServiceProvider;
+
+/**
+ * Provides the common Scout {@link JobManager} {@link ExecutorService} to be used by Jersey clients for asynchronous
+ * REST calls.
+ */
+@ClientAsyncExecutor
+public class ScoutJobExecutorServiceProvider implements ExecutorServiceProvider {
+
+ @Override
+ public ExecutorService getExecutorService() {
+ return BEANS.get(JobManager.class).getExecutor();
+ }
+
+ @Override
+ public void dispose(ExecutorService executorService) {
+ // NOP
+ }
+}
diff --git a/org.eclipse.scout.rt.rest.jersey.client/src/main/resources/META-INF/scout.xml b/org.eclipse.scout.rt.rest.jersey.client/src/main/resources/META-INF/scout.xml
new file mode 100644
index 0000000000..aa18a0ad92
--- /dev/null
+++ b/org.eclipse.scout.rt.rest.jersey.client/src/main/resources/META-INF/scout.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (c) 2010-2017 BSI Business Systems Integration AG.
+ 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:
+ BSI Business Systems Integration AG - initial API and implementation
+
+-->
+<scout>
+</scout>
diff --git a/org.eclipse.scout.rt.rest/pom.xml b/org.eclipse.scout.rt.rest/pom.xml
index e2edded944..78a615a943 100644
--- a/org.eclipse.scout.rt.rest/pom.xml
+++ b/org.eclipse.scout.rt.rest/pom.xml
@@ -41,7 +41,6 @@
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-apache-connector</artifactId>
- <version>2.25.1</version>
<optional>true</optional>
<exclusions>
<exclusion>
diff --git a/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/AbstractRestClientHelper.java b/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/AbstractRestClientHelper.java
index 87620e83e8..2e82c0a679 100644
--- a/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/AbstractRestClientHelper.java
+++ b/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/AbstractRestClientHelper.java
@@ -3,6 +3,7 @@ package org.eclipse.scout.rt.rest.client;
import java.net.URI;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.function.Supplier;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
@@ -24,35 +25,70 @@ import org.glassfish.jersey.client.ClientConfig;
/**
* Abstract implementation of a REST client helper dealing with REST requests to a API server.
* <p>
- * This class is stateless and may be reused for subsequent REST requests to the same API server.
+ * This class may be reused for subsequent REST requests to the same API server.
* <p>
* Subclasses may bind this generic REST client helper to a concrete REST endpoint by implementing the
* {@link #getBaseUri()} method.
*/
public abstract class AbstractRestClientHelper implements IRestClientHelper {
- @Override
- public Client client() {
- ClientBuilder clientBuilder = ClientBuilder.newBuilder();
- initClientBuilder(clientBuilder);
+ private final Supplier<Client> m_clientSupplier = createClientSupplier();
- installContextResolver(clientBuilder);
- installRequestFilters(clientBuilder);
- installFeatures(clientBuilder);
-
- Client client = clientBuilder.build();
- return client;
+ /**
+ * @return a supplier of {@link Client} instances used for {@link #target(String)}. The default implementation returns
+ * a supplier that always provides the same {@link Client} instance.
+ */
+ protected Supplier<Client> createClientSupplier() {
+ Client client = createClient();
+ return () -> client;
}
- protected void initClientBuilder(ClientBuilder clientBuilder) {
+ protected Client createClient() {
+ // Prepare client config
+ // IMPORTANT: This must happen _before_ calling initClientBuilder() because "withConfig()" replaces the entire configuration!
ClientConfig clientConfig = new ClientConfig();
-
// TODO 8.0 pbz: Temporary workaround, this code line and the direct dependency to the Apache connector will be removed as soon as the jersey issue is resolved.
// See Jersey Issue 3771: https://github.com/jersey/jersey/pull/3771 (see also TO DO in pom.xml)
clientConfig.connectorProvider(new ApacheConnectorProvider());
-
initClientConfig(clientConfig);
- clientBuilder.withConfig(clientConfig);
+
+ ClientBuilder clientBuilder = ClientBuilder.newBuilder()
+ .withConfig(clientConfig);
+ initClientBuilder(clientBuilder);
+ return clientBuilder.build();
+ }
+
+ /**
+ * @return the {@link Client} used by {@link #target(String)}
+ */
+ protected Client client() {
+ return m_clientSupplier.get();
+ }
+
+ protected void initClientBuilder(ClientBuilder clientBuilder) {
+ registerContextResolvers(clientBuilder);
+ registerRequestFilters(clientBuilder);
+
+ configureClientBuilder(clientBuilder);
+ }
+
+ protected void registerContextResolvers(ClientBuilder clientBuilder) {
+ // Context resolver, e.g. resolver for ObjectMapper
+ for (IBean<ContextResolver> bean : BEANS.getBeanManager().getBeans(ContextResolver.class)) {
+ clientBuilder.register(bean.getBeanClazz());
+ }
+ }
+
+ protected void registerRequestFilters(ClientBuilder clientBuilder) {
+ for (IGlobalRestRequestFilter filter : BEANS.all(IGlobalRestRequestFilter.class)) {
+ clientBuilder.register(filter);
+ }
+ }
+
+ protected void configureClientBuilder(ClientBuilder clientBuilder) {
+ for (IGlobalRestClientConfigurator configurator : BEANS.all(IGlobalRestClientConfigurator.class)) {
+ configurator.configure(clientBuilder);
+ }
}
/**
@@ -69,12 +105,6 @@ public abstract class AbstractRestClientHelper implements IRestClientHelper {
}
@Override
- public WebTarget target(String formatString, String... args) {
- String resourcePath = String.format(formatString, (Object[]) args);
- return target(resourcePath);
- }
-
- @Override
public WebTarget applyQueryParams(WebTarget target, Map<String, Object> queryParams) {
for (Entry<String, Object> param : queryParams.entrySet()) {
target = target.queryParam(param.getKey(), param.getValue());
@@ -93,23 +123,6 @@ public abstract class AbstractRestClientHelper implements IRestClientHelper {
*/
protected abstract String getBaseUri();
- protected void installContextResolver(ClientBuilder clientBuilder) {
- // Context resolver, e.g. resolver for ObjectMapper
- for (IBean<ContextResolver> bean : BEANS.getBeanManager().getBeans(ContextResolver.class)) {
- clientBuilder.register(bean.getBeanClazz());
- }
- }
-
- protected void installRequestFilters(ClientBuilder clientBuilder) {
- for (IGlobalRestRequestFilter filter : BEANS.all(IGlobalRestRequestFilter.class)) {
- clientBuilder.register(filter);
- }
- }
-
- protected void installFeatures(ClientBuilder clientBuilder) {
- // NOP
- }
-
@Override
public void throwOnResponseError(WebTarget target, Response response) {
if (response.getStatus() == Response.Status.FORBIDDEN.getStatusCode()) {
diff --git a/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/IGlobalRestClientConfigurator.java b/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/IGlobalRestClientConfigurator.java
new file mode 100644
index 0000000000..45523fbcbb
--- /dev/null
+++ b/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/IGlobalRestClientConfigurator.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2018 BSI Business Systems Integration AG.
+ * 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:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.rest.client;
+
+import javax.ws.rs.client.ClientBuilder;
+
+import org.eclipse.scout.rt.platform.ApplicationScoped;
+
+/**
+ * Global configurator for {@link ClientBuilder}s used by {@link AbstractRestClientHelper}.
+ */
+@ApplicationScoped
+public interface IGlobalRestClientConfigurator {
+
+ void configure(ClientBuilder clientBuilder);
+}
diff --git a/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/IRestClientHelper.java b/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/IRestClientHelper.java
index 4674231a9d..fcc43c9482 100644
--- a/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/IRestClientHelper.java
+++ b/org.eclipse.scout.rt.rest/src/main/java/org/eclipse/scout/rt/rest/client/IRestClientHelper.java
@@ -6,7 +6,6 @@ package org.eclipse.scout.rt.rest.client;
import java.util.Map;
-import javax.ws.rs.client.Client;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
@@ -17,11 +16,6 @@ import javax.ws.rs.core.Response;
public interface IRestClientHelper {
/**
- * @return new {@link Client} used for REST requests.
- */
- Client client();
-
- /**
* @param resourcePath
* Path to the resource, relative to the Studio API root. This path must <i>not</i> contain template strings
* (they would be encoded).
@@ -29,15 +23,6 @@ public interface IRestClientHelper {
WebTarget target(String resourcePath);
/**
- * Same as {@link #target(String)}, but formats the resource path using {@link String#format(String, Object...)}. This
- * allows the caller to use template strings.
- * <p>
- * For example:<blockquote><code>.target("books/%s%pages/%s", "harry-potter", "246")</code></blockquote> is equivalent
- * to <blockquote><code>.target("books/harry-potter/pages/246")</code></blockquote>
- */
- WebTarget target(String formatString, String... args);
-
- /**
* Applies all specified query parameters to the specified {@code target}
*/
WebTarget applyQueryParams(WebTarget target, Map<String, Object> queryParams);
diff --git a/org.eclipse.scout.rt.team-project-set/scoutRT.psf b/org.eclipse.scout.rt.team-project-set/scoutRT.psf
index 0396e32d53..cdbc7264e9 100644
--- a/org.eclipse.scout.rt.team-project-set/scoutRT.psf
+++ b/org.eclipse.scout.rt.team-project-set/scoutRT.psf
@@ -25,6 +25,7 @@
<item elementID="=org.eclipse.scout.jaxws.apt" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
<item elementID="=org.eclipse.scout.rt.server" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
<item elementID="=org.eclipse.scout.rt.rest.jackson" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
+ <item elementID="=org.eclipse.scout.rt.rest.jersey.client" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
</workingSets>
<workingSets editPageId="org.eclipse.jdt.ui.JavaWorkingSetPage" id="1375704042674_2" label="scout.rt.client" name="scout.rt.client">
<item elementID="=org.eclipse.scout.rt.svg.ui.html" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
diff --git a/org.eclipse.scout.rt/pom.xml b/org.eclipse.scout.rt/pom.xml
index 28c2f3f74a..e2e4437cd0 100644
--- a/org.eclipse.scout.rt/pom.xml
+++ b/org.eclipse.scout.rt/pom.xml
@@ -58,6 +58,7 @@
<module>../org.eclipse.scout.rt.jackson</module>
<module>../org.eclipse.scout.rt.jackson.test</module>
<module>../org.eclipse.scout.rt.rest.jackson</module>
+ <module>../org.eclipse.scout.rt.rest.jersey.client</module>
<module>../org.eclipse.scout.jaxws.apt</module>
@@ -287,6 +288,12 @@
<dependency>
<groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.rest.jersey.client</artifactId>
+ <version>8.0.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
<artifactId>org.eclipse.scout.rt.shared</artifactId>
<version>8.0.0-SNAPSHOT</version>
</dependency>
@@ -452,6 +459,15 @@
<version>${master_dependency_jaxws_version}</version>
</dependency>
+ <!-- Jersey (REST) -->
+ <dependency>
+ <groupId>org.glassfish.jersey</groupId>
+ <artifactId>jersey-bom</artifactId>
+ <version>2.25.1</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+
<!-- JAX-WS with METRO (not bundled with JRE) -->
<dependency>
<groupId>com.sun.xml.ws</groupId>

Back to the top