Merge remote-tracking branch 'remotes/origin/releases/7.0.x' into
releases/8.0.x
diff --git a/org.eclipse.scout.sdk-feature/.project b/org.eclipse.scout.sdk-feature/.project
index 760e72b..631b87e 100644
--- a/org.eclipse.scout.sdk-feature/.project
+++ b/org.eclipse.scout.sdk-feature/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk-feature/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk-feature/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk-feature/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk-feature/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk-feature/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk-feature/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk-feature/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk-feature/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk-feature/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk-feature/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk-feature/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk-feature/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk-feature/feature.xml b/org.eclipse.scout.sdk-feature/feature.xml
index 29d2461..7f26e2e 100644
--- a/org.eclipse.scout.sdk-feature/feature.xml
+++ b/org.eclipse.scout.sdk-feature/feature.xml
@@ -14,7 +14,7 @@
<feature
id="org.eclipse.scout.sdk-feature"
label="%featureName"
- version="7.0.300.qualifier"
+ version="8.0.0.qualifier"
provider-name="%providerName"
plugin="org.eclipse.scout.sdk.s2e"
license-feature="org.eclipse.license"
diff --git a/org.eclipse.scout.sdk-feature/pom.xml b/org.eclipse.scout.sdk-feature/pom.xml
index 107abfe..4df7480 100644
--- a/org.eclipse.scout.sdk-feature/pom.xml
+++ b/org.eclipse.scout.sdk-feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk.p2</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk.p2/pom.xml</relativePath>
</parent>
diff --git a/org.eclipse.scout.sdk-repository/.project b/org.eclipse.scout.sdk-repository/.project
index d82f3f3..a89ed56 100644
--- a/org.eclipse.scout.sdk-repository/.project
+++ b/org.eclipse.scout.sdk-repository/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk-repository/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk-repository/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk-repository/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk-repository/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk-repository/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk-repository/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk-repository/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk-repository/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk-repository/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk-repository/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk-repository/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk-repository/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk-repository/index-runtime.html b/org.eclipse.scout.sdk-repository/index-runtime.html
index e47a869..d020d6a 100644
--- a/org.eclipse.scout.sdk-repository/index-runtime.html
+++ b/org.eclipse.scout.sdk-repository/index-runtime.html
@@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Eclipse Scout SDK 7.0 Repository</title>
+ <title>Eclipse Scout SDK 8.0 Repository</title>
<style type="text/css">
<!--
* {
@@ -13,14 +13,12 @@
</style>
</head>
<body>
- <h1>Eclipse Scout SDK 7.0 Repository</h1>
+ <h1>Eclipse Scout SDK 8.0 Repository</h1>
<p>
- This is the software repository that contains the runtime for
- <a href="http://eclipse.org/scout">Eclipse Scout</a>, version 7.0.
+ This is the software repository that contains the runtime for <a href="https://www.eclipse.org/scout/">Eclipse Scout</a>, version 8.0.
</p>
<p>
- The contents are also available as downloadable zip files from our
- <a href="http://eclipse.org/scout/downloads/">download site</a>.
+ The contents are also available as downloadable zip files from our <a href="https://www.eclipse.org/scout/">download site</a>.
</p>
</body>
</html>
diff --git a/org.eclipse.scout.sdk-repository/pom.xml b/org.eclipse.scout.sdk-repository/pom.xml
index 47015a5..dd02d5d 100644
--- a/org.eclipse.scout.sdk-repository/pom.xml
+++ b/org.eclipse.scout.sdk-repository/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk.p2</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk.p2/pom.xml</relativePath>
</parent>
@@ -36,7 +36,7 @@
<properties>
<buildType>N</buildType>
- <stageTargetDir>nightly/7.0</stageTargetDir>
+ <stageTargetDir>nightly/8.0</stageTargetDir>
<buildId>${buildType}${master_build_timestamp}</buildId>
<buildsToKeep>3</buildsToKeep>
</properties>
diff --git a/org.eclipse.scout.sdk-settings/.project b/org.eclipse.scout.sdk-settings/.project
index 828acf4..dfdf2ee 100644
--- a/org.eclipse.scout.sdk-settings/.project
+++ b/org.eclipse.scout.sdk-settings/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk-settings/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk-settings/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk-settings/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk-settings/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk-settings/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk-settings/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk-settings/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk-settings/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk-settings/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk-settings/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk-settings/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk-settings/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk-settings/files/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk-settings/files/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk-settings/files/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk-settings/files/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk-settings/files/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk-settings/files/org.sonarlint.eclipse.core.prefs
index 176e21a..4368e94 100644
--- a/org.eclipse.scout.sdk-settings/files/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk-settings/files/org.sonarlint.eclipse.core.prefs
@@ -1,5 +1,5 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk-settings/pom.xml b/org.eclipse.scout.sdk-settings/pom.xml
index b2a4830..efaddaa 100644
--- a/org.eclipse.scout.sdk-settings/pom.xml
+++ b/org.eclipse.scout.sdk-settings/pom.xml
@@ -15,7 +15,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
diff --git a/org.eclipse.scout.sdk-target/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk-target/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk-target/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk-target/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk-target/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk-target/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk-target/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk-target/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk-target/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk-target/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk-target/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk-target/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk-target/pom.xml b/org.eclipse.scout.sdk-target/pom.xml
index 42ba61e..e7bc866 100644
--- a/org.eclipse.scout.sdk-target/pom.xml
+++ b/org.eclipse.scout.sdk-target/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk.p2</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk.p2/pom.xml</relativePath>
</parent>
diff --git a/org.eclipse.scout.sdk.core.s.test/.project b/org.eclipse.scout.sdk.core.s.test/.project
index 2159ada..8e71f79 100644
--- a/org.eclipse.scout.sdk.core.s.test/.project
+++ b/org.eclipse.scout.sdk.core.s.test/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.core.resources.prefs b/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.core.resources.prefs
index 2da41a5..a658c0b 100644
--- a/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.core.resources.prefs
@@ -5,6 +5,5 @@
encoding//src/main/resources=UTF-8
encoding//src/main/shared=UTF-8
encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
encoding/<project>=UTF-8
encoding/files=UTF-8
diff --git a/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.core.s.test/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.core.s.test/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.core.s.test/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.core.s.test/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.core.s.test/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.core.s.test/pom.xml b/org.eclipse.scout.sdk.core.s.test/pom.xml
index 38f2d21..3b33c68 100644
--- a/org.eclipse.scout.sdk.core.s.test/pom.xml
+++ b/org.eclipse.scout.sdk.core.s.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
@@ -58,6 +58,10 @@
<groupId>org.eclipse.scout.rt</groupId>
<artifactId>org.eclipse.scout.rt.server.jaxws</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.dataobject</artifactId>
+ </dependency>
</dependencies>
<build>
diff --git a/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/TableFieldForm.java b/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/TableFieldForm.java
index efb770e..259b4ba 100644
--- a/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/TableFieldForm.java
+++ b/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/TableFieldForm.java
@@ -25,7 +25,7 @@
import org.eclipse.scout.rt.client.ui.form.fields.tablefield.AbstractTableField;
import org.eclipse.scout.rt.platform.Order;
import org.eclipse.scout.rt.platform.exception.ProcessingException;
-import org.eclipse.scout.rt.shared.TEXTS;
+import org.eclipse.scout.rt.platform.text.TEXTS;
import formdata.client.ui.forms.TableFieldForm.MainBox.CompanyTableField;
import formdata.client.ui.forms.TableFieldForm.MainBox.PersonTableField;
diff --git a/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/formfieldmenu/FormFieldMenuTestForm.java b/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/formfieldmenu/FormFieldMenuTestForm.java
new file mode 100644
index 0000000..a8f11bc
--- /dev/null
+++ b/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/formfieldmenu/FormFieldMenuTestForm.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * 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 formdata.client.ui.forms.formfieldmenu;
+
+import org.eclipse.scout.rt.client.dto.FormData;
+import org.eclipse.scout.rt.client.ui.action.menu.form.fields.AbstractFormFieldMenu;
+import org.eclipse.scout.rt.client.ui.form.AbstractForm;
+import org.eclipse.scout.rt.client.ui.form.fields.booleanfield.AbstractBooleanField;
+import org.eclipse.scout.rt.client.ui.form.fields.groupbox.AbstractGroupBox;
+import org.eclipse.scout.rt.platform.Order;
+
+import formdata.shared.ui.forms.formfieldmenu.FormFieldMenuTestFormData;
+
+@FormData(value = FormFieldMenuTestFormData.class, sdkCommand = FormData.SdkCommand.CREATE)
+public class FormFieldMenuTestForm extends AbstractForm {
+
+ @Order(10.0)
+ public class MainBox extends AbstractGroupBox {
+
+ @Order(5)
+ public class TestFormMenu extends AbstractFormFieldMenu {
+
+ @Order(10)
+ public class TestBooleanField extends AbstractBooleanField {
+
+ }
+ }
+ }
+}
diff --git a/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/template/formfield/AbstractCompanyTableField.java b/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/template/formfield/AbstractCompanyTableField.java
index c654bc8..6de541b 100644
--- a/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/template/formfield/AbstractCompanyTableField.java
+++ b/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/template/formfield/AbstractCompanyTableField.java
@@ -16,7 +16,7 @@
import org.eclipse.scout.rt.client.ui.basic.table.columns.AbstractStringColumn;
import org.eclipse.scout.rt.client.ui.form.fields.tablefield.AbstractTableField;
import org.eclipse.scout.rt.platform.Order;
-import org.eclipse.scout.rt.shared.TEXTS;
+import org.eclipse.scout.rt.platform.text.TEXTS;
import formdata.shared.services.process.AbstractCompanyTableFieldData;
diff --git a/org.eclipse.scout.sdk.core.s.test/src/main/java/org/eclipse/scout/sdk/core/s/testing/CoreScoutTestingUtils.java b/org.eclipse.scout.sdk.core.s.test/src/main/java/org/eclipse/scout/sdk/core/s/testing/CoreScoutTestingUtils.java
index 21e7157..8985ab8 100644
--- a/org.eclipse.scout.sdk.core.s.test/src/main/java/org/eclipse/scout/sdk/core/s/testing/CoreScoutTestingUtils.java
+++ b/org.eclipse.scout.sdk.core.s.test/src/main/java/org/eclipse/scout/sdk/core/s/testing/CoreScoutTestingUtils.java
@@ -58,8 +58,7 @@
}
/**
- * @return a {@link IJavaEnvironment} for org.eclipse.*.shared tests, without the org.eclipse.scout.rt.client
- * dependency
+ * @return a {@link IJavaEnvironment} for org.eclipse.*.shared tests, without the org.eclipse.scout.rt.client dependency
*/
public static IJavaEnvironment createSharedJavaEnvironment() {
return new JavaEnvironmentBuilder()
@@ -171,19 +170,20 @@
}
/**
- * Creates a new Scout project based on the helloworld archetype using group id {@link #PROJECT_GROUP_ID} and
- * artifactId {@link #PROJECT_ARTIFACT_ID}.
+ * Creates a new Scout project based on the helloworld archetype using group id {@link #PROJECT_GROUP_ID} and artifactId
+ * {@link #PROJECT_ARTIFACT_ID}.
*
* @return The root directory that contains the created projects.
* @throws IOException
*/
public static File createTestProject() throws IOException {
File targetDirectory = Files.createTempDirectory(CoreScoutTestingUtils.class.getSimpleName() + "-projectDir").toFile();
- ScoutProjectNewHelper.createProject(targetDirectory, PROJECT_GROUP_ID, PROJECT_ARTIFACT_ID, "Display Name", SystemUtils.JAVA_SPECIFICATION_VERSION);
+ ScoutProjectNewHelper.createProject(targetDirectory, PROJECT_GROUP_ID, PROJECT_ARTIFACT_ID, "Display Name", SystemUtils.JAVA_SPECIFICATION_VERSION,
+ ScoutProjectNewHelper.SCOUT_ARCHETYPES_GROUP_ID, ScoutProjectNewHelper.SCOUT_ARCHETYPES_HELLOWORLD_ARTIFACT_ID, ScoutProjectNewHelper.SCOUT_ARCHETYPES_VERSION);
// create a config.properties in the src/test/resources of the server to use the jax-ws-ri of the JRE instead of metro which is the default.
File testConfigProperties = new File(targetDirectory, PROJECT_ARTIFACT_ID + '/' + PROJECT_ARTIFACT_ID + ".server/src/test/resources/config.properties");
- byte[] configContent = ("jaxws.implementor=" + IScoutRuntimeTypes.JaxWsRISpecifics + "\n").getBytes(StandardCharsets.UTF_8);
+ byte[] configContent = ("scout.jaxws.implementor=" + IScoutRuntimeTypes.JaxWsRISpecifics + "\n").getBytes(StandardCharsets.UTF_8);
Files.write(testConfigProperties.toPath(), configContent, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE);
return targetDirectory;
@@ -196,7 +196,7 @@
* The directory in which the maven command should be executed. Must contain a pom.xml file.
* @throws IOException
*/
- public static void runMavenCleanCompile(File pomDir) throws IOException {
+ public static void runMavenCleanCompile(File pomDir) {
MavenRunner.execute(new MavenBuild()
.withWorkingDirectory(pomDir)
.withGoal("clean")
@@ -212,7 +212,7 @@
* The directory in which the maven command should be executed. Must contain a pom.xml file.
* @throws IOException
*/
- public static void runMavenCleanTest(File pomDir) throws IOException {
+ public static void runMavenCleanTest(File pomDir) {
MavenRunner.execute(new MavenBuild()
.withWorkingDirectory(pomDir)
.withGoal("clean")
diff --git a/org.eclipse.scout.sdk.core.s.test/src/main/shared/formdata/shared/ui/forms/formfieldmenu/FormFieldMenuTestFormData.java b/org.eclipse.scout.sdk.core.s.test/src/main/shared/formdata/shared/ui/forms/formfieldmenu/FormFieldMenuTestFormData.java
new file mode 100644
index 0000000..2fdf13c
--- /dev/null
+++ b/org.eclipse.scout.sdk.core.s.test/src/main/shared/formdata/shared/ui/forms/formfieldmenu/FormFieldMenuTestFormData.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * 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 formdata.shared.ui.forms.formfieldmenu;
+
+import javax.annotation.Generated;
+
+import org.eclipse.scout.rt.shared.data.form.AbstractFormData;
+import org.eclipse.scout.rt.shared.data.form.fields.AbstractValueFieldData;
+
+/**
+ * <b>NOTE:</b><br>
+ * This class is auto generated by the Scout SDK. No manual modifications recommended.
+ */
+@Generated(value = "formdata.client.ui.forms.formfieldmenu.FormFieldMenuTestForm", comments = "This class is auto generated by the Scout SDK. No manual modifications recommended.")
+public class FormFieldMenuTestFormData extends AbstractFormData {
+
+ private static final long serialVersionUID = 1L;
+
+ public TestBoolean getTestBoolean() {
+ return getFieldByClass(TestBoolean.class);
+ }
+
+ public static class TestBoolean extends AbstractValueFieldData<Boolean> {
+
+ private static final long serialVersionUID = 1L;
+ }
+}
diff --git a/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/jaxws/JaxWsUtilsTest.java b/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/jaxws/JaxWsUtilsTest.java
index 36746a9..d5a198b 100644
--- a/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/jaxws/JaxWsUtilsTest.java
+++ b/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/jaxws/JaxWsUtilsTest.java
@@ -39,7 +39,6 @@
public void testJaxWsBindingMapping() {
JaxWsBindingMapping m = new JaxWsBindingMapping(true, "wsdlName", "className");
Assert.assertFalse(m.equals(null));
- Assert.assertFalse(m.equals(""));
Assert.assertFalse(m.equals(new JaxWsBindingMapping(true, "wsdlName", "className2")));
Assert.assertFalse(m.equals(new JaxWsBindingMapping(true, "wsdlName2", "className")));
Assert.assertFalse(m.equals(new JaxWsBindingMapping(false, "wsdlName", "className")));
diff --git a/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/sourcebuilder/dto/FormFieldMenuTest.java b/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/sourcebuilder/dto/FormFieldMenuTest.java
new file mode 100644
index 0000000..1e60740
--- /dev/null
+++ b/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/sourcebuilder/dto/FormFieldMenuTest.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * 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.sdk.core.s.sourcebuilder.dto;
+
+import org.eclipse.scout.sdk.core.model.api.IField;
+import org.eclipse.scout.sdk.core.model.api.IMethod;
+import org.eclipse.scout.sdk.core.model.api.IType;
+import org.eclipse.scout.sdk.core.s.testing.CoreScoutTestingUtils;
+import org.eclipse.scout.sdk.core.testing.SdkAssert;
+import org.junit.Assert;
+import org.junit.Test;
+
+import formdata.client.ui.forms.formfieldmenu.FormFieldMenuTestForm;
+
+/**
+ * @since 7.1.0
+ */
+public class FormFieldMenuTest {
+ @Test
+ public void testCreateFormData() {
+ IType dto = CoreScoutTestingUtils.createFormDataAssertNoCompileErrors(FormFieldMenuTestForm.class.getName());
+ testApiOfFormFieldMenuTestFormData(dto);
+ }
+
+ /**
+ * @Generated with org.eclipse.scout.sdk.core.testing.ApiTestGenerator
+ */
+ private static void testApiOfFormFieldMenuTestFormData(IType formFieldMenuTestFormData) {
+ SdkAssert.assertHasFlags(formFieldMenuTestFormData, 1);
+ SdkAssert.assertHasSuperTypeSignature(formFieldMenuTestFormData, "Lorg.eclipse.scout.rt.shared.data.form.AbstractFormData;");
+ Assert.assertEquals("annotation count", 1, formFieldMenuTestFormData.annotations().list().size());
+ SdkAssert.assertAnnotation(formFieldMenuTestFormData, "javax.annotation.Generated");
+
+ // fields of FormFieldMenuTestFormData
+ Assert.assertEquals("field count of 'formdata.shared.ui.forms.formfieldmenu.FormFieldMenuTestFormData'", 1, formFieldMenuTestFormData.fields().list().size());
+ IField serialVersionUID = SdkAssert.assertFieldExist(formFieldMenuTestFormData, "serialVersionUID");
+ SdkAssert.assertHasFlags(serialVersionUID, 26);
+ SdkAssert.assertFieldSignature(serialVersionUID, "J");
+ Assert.assertEquals("annotation count", 0, serialVersionUID.annotations().list().size());
+
+ Assert.assertEquals("method count of 'formdata.shared.ui.forms.formfieldmenu.FormFieldMenuTestFormData'", 1, formFieldMenuTestFormData.methods().list().size());
+ IMethod getTestBoolean = SdkAssert.assertMethodExist(formFieldMenuTestFormData, "getTestBoolean", new String[]{});
+ SdkAssert.assertMethodReturnTypeSignature(getTestBoolean, "Lformdata.shared.ui.forms.formfieldmenu.FormFieldMenuTestFormData$TestBoolean;");
+ Assert.assertEquals("annotation count", 0, getTestBoolean.annotations().list().size());
+
+ Assert.assertEquals("inner types count of 'FormFieldMenuTestFormData'", 1, formFieldMenuTestFormData.innerTypes().list().size());
+ // type TestBoolean
+ IType testBoolean = SdkAssert.assertTypeExists(formFieldMenuTestFormData, "TestBoolean");
+ SdkAssert.assertHasFlags(testBoolean, 9);
+ SdkAssert.assertHasSuperTypeSignature(testBoolean, "Lorg.eclipse.scout.rt.shared.data.form.fields.AbstractValueFieldData<Ljava.lang.Boolean;>;");
+ Assert.assertEquals("annotation count", 0, testBoolean.annotations().list().size());
+
+ // fields of TestBoolean
+ Assert.assertEquals("field count of 'formdata.shared.ui.forms.formfieldmenu.FormFieldMenuTestFormData$TestBoolean'", 1, testBoolean.fields().list().size());
+ IField serialVersionUID1 = SdkAssert.assertFieldExist(testBoolean, "serialVersionUID");
+ SdkAssert.assertHasFlags(serialVersionUID1, 26);
+ SdkAssert.assertFieldSignature(serialVersionUID1, "J");
+ Assert.assertEquals("annotation count", 0, serialVersionUID1.annotations().list().size());
+
+ Assert.assertEquals("method count of 'formdata.shared.ui.forms.formfieldmenu.FormFieldMenuTestFormData$TestBoolean'", 0, testBoolean.methods().list().size());
+
+ Assert.assertEquals("inner types count of 'TestBoolean'", 0, testBoolean.innerTypes().list().size());
+ }
+}
diff --git a/org.eclipse.scout.sdk.core.s/.project b/org.eclipse.scout.sdk.core.s/.project
index 3a79b9f..17c8427 100644
--- a/org.eclipse.scout.sdk.core.s/.project
+++ b/org.eclipse.scout.sdk.core.s/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk.core.s/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk.core.s/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk.core.s/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk.core.s/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk.core.s/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.core.s/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.core.s/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.core.s/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.core.s/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.core.s/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.core.s/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.core.s/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.core.s/pom.xml b/org.eclipse.scout.sdk.core.s/pom.xml
index b570830..ff34c68 100644
--- a/org.eclipse.scout.sdk.core.s/pom.xml
+++ b/org.eclipse.scout.sdk.core.s/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/IScoutRuntimeTypes.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/IScoutRuntimeTypes.java
index b673281..1708b6f 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/IScoutRuntimeTypes.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/IScoutRuntimeTypes.java
@@ -65,13 +65,12 @@
String AbstractColumn = "org.eclipse.scout.rt.client.ui.basic.table.columns.AbstractColumn";
String AbstractComposerField = "org.eclipse.scout.rt.client.ui.form.fields.composer.AbstractComposerField";
String AbstractCompositeField = "org.eclipse.scout.rt.client.ui.form.fields.AbstractCompositeField";
- String AbstractContentAssistField = "org.eclipse.scout.rt.client.ui.form.fields.smartfield.AbstractContentAssistField";
String AbstractDataModel = "org.eclipse.scout.rt.shared.data.model.AbstractDataModel";
String AbstractDataModelEntity = "org.eclipse.scout.rt.shared.data.model.AbstractDataModelEntity";
String AbstractDateField = "org.eclipse.scout.rt.client.ui.form.fields.datefield.AbstractDateField";
String AbstractDesktop = "org.eclipse.scout.rt.client.ui.desktop.AbstractDesktop";
String AbstractDesktopExtension = "org.eclipse.scout.rt.client.ui.desktop.AbstractDesktopExtension";
- String AbstractDynamicNlsTextProviderService = "org.eclipse.scout.rt.shared.services.common.text.AbstractDynamicNlsTextProviderService";
+ String AbstractDynamicNlsTextProviderService = "org.eclipse.scout.rt.platform.text.AbstractDynamicNlsTextProviderService";
String AbstractExtension = "org.eclipse.scout.rt.shared.extension.AbstractExtension";
String AbstractFileChooserField = "org.eclipse.scout.rt.client.ui.form.fields.filechooserfield.AbstractFileChooserField";
String AbstractForm = "org.eclipse.scout.rt.client.ui.form.AbstractForm";
@@ -133,7 +132,6 @@
String IColumn = "org.eclipse.scout.rt.client.ui.basic.table.columns.IColumn";
String ICompositeField = "org.eclipse.scout.rt.client.ui.form.fields.ICompositeField";
String ICompositeFieldExtension = "org.eclipse.scout.rt.client.extension.ui.form.fields.ICompositeFieldExtension";
- String IContentAssistFieldTable = "org.eclipse.scout.rt.client.ui.form.fields.smartfield.IContentAssistFieldTable";
String IContextMenuOwner = "org.eclipse.scout.rt.client.ui.action.menu.root.IContextMenuOwner";
String IDataModelAttribute = "org.eclipse.scout.rt.shared.data.model.IDataModelAttribute";
String IDataModelEntity = "org.eclipse.scout.rt.shared.data.model.IDataModelEntity";
@@ -146,6 +144,7 @@
String IFormExtension = "org.eclipse.scout.rt.client.extension.ui.form.IFormExtension";
String IFormField = "org.eclipse.scout.rt.client.ui.form.fields.IFormField";
String IFormFieldExtension = "org.eclipse.scout.rt.client.extension.ui.form.fields.IFormFieldExtension";
+ String IFormFieldMenu = "org.eclipse.scout.rt.client.ui.action.menu.form.fields.IFormFieldMenu";
String IFormHandler = "org.eclipse.scout.rt.client.ui.form.IFormHandler";
String IGroupBox = "org.eclipse.scout.rt.client.ui.form.fields.groupbox.IGroupBox";
String IHtmlField = "org.eclipse.scout.rt.client.ui.form.fields.htmlfield.IHtmlField";
@@ -189,11 +188,13 @@
String IViewButton = "org.eclipse.scout.rt.client.ui.action.view.IViewButton";
String IWizard = "org.eclipse.scout.rt.client.ui.wizard.IWizard";
String IWizardStep = "org.eclipse.scout.rt.client.ui.wizard.IWizardStep";
+ String IDataObject = "org.eclipse.scout.rt.platform.dataobject.IDataObject";
+ String IUuId = "org.eclipse.scout.rt.dataobject.id.IUuId";
// other runtime classes
String ACCESS = "org.eclipse.scout.rt.shared.services.common.security.ACCESS";
String BEANS = "org.eclipse.scout.rt.platform.BEANS";
- String TEXTS = "org.eclipse.scout.rt.shared.TEXTS";
+ String TEXTS = "org.eclipse.scout.rt.platform.text.TEXTS";
String Logger = "org.slf4j.Logger";
String CollectionUtility = "org.eclipse.scout.rt.platform.util.CollectionUtility";
String VetoException = "org.eclipse.scout.rt.platform.exception.VetoException";
@@ -255,7 +256,6 @@
String AbstractListBoxExtension = "org.eclipse.scout.rt.client.extension.ui.form.fields.listbox.AbstractListBoxExtension";
String AbstractPlannerFieldExtension = "org.eclipse.scout.rt.client.extension.ui.form.fields.plannerfield.AbstractPlannerFieldExtension";
String AbstractRadioButtonGroupExtension = "org.eclipse.scout.rt.client.extension.ui.form.fields.radiobuttongroup.AbstractRadioButtonGroupExtension";
- String AbstractContentAssistFieldExtension = "org.eclipse.scout.rt.client.extension.ui.form.fields.smartfield.AbstractContentAssistFieldExtension";
String AbstractTabBoxExtension = "org.eclipse.scout.rt.client.extension.ui.form.fields.tabbox.AbstractTabBoxExtension";
String AbstractTableFieldExtension = "org.eclipse.scout.rt.client.extension.ui.form.fields.tablefield.AbstractTableFieldExtension";
String AbstractTreeBoxExtension = "org.eclipse.scout.rt.client.extension.ui.form.fields.treebox.AbstractTreeBoxExtension";
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/model/ScoutModelHierarchy.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/model/ScoutModelHierarchy.java
index e0ba642..81f477b 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/model/ScoutModelHierarchy.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/model/ScoutModelHierarchy.java
@@ -100,8 +100,6 @@
addContainerElement(IScoutRuntimeTypes.AbstractPlannerFieldExtension, IScoutRuntimeTypes.IPlanner);
addContainerElement(IScoutRuntimeTypes.AbstractRadioButtonGroup, IScoutRuntimeTypes.IFormField);
addContainerElement(IScoutRuntimeTypes.AbstractRadioButtonGroupExtension, IScoutRuntimeTypes.IFormField);
- addContainerElement(IScoutRuntimeTypes.AbstractContentAssistField, IScoutRuntimeTypes.IContentAssistFieldTable);
- addContainerElement(IScoutRuntimeTypes.AbstractContentAssistFieldExtension, IScoutRuntimeTypes.IContentAssistFieldTable);
addContainerElement(IScoutRuntimeTypes.AbstractTabBox, IScoutRuntimeTypes.IMenu);
addContainerElement(IScoutRuntimeTypes.AbstractTabBoxExtension, IScoutRuntimeTypes.IMenu);
addContainerElement(IScoutRuntimeTypes.AbstractTableField, IScoutRuntimeTypes.ITable);
@@ -151,7 +149,6 @@
addInterfaceSuperType(IScoutRuntimeTypes.IColumn, IScoutRuntimeTypes.ITypeWithClassId);
addInterfaceSuperType(IScoutRuntimeTypes.ICompositeField, IScoutRuntimeTypes.IFormField);
addInterfaceSuperType(IScoutRuntimeTypes.ICompositeFieldExtension, IScoutRuntimeTypes.IExtension);
- addInterfaceSuperType(IScoutRuntimeTypes.IContentAssistFieldTable, IScoutRuntimeTypes.ITable);
addInterfaceSuperType(IScoutRuntimeTypes.IDataModelAttribute, IScoutRuntimeTypes.IOrdered);
addInterfaceSuperType(IScoutRuntimeTypes.IDataModelEntity, IScoutRuntimeTypes.IOrdered);
addInterfaceSuperType(IScoutRuntimeTypes.IDateField, IScoutRuntimeTypes.IValueField);
@@ -180,7 +177,7 @@
addInterfaceSuperType(IScoutRuntimeTypes.IPageWithTableExtension, IScoutRuntimeTypes.IExtension);
addInterfaceSuperType(IScoutRuntimeTypes.IPlanner, IScoutRuntimeTypes.IContextMenuOwner);
addInterfaceSuperType(IScoutRuntimeTypes.IPlannerField, IScoutRuntimeTypes.IFormField);
- addInterfaceSuperType(IScoutRuntimeTypes.IProposalField, IScoutRuntimeTypes.IValueField);
+ addInterfaceSuperType(IScoutRuntimeTypes.IProposalField, IScoutRuntimeTypes.ISmartField);
addInterfaceSuperType(IScoutRuntimeTypes.IRadioButton, IScoutRuntimeTypes.IButton);
addInterfaceSuperType(IScoutRuntimeTypes.IRadioButtonGroup, IScoutRuntimeTypes.IValueField);
addInterfaceSuperType(IScoutRuntimeTypes.IRadioButtonGroup, IScoutRuntimeTypes.ICompositeField);
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/project/ScoutProjectNewHelper.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/project/ScoutProjectNewHelper.java
index 14ab652..a7f8f0a 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/project/ScoutProjectNewHelper.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/project/ScoutProjectNewHelper.java
@@ -47,8 +47,9 @@
*/
public final class ScoutProjectNewHelper {
- public static final String SCOUT_ARCHETYPES_VERSION = "7.0.300-SNAPSHOT";
+ public static final String SCOUT_ARCHETYPES_VERSION = "8.0.0-SNAPSHOT";
public static final String SCOUT_ARCHETYPES_HELLOWORLD_ARTIFACT_ID = "scout-helloworld-app";
+ public static final String SCOUT_ARCHETYPES_HELLOJS_ARTIFACT_ID = "scout-hellojs-app";
public static final String SCOUT_ARCHETYPES_GROUP_ID = "org.eclipse.scout.archetypes";
public static final Pattern DISPLAY_NAME_PATTERN = Pattern.compile("[^\"\\/<>=:]+");
@@ -72,15 +73,15 @@
// validate input
Validate.notNull(workingDir);
- String groupIdMsg = getMavenNameErrorMessage(groupId, "groupId");
+ String groupIdMsg = getMavenGroupIdErrorMessage(groupId);
if (groupIdMsg != null) {
throw new IllegalArgumentException(groupIdMsg);
}
- String artifactIdMsg = getMavenNameErrorMessage(artifactId, "artifactId");
+ String artifactIdMsg = getMavenArtifactIdErrorMessage(artifactId);
if (artifactIdMsg != null) {
throw new IllegalArgumentException(artifactIdMsg);
}
- String displayNameMsg = getDisplayNameErrorMEssage(displayName);
+ String displayNameMsg = getDisplayNameErrorMessage(displayName);
if (displayNameMsg != null) {
throw new IllegalArgumentException(displayNameMsg);
}
@@ -90,17 +91,12 @@
if (StringUtils.isBlank(archetypeGroupId) || StringUtils.isBlank(archeTypeArtifactId) || StringUtils.isBlank(archetypeVersion)) {
// use default
archetypeGroupId = SCOUT_ARCHETYPES_GROUP_ID;
- archeTypeArtifactId = SCOUT_ARCHETYPES_HELLOWORLD_ARTIFACT_ID;
+ archeTypeArtifactId = SCOUT_ARCHETYPES_HELLOJS_ARTIFACT_ID;
archetypeVersion = SCOUT_ARCHETYPES_VERSION;
}
- String pck = null;
- if (groupId.equals(artifactId)) {
- pck = artifactId;
- }
- else {
- pck = new StringBuilder(groupId).append('.').append(artifactId).toString();
- }
+ String pck = getPackage(groupId, artifactId);
+ String artifactName = getArtifactName(artifactId);
// create command
String[] authKeysForWar = generateKeyPair();
@@ -122,6 +118,7 @@
.withProperty("scoutAuthPublicKeyDev", authKeysForDev[1])
.withProperty("scoutAuthPrivateKeyDev", authKeysForDev[0])
.withProperty("javaVersion", javaVersion)
+ .withProperty("simpleArtifactName", artifactName)
.withProperty("userName", CoreUtils.getUsername());
// execute archetype generation
@@ -130,6 +127,21 @@
postProcessRootPom(new File(workingDir, artifactId));
}
+ static String getArtifactName(String artifactId) {
+ int pos = artifactId.lastIndexOf('.');
+ if (pos < 0 || pos >= artifactId.length() - 1) {
+ return artifactId;
+ }
+ return artifactId.substring(pos + 1);
+ }
+
+ static String getPackage(String groupId, String artifactId) {
+ if (artifactId.startsWith(groupId)) {
+ return artifactId;
+ }
+ return new StringBuilder(groupId).append('.').append(artifactId).toString();
+ }
+
static String[] generateKeyPair() {
try {
return CoreUtils.generateKeyPair();
@@ -182,7 +194,7 @@
transformer.transform(new DOMSource(document), result);
}
- public static String getDisplayNameErrorMEssage(String displayNameCandidate) {
+ public static String getDisplayNameErrorMessage(String displayNameCandidate) {
if (StringUtils.isEmpty(displayNameCandidate)) {
return "Display Name is not set.";
}
@@ -192,17 +204,25 @@
return null;
}
- public static String getMavenNameErrorMessage(String symbolicNameCandidate, String attribName) {
- if (StringUtils.isEmpty(symbolicNameCandidate)) {
- return attribName + " is not set.";
+ public static String getMavenArtifactIdErrorMessage(String artifactIdCandidate) {
+ return getMavenNameErrorMessage(artifactIdCandidate, "Artifact Id");
+ }
+
+ public static String getMavenGroupIdErrorMessage(String groupIdCandidate) {
+ return getMavenNameErrorMessage(groupIdCandidate, "Group Id");
+ }
+
+ private static String getMavenNameErrorMessage(String nameCandidate, String attributeName) {
+ if (StringUtils.isEmpty(nameCandidate)) {
+ return attributeName + " is not set.";
}
- if (!SYMBOLIC_NAME_PATTERN.matcher(symbolicNameCandidate).matches()) {
- return "The " + attribName + " value is not valid.";
+ if (!SYMBOLIC_NAME_PATTERN.matcher(nameCandidate).matches()) {
+ return "The " + attributeName + " value is not valid.";
}
// reserved java keywords
- String jkw = getContainingJavaKeyWord(symbolicNameCandidate);
+ String jkw = getContainingJavaKeyWord(nameCandidate);
if (jkw != null) {
- return "The " + attribName + " must not contain the Java keyword '" + jkw + "'.";
+ return "The " + attributeName + " must not contain the Java keyword '" + jkw + "'.";
}
return null;
}
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/dto/CompositeFormDataTypeSourceBuilder.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/dto/CompositeFormDataTypeSourceBuilder.java
index 5b3ebff..1acad71 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/dto/CompositeFormDataTypeSourceBuilder.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/dto/CompositeFormDataTypeSourceBuilder.java
@@ -10,8 +10,6 @@
******************************************************************************/
package org.eclipse.scout.sdk.core.s.sourcebuilder.dto;
-import java.util.List;
-
import org.eclipse.jdt.internal.compiler.util.SuffixConstants;
import org.eclipse.scout.sdk.core.model.api.Flags;
import org.eclipse.scout.sdk.core.model.api.IJavaEnvironment;
@@ -46,87 +44,107 @@
@Override
protected void createContent() {
super.createContent();
- createCompositeFieldFormData(getModelType());
+ processCompositeField(getModelType());
}
- private void createCompositeFieldFormData(IType compositeType) {
- List<IType> innerTypes = compositeType.innerTypes().withInstanceOf(IScoutRuntimeTypes.IFormField).list();
- for (IType formField : innerTypes) {
- boolean fieldExtendsTemplateField = false;
+ protected void processFormField(IType formField) {
+ FormDataAnnotationDescriptor fieldAnnotation = DtoUtils.getFormDataAnnotationDescriptor(formField);
+ if (FormDataAnnotationDescriptor.isIgnore(fieldAnnotation)) {
+ return;
+ }
- if (Flags.isPublic(formField.flags())) {
- FormDataAnnotationDescriptor fieldAnnotation = DtoUtils.getFormDataAnnotationDescriptor(formField);
+ boolean fieldExtendsTemplateField = false;
+ boolean isCompositeField = formField.isInstanceOf(IScoutRuntimeTypes.ICompositeField);
+ if (FormDataAnnotationDescriptor.isCreate(fieldAnnotation)) {
+ IType formDataType = fieldAnnotation.getFormDataType();
+ String formDataTypeName = null;
+ if (formDataType == null) {
+ formDataTypeName = DtoUtils.removeFieldSuffix(formField.elementName());
+ }
+ else {
+ formDataTypeName = formDataType.elementName();
+ }
- if (FormDataAnnotationDescriptor.isCreate(fieldAnnotation)) {
- IType formDataType = fieldAnnotation.getFormDataType();
- String formDataTypeName = null;
- if (formDataType == null) {
- formDataTypeName = DtoUtils.removeFieldSuffix(formField.elementName());
+ ITypeSourceBuilder fieldSourceBuilder = null;
+ if (fieldAnnotation.getSuperType().isInstanceOf(IScoutRuntimeTypes.AbstractTableFieldBeanData)) {
+ // fill table bean
+ fieldSourceBuilder = new TableFieldBeanFormDataSourceBuilder(formField, fieldAnnotation, getTargetPackage(), formDataTypeName, getJavaEnvironment());
+ }
+ else if (isCompositeField && !formField.isInstanceOf(IScoutRuntimeTypes.IValueField)) {
+ // field extends a field template.
+ fieldExtendsTemplateField = true;
+ fieldSourceBuilder = new CompositeFormDataTypeSourceBuilder(formField, fieldAnnotation, getTargetPackage(), formDataTypeName, getJavaEnvironment());
+ }
+ else {
+ fieldSourceBuilder = new FormDataTypeSourceBuilder(formField, fieldAnnotation, getTargetPackage(), formDataTypeName, getJavaEnvironment());
+
+ // special case if a property has the same name as a form field -> show warning
+ for (IMethodSourceBuilder msb : getMethods()) {
+ String methodName = CoreUtils.getGetterMethodPrefix(msb.getReturnTypeSignature()) + formDataTypeName;
+ if (methodName.equals(msb.getElementName())) {
+ fieldSourceBuilder.setComment(CommentSourceBuilderFactory.createCustomCommentBuilder("TODO [everyone] Duplicate names '" + formDataTypeName + "'. Rename property or form field."));
+ break;
}
- else {
- formDataTypeName = formDataType.elementName();
- }
-
- ITypeSourceBuilder fieldSourceBuilder = null;
- if (fieldAnnotation.getSuperType().isInstanceOf(IScoutRuntimeTypes.AbstractTableFieldBeanData)) {
- // fill table bean
- fieldSourceBuilder = new TableFieldBeanFormDataSourceBuilder(formField, fieldAnnotation, getTargetPackage(), formDataTypeName, getJavaEnvironment());
- }
- else if (formField.isInstanceOf(IScoutRuntimeTypes.ICompositeField) && !formField.isInstanceOf(IScoutRuntimeTypes.IValueField)) {
- // field extends a field template.
- fieldExtendsTemplateField = true;
- fieldSourceBuilder = new CompositeFormDataTypeSourceBuilder(formField, fieldAnnotation, getTargetPackage(), formDataTypeName, getJavaEnvironment());
- }
- else {
- fieldSourceBuilder = new FormDataTypeSourceBuilder(formField, fieldAnnotation, getTargetPackage(), formDataTypeName, getJavaEnvironment());
-
- // special case if a property has the same name as a form field -> show warning
- for (IMethodSourceBuilder msb : getMethods()) {
- String methodName = CoreUtils.getGetterMethodPrefix(msb.getReturnTypeSignature()) + formDataTypeName;
- if (methodName.equals(msb.getElementName())) {
- fieldSourceBuilder.setComment(CommentSourceBuilderFactory.createCustomCommentBuilder("TODO [everyone] Duplicate names '" + formDataTypeName + "'. Rename property or form field."));
- break;
- }
- }
- }
- fieldSourceBuilder.setFlags(fieldSourceBuilder.getFlags() | Flags.AccStatic);
- addSortedType(SortedMemberKeyFactory.createTypeFormDataPropertyKey(fieldSourceBuilder), fieldSourceBuilder);
-
- // add interfaces specified on the formdata annotation
- DtoUtils.addFormDataAdditionalInterfaces(fieldAnnotation, fieldSourceBuilder, getJavaEnvironment());
-
- // Scout RT requires the first char to be upper-case for a getter.
- // See org.eclipse.scout.rt.platform.reflect.FastBeanUtility.BEAN_METHOD_PAT.
- String methodName = CoreUtils.ensureStartWithUpperCase(formDataTypeName);
-
- // getter for field
- IMethodSourceBuilder getterBuilder = new MethodSourceBuilder("get" + methodName);
- getterBuilder.setFlags(Flags.AccPublic);
- getterBuilder.setReturnTypeSignature(Signature.createTypeSignature(formDataTypeName, false));
- getterBuilder.setBody(new RawSourceBuilder(new StringBuilder("return getFieldByClass(").append(formDataTypeName).append(SuffixConstants.SUFFIX_class).append(");").toString()));
- addSortedMethod(SortedMemberKeyFactory.createMethodPropertyKey(getterBuilder), getterBuilder);
- }
- else if (FormDataAnnotationDescriptor.isIgnore(fieldAnnotation)) {
- continue;
- }
-
- if (formField.isInstanceOf(IScoutRuntimeTypes.ICompositeField) && !fieldExtendsTemplateField) {
- createCompositeFieldFormData(formField);
}
}
+ fieldSourceBuilder.setFlags(fieldSourceBuilder.getFlags() | Flags.AccStatic);
+ addSortedType(SortedMemberKeyFactory.createTypeFormDataPropertyKey(fieldSourceBuilder), fieldSourceBuilder);
+
+ // add interfaces specified on the formdata annotation
+ DtoUtils.addFormDataAdditionalInterfaces(fieldAnnotation, fieldSourceBuilder, getJavaEnvironment());
+
+ // Scout RT requires the first char to be upper-case for a getter.
+ // See org.eclipse.scout.rt.platform.reflect.FastBeanUtility.BEAN_METHOD_PAT.
+ String methodName = CoreUtils.ensureStartWithUpperCase(formDataTypeName);
+
+ // getter for field
+ IMethodSourceBuilder getterBuilder = new MethodSourceBuilder("get" + methodName);
+ getterBuilder.setFlags(Flags.AccPublic);
+ getterBuilder.setReturnTypeSignature(Signature.createTypeSignature(formDataTypeName, false));
+ getterBuilder.setBody(new RawSourceBuilder(new StringBuilder("return getFieldByClass(").append(formDataTypeName).append(SuffixConstants.SUFFIX_class).append(");").toString()));
+ addSortedMethod(SortedMemberKeyFactory.createMethodPropertyKey(getterBuilder), getterBuilder);
}
+ if (isCompositeField && !fieldExtendsTemplateField) {
+ processCompositeField(formField);
+ }
+ }
+
+ protected void processTableExtension(IType tableExtension) {
+ String rowDataName = DtoUtils.getRowDataName(tableExtension.elementName());
+ TableRowDataTypeSourceBuilder rowDataSourceBuilder = new TableRowDataTypeSourceBuilder(rowDataName, tableExtension, tableExtension, getJavaEnvironment());
+ addSortedType(SortedMemberKeyFactory.createTypeFormDataPropertyKey(rowDataSourceBuilder), rowDataSourceBuilder);
+ DtoUtils.addDtoExtendsAnnotation(rowDataSourceBuilder, tableExtension);
+ }
+
+ protected void processCompositeField(IType compositeType) {
+ // nested form fields
+ compositeType.innerTypes()
+ .withFlags(Flags.AccPublic)
+ .withInstanceOf(IScoutRuntimeTypes.IFormField)
+ .list()
+ .forEach(this::processFormField);
+
+ // step into formFieldMenus (special menu that may contain more form fields)
+ compositeType.innerTypes()
+ .withFlags(Flags.AccPublic)
+ .withInstanceOf(IScoutRuntimeTypes.IFormFieldMenu)
+ .list()
+ .forEach(this::processCompositeField);
+
// step into extensions
- for (IType formFieldExtension : compositeType.innerTypes().withInstanceOf(IScoutRuntimeTypes.ICompositeFieldExtension).list()) {
- createCompositeFieldFormData(formFieldExtension);
- }
+ compositeType.innerTypes()
+ .withFlags(Flags.AccPublic)
+ .withInstanceOf(IScoutRuntimeTypes.ICompositeFieldExtension)
+ .list()
+ .forEach(this::processCompositeField);
// step into table extensions of table-fields
- for (IType tableExtension : compositeType.innerTypes().withRecursiveInnerTypes(true).withInstanceOf(IScoutRuntimeTypes.ITableExtension).list()) {
- String rowDataName = DtoUtils.getRowDataName(tableExtension.elementName());
- TableRowDataTypeSourceBuilder rowDataSourceBuilder = new TableRowDataTypeSourceBuilder(rowDataName, tableExtension, tableExtension, getJavaEnvironment());
- addSortedType(SortedMemberKeyFactory.createTypeFormDataPropertyKey(rowDataSourceBuilder), rowDataSourceBuilder);
- DtoUtils.addDtoExtendsAnnotation(rowDataSourceBuilder, tableExtension);
- }
+ compositeType.innerTypes()
+ .withFlags(Flags.AccPublic)
+ .withRecursiveInnerTypes(true)
+ .withInstanceOf(IScoutRuntimeTypes.ITableExtension)
+ .list()
+ .forEach(this::processTableExtension);
}
}
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/form/FormSourceBuilder.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/form/FormSourceBuilder.java
index 4ca24f9..e0ec754 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/form/FormSourceBuilder.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/form/FormSourceBuilder.java
@@ -194,7 +194,7 @@
protected HandlerMethodBodySourceBuilder createExecLoadStoreBody(IMethodSourceBuilder methodBuilder, ITypeSourceBuilder handlerBuilder) {
HandlerMethodBodySourceBuilder handlerMehodBodySourceBuilder = new HandlerMethodBodySourceBuilder(methodBuilder, handlerBuilder);
- handlerMehodBodySourceBuilder.setFormDataStaticSignature(getFormDataSignature());
+ handlerMehodBodySourceBuilder.setFormDataSignature(getFormDataSignature());
handlerMehodBodySourceBuilder.setServiceIfcSignature(getServiceIfcSignature());
if (MODIFY_HANDLER_NAME.equals(handlerBuilder.getElementName())) {
handlerMehodBodySourceBuilder.setPermissionSignature(getUpdatePermissionSignature());
@@ -220,8 +220,7 @@
public static final String FORM_DATA_VAR_NAME = "formData";
private String m_serviceIfcSignature;
- private String m_formDataStaticSignature;
- private String m_formDataDynamicSignature;
+ private String m_formDataSignature;
private String m_permissionSignature;
private ISourceBuilder m_methodArgSourceBuilder;
private ISourceBuilder m_permissionArgSourceBuilder;
@@ -243,25 +242,19 @@
final boolean isLoad = LOAD_METHOD_NAME.equals(getHandlerMethodBuilder().getElementName());
if (getServiceIfcSignature() != null) {
- final boolean isDtoAvailable = getFormDataStaticSignature() != null;
final String serviceInterfaceName = validator.useSignature(getServiceIfcSignature());
-
- String formDataStaticTypeName = null;
- String formDataDynamicTypeName = null;
- if (isDtoAvailable) {
- formDataStaticTypeName = validator.useSignature(getFormDataStaticSignature());
- formDataDynamicTypeName = validator.useSignature(getFormDataDynamicSignature());
- }
source.append(serviceInterfaceName).append(' ').append(SERVICE_VAR_NAME).append(" = ");
source.append(validator.useSignature(Signature.createTypeSignature(IScoutRuntimeTypes.BEANS))).append(".get(");
source.append(serviceInterfaceName).append(SuffixConstants.SUFFIX_class).append(");").append(lineDelimiter);
+ final boolean isDtoAvailable = getFormDataSignature() != null;
if (isDtoAvailable) {
- source.append(formDataStaticTypeName).append(' ').append(FORM_DATA_VAR_NAME).append(" = ");
+ String formDataTypeName = validator.useSignature(getFormDataSignature());
+ source.append(formDataTypeName).append(' ').append(FORM_DATA_VAR_NAME).append(" = ");
if (!isLoad || isCreateFormDataInLoad()) {
ISourceBuilder formDataInstanceCreationBuilder = getFormDataInstanceCreationBuilder();
if (formDataInstanceCreationBuilder == null) {
- source.append("new ").append(formDataDynamicTypeName).append("();").append(lineDelimiter);
+ source.append("new ").append(formDataTypeName).append("();").append(lineDelimiter);
}
else {
formDataInstanceCreationBuilder.createSource(source, lineDelimiter, context, validator);
@@ -318,23 +311,12 @@
m_serviceIfcSignature = serviceIfcSignature;
}
- public String getFormDataStaticSignature() {
- return m_formDataStaticSignature;
+ public String getFormDataSignature() {
+ return m_formDataSignature;
}
- public void setFormDataStaticSignature(String formDataStaticSignature) {
- m_formDataStaticSignature = formDataStaticSignature;
- }
-
- public String getFormDataDynamicSignature() {
- if (m_formDataDynamicSignature == null) {
- return m_formDataStaticSignature;
- }
- return m_formDataDynamicSignature;
- }
-
- public void setFormDataDynamicSignature(String formDataDynamicSignature) {
- m_formDataDynamicSignature = formDataDynamicSignature;
+ public void setFormDataSignature(String formDataSignature) {
+ m_formDataSignature = formDataSignature;
}
public String getPermissionSignature() {
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/jaxws/WebServiceClientSourceBuilder.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/jaxws/WebServiceClientSourceBuilder.java
index c5e1f68..9060e1f 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/jaxws/WebServiceClientSourceBuilder.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/sourcebuilder/jaxws/WebServiceClientSourceBuilder.java
@@ -28,6 +28,7 @@
import org.eclipse.scout.sdk.core.sourcebuilder.compilationunit.AbstractEntitySourceBuilder;
import org.eclipse.scout.sdk.core.sourcebuilder.method.IMethodSourceBuilder;
import org.eclipse.scout.sdk.core.sourcebuilder.method.MethodBodySourceBuilderFactory;
+import org.eclipse.scout.sdk.core.sourcebuilder.method.MethodSourceBuilder;
import org.eclipse.scout.sdk.core.sourcebuilder.method.MethodSourceBuilderFactory;
import org.eclipse.scout.sdk.core.sourcebuilder.methodparameter.IMethodParameterSourceBuilder;
import org.eclipse.scout.sdk.core.sourcebuilder.type.ITypeSourceBuilder;
@@ -121,7 +122,6 @@
}
protected ITypeSourceBuilder createUrlPropertyType() {
-
ITypeSourceBuilder urlProperty = new TypeSourceBuilder(getBaseName() + ISdkProperties.SUFFIX_WS_URL_PROPERTY);
urlProperty.setFlags(Flags.AccPublic | Flags.AccStatic);
urlProperty.setSuperTypeSignature(Signature.createTypeSignature(IScoutRuntimeTypes.AbstractStringConfigProperty));
@@ -130,6 +130,12 @@
getKey.setBody(new RawSourceBuilder("return " + CoreUtils.toStringLiteral(getUrlPropertyName()) + ';'));
urlProperty.addMethod(getKey);
+ IMethodSourceBuilder description = new MethodSourceBuilder("description");
+ description.setFlags(Flags.AccPublic);
+ description.setReturnTypeSignature(Signature.createTypeSignature(String.class.getName()));
+ description.setBody(new RawSourceBuilder("return null; " + CoreUtils.getCommentBlock("documentation")));
+ urlProperty.addMethod(description);
+
return urlProperty;
}
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/util/CoreScoutUtils.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/util/CoreScoutUtils.java
index 138d70a..008ac31 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/util/CoreScoutUtils.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/util/CoreScoutUtils.java
@@ -128,7 +128,7 @@
* the declaring type.
* @return the new order value that should be used.
*/
- @SuppressWarnings("squid:S2583") // second arg is required so that the compiler is happy
+ @SuppressWarnings("squid:S2589") // second arg is required so that the compiler is happy
public static double getNewViewOrderValue(IType declaringType, String orderDefinitionType, int pos) {
IType[] siblings = findSiblings(declaringType, pos, orderDefinitionType);
Double orderValueBefore = getOrderAnnotationValue(siblings[0]);
@@ -219,18 +219,22 @@
double prevIntHigh = Math.max(lowCeil, highFloor);
// special case for stepwise increase
- if (low % ISdkProperties.VIEW_ORDER_ANNOTATION_VALUE_STEP == 0 && low + ISdkProperties.VIEW_ORDER_ANNOTATION_VALUE_STEP < high) {
+ if ((int) low % ISdkProperties.VIEW_ORDER_ANNOTATION_VALUE_STEP == 0 && low + ISdkProperties.VIEW_ORDER_ANNOTATION_VALUE_STEP < high) {
return low + ISdkProperties.VIEW_ORDER_ANNOTATION_VALUE_STEP;
}
- if (lowFloor != highFloor && ((lowFloor != low && highFloor != high) || dif > 1.0)) {
+ if (isDoubleDifferent(lowFloor, highFloor) && ((isDoubleDifferent(lowFloor, low) && isDoubleDifferent(highFloor, high)) || dif > 1.0)) {
// integer value possible
- double intDif = prevIntHigh - nextIntLow;
- if (intDif == 1.0) {
+ final double intDif = prevIntHigh - nextIntLow;
+ if (!isDoubleDifferent(intDif, 1.0)) {
return prevIntHigh;
}
return nextIntLow + Math.floor(intDif / 2.0);
}
return low + (dif / 2);
}
+
+ static boolean isDoubleDifferent(final double d1, final double d2) {
+ return CoreUtils.isDoubleDifferent(d1, d2, 0.0000000001);
+ }
}
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/util/DtoUtils.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/util/DtoUtils.java
index 29a4a43..82b4c93 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/util/DtoUtils.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/util/DtoUtils.java
@@ -64,8 +64,8 @@
}
/**
- * Parses the possible available {@link IScoutRuntimeTypes#ColumnData} annotation on the given type. If the type is
- * not annotated, <code>null</code> is returned.
+ * Parses the possible available {@link IScoutRuntimeTypes#ColumnData} annotation on the given type. If the type is not
+ * annotated, <code>null</code> is returned.
*
* @since 3.10.0-M5
*/
@@ -89,6 +89,12 @@
return sdkColumnCommand;
}
+ /**
+ * Gets the data type signature of the specified column type.
+ *
+ * @param columnContainer
+ * @return
+ */
public static String getColumnValueTypeSignature(IType columnContainer) {
List<String> resolvedTypeParamValues = CoreUtils.getResolvedTypeParamValueSignature(columnContainer, IScoutRuntimeTypes.IColumn, IScoutRuntimeTypes.TYPE_PARAM_COLUMN__VALUE_TYPE);
if (resolvedTypeParamValues.isEmpty()) {
@@ -118,8 +124,8 @@
}
/**
- * @return Returns the form field data/form data for the given form field/form or <code>null</code> if it does not
- * have one.
+ * @return Returns the form field data/form data for the given form field/form or <code>null</code> if it does not have
+ * one.
* @since 3.8.2
*/
private static IType getFormDataType(IType modelType) {
@@ -144,9 +150,8 @@
}
/**
- * @return Returns the form field data/form data for the given form field/form or <code>null</code> if it does not
- * have one. The method walks recursively through the list of declaring classes until it has reached a primary
- * type.
+ * @return Returns the form field data/form data for the given form field/form or <code>null</code> if it does not have
+ * one. The method walks recursively through the list of declaring classes until it has reached a primary type.
* @since 3.8.2
*/
private static IType getFormFieldDataPrimaryTypeRec(IType recursiveDeclaringType) {
diff --git a/org.eclipse.scout.sdk.core.test/.project b/org.eclipse.scout.sdk.core.test/.project
index 8e6a1e3..637ee84 100644
--- a/org.eclipse.scout.sdk.core.test/.project
+++ b/org.eclipse.scout.sdk.core.test/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.core.resources.prefs b/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.core.resources.prefs
index 2da41a5..a658c0b 100644
--- a/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.core.resources.prefs
@@ -5,6 +5,5 @@
encoding//src/main/resources=UTF-8
encoding//src/main/shared=UTF-8
encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
encoding/<project>=UTF-8
encoding/files=UTF-8
diff --git a/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.core.test/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.core.test/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.core.test/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.core.test/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.core.test/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.core.test/pom.xml b/org.eclipse.scout.sdk.core.test/pom.xml
index b6309b2..4087a8e 100644
--- a/org.eclipse.scout.sdk.core.test/pom.xml
+++ b/org.eclipse.scout.sdk.core.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
diff --git a/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/CoreUtilsTest.java b/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/CoreUtilsTest.java
index 211b130..3d640ae 100644
--- a/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/CoreUtilsTest.java
+++ b/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/CoreUtilsTest.java
@@ -10,6 +10,9 @@
******************************************************************************/
package org.eclipse.scout.sdk.core.util;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
@@ -603,4 +606,41 @@
CoreUtils.deleteDirectory(targetDirectory.toFile());
}
}
+
+ @Test
+ public void testIsDoubleDifferent() {
+ assertTrue(CoreUtils.isDoubleDifferent(1.1113d, 1.1115d, 0.0001d));
+ assertTrue(CoreUtils.isDoubleDifferent(1.0d, 2.0d, 0.9d));
+ assertFalse(CoreUtils.isDoubleDifferent(1.111d, 1.112d, 0.01d));
+ assertFalse(CoreUtils.isDoubleDifferent(-0.0d, 0.0d, 0.000000001d));
+ assertFalse(CoreUtils.isDoubleDifferent(-0.0d, 0.0d, 1.0d));
+ assertFalse(CoreUtils.isDoubleDifferent(-0.0d, 0.0d, 0.0d));
+
+ // min/max values
+ assertTrue(CoreUtils.isDoubleDifferent(-Double.MAX_VALUE, Double.MAX_VALUE, 10000.0d));
+ assertTrue(CoreUtils.isDoubleDifferent(Double.MAX_VALUE, Double.MIN_VALUE, 10000.0d));
+ assertTrue(CoreUtils.isDoubleDifferent(Double.MIN_VALUE, Double.MAX_VALUE, 10000.0d));
+ assertTrue(CoreUtils.isDoubleDifferent(Double.MAX_VALUE, -Double.MAX_VALUE, 10000.0d));
+ assertTrue(CoreUtils.isDoubleDifferent(Double.MIN_VALUE, -Double.MIN_VALUE, 0.0d));
+ assertFalse(CoreUtils.isDoubleDifferent(Double.MAX_VALUE, Double.MAX_VALUE, 10000.0d));
+ assertFalse(CoreUtils.isDoubleDifferent(Double.MIN_VALUE, Double.MIN_VALUE, 10000.0d));
+ assertFalse(CoreUtils.isDoubleDifferent(-Double.MAX_VALUE, -Double.MAX_VALUE, 10000.0d));
+ assertFalse(CoreUtils.isDoubleDifferent(-Double.MIN_VALUE, -Double.MIN_VALUE, 10000.0d));
+
+ // infinity comparisons
+ assertFalse(CoreUtils.isDoubleDifferent(Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY, 10000.0d));
+ assertFalse(CoreUtils.isDoubleDifferent(Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY, 10000.0d));
+ assertTrue(CoreUtils.isDoubleDifferent(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 10000.0d));
+ assertTrue(CoreUtils.isDoubleDifferent(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, 10000.0d));
+ assertTrue(CoreUtils.isDoubleDifferent(Double.NEGATIVE_INFINITY, 100.0d, 10000.0d));
+ assertTrue(CoreUtils.isDoubleDifferent(Double.POSITIVE_INFINITY, 100.0d, 10000.0d));
+
+ // NaN comparisons
+ assertTrue(CoreUtils.isDoubleDifferent(1.0d, Double.NaN, 1.0d));
+ assertTrue(CoreUtils.isDoubleDifferent(Double.NaN, 1.0d, 1.0d));
+ assertFalse(CoreUtils.isDoubleDifferent(Double.NaN, Double.NaN, 1.0d));
+ assertFalse(CoreUtils.isDoubleDifferent(Float.NaN, Float.NaN, Float.POSITIVE_INFINITY));
+ assertFalse(CoreUtils.isDoubleDifferent(Double.NaN, Double.NaN, Double.POSITIVE_INFINITY));
+ assertFalse(CoreUtils.isDoubleDifferent(Double.NaN, Double.NaN, Double.NEGATIVE_INFINITY));
+ }
}
diff --git a/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/SdkLogTest.java b/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/SdkLogTest.java
index f31a6f4..4fb7204 100644
--- a/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/SdkLogTest.java
+++ b/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/SdkLogTest.java
@@ -98,7 +98,7 @@
@Test
public void testLogOfObjectWithToStringThrowingException() throws Exception {
- runWithPrivateLogger(new ILogTestRunner() {
+ runWithPrivateLogger(Level.WARNING, new ILogTestRunner() {
@Override
public void run(StringBuilder logContent) throws Exception {
SdkLog.error("Msg: {}", new ClassWithToStringThrowingNpeFixture());
@@ -110,7 +110,7 @@
@Test
public void testLog() throws Exception {
- runWithPrivateLogger(new ILogTestRunner() {
+ runWithPrivateLogger(Level.WARNING, new ILogTestRunner() {
@Override
public void run(StringBuilder logContent) {
SdkLog.warning("hello");
@@ -161,12 +161,14 @@
void run(StringBuilder logContent) throws Exception;
}
- private static void runWithPrivateLogger(ILogTestRunner runnable) throws Exception {
+ private static void runWithPrivateLogger(Level initialLevel, ILogTestRunner runnable) throws Exception {
// lock on console to ensure no other thread writes to the console while we are testing (in case tests are running in parallel)
synchronized (SdkConsole.class) {
ISdkConsoleSpi backup = SdkConsole.getConsoleSpi();
+ Level levelBackup = SdkLog.getLogLevel();
try {
final StringBuilder logContent = new StringBuilder();
+ SdkLog.setLogLevel(initialLevel);
SdkConsole.setConsoleSpi(new ISdkConsoleSpi() {
@Override
@@ -192,6 +194,7 @@
}
finally {
+ SdkLog.setLogLevel(levelBackup);
SdkConsole.setConsoleSpi(backup);
}
}
diff --git a/org.eclipse.scout.sdk.core/.project b/org.eclipse.scout.sdk.core/.project
index f2b9825..87f84ec 100644
--- a/org.eclipse.scout.sdk.core/.project
+++ b/org.eclipse.scout.sdk.core/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk.core/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk.core/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk.core/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk.core/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.core/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.core/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.core/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.core/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.core/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.core/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.core/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.core/pom.xml b/org.eclipse.scout.sdk.core/pom.xml
index 921eb78..828a030 100644
--- a/org.eclipse.scout.sdk.core/pom.xml
+++ b/org.eclipse.scout.sdk.core/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
diff --git a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/AstCompiler.java b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/AstCompiler.java
index bae2695..68de989 100644
--- a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/AstCompiler.java
+++ b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/AstCompiler.java
@@ -34,12 +34,13 @@
*/
public class AstCompiler extends org.eclipse.jdt.internal.compiler.Compiler {
+ private static final int MAJOR_VERSION_10 = 54;
static final CompilerOptions opts;
static final Map<String, String> optsMap;
static {
opts = new CompilerOptions();
opts.produceDebugAttributes = 0;
- opts.complianceLevel = ClassFileConstants.JDK1_9;
+ opts.complianceLevel = ((long) MAJOR_VERSION_10 << 16) + ClassFileConstants.MINOR_VERSION_0; /* JDK10. can be removed as soon as ECJ 3.14 is used as compile dependency */
opts.originalComplianceLevel = opts.complianceLevel;
opts.sourceLevel = opts.complianceLevel;
opts.originalSourceLevel = opts.complianceLevel;
diff --git a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/ClasspathBuilder.java b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/ClasspathBuilder.java
index 564f54b..cb60eba 100644
--- a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/ClasspathBuilder.java
+++ b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/ClasspathBuilder.java
@@ -10,6 +10,7 @@
******************************************************************************/
package org.eclipse.scout.sdk.core.model.spi.internal;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -43,6 +44,8 @@
private static final Map<Path, JreInfo> JRE_INFOS = new ConcurrentHashMap<>();
+ private static final ClasspathAccessor CLASSPATH_ACCESSOR;
+
private final Classpath[] m_full;
private final List<Classpath> m_bootClasspath;
private final Collection<Classpath> m_classpath;
@@ -177,6 +180,39 @@
if (f == null || !Files.isReadable(f)) {
return null;
}
- return FileSystem.getClasspath(f.toString(), encoding, isSourceOnly, null, null, null);
+
+ try {
+ return CLASSPATH_ACCESSOR.toClasspath(f, isSourceOnly, encoding);
+ }
+ catch (final IllegalArgumentException | ReflectiveOperationException e) {
+ throw new SdkException(e);
+ }
+ }
+
+ private interface ClasspathAccessor {
+ Classpath toClasspath(final Path f, final boolean isSourceOnly, final String encoding) throws IllegalAccessException, InvocationTargetException;
+ }
+
+ static {
+ ClasspathAccessor accessor = (f, isSourceOnly, encoding) -> {
+ throw new SdkException("getClasspath method on FileSystem.class could not be found.");
+ };
+ try {
+ // try ECJ 3.14 version first
+ // this version includes an additional parameter 'release'.
+ final Method getClasspath = FileSystem.class.getMethod("getClasspath", String.class, String.class, boolean.class, AccessRuleSet.class, String.class, Map.class, String.class);
+ accessor = (f, isSourceOnly, encoding) -> (Classpath) getClasspath.invoke(null, f.toString(), encoding, isSourceOnly, null, null, null, null);
+ }
+ catch (final NoSuchMethodException nsme) {
+ SdkLog.debug("Fallback to legacy ECJ.", nsme);
+ try {
+ final Method getClasspath = FileSystem.class.getMethod("getClasspath", String.class, String.class, boolean.class, AccessRuleSet.class, String.class, Map.class);
+ accessor = (f, isSourceOnly, encoding) -> (Classpath) getClasspath.invoke(null, f.toString(), encoding, isSourceOnly, null, null, null);
+ }
+ catch (final NoSuchMethodException e) {
+ SdkLog.error("No supported ECJ found.", e);
+ }
+ }
+ CLASSPATH_ACCESSOR = accessor;
}
}
diff --git a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/sourcebuilder/ExpressionSourceBuilderFactory.java b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/sourcebuilder/ExpressionSourceBuilderFactory.java
index ef288c5..e881d93 100644
--- a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/sourcebuilder/ExpressionSourceBuilderFactory.java
+++ b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/sourcebuilder/ExpressionSourceBuilderFactory.java
@@ -87,29 +87,7 @@
* @return an array builder that creates a { ... } expression that can be used for annotation values of type array
*/
public static ISourceBuilder createArray(final Collection<? extends ISourceBuilder> elements, final boolean formatWithNewlines) {
- return new ISourceBuilder() {
- @Override
- public void createSource(StringBuilder source, String lineDelimiter, PropertyMap context, IImportValidator validator) {
- //use newlines on multi-dimensional arrays and annotation arrays only
- String blockSeparator = formatWithNewlines ? lineDelimiter : " ";
- source.append('{');
- source.append(blockSeparator);
- int n = elements.size();
- if (n > 0) {
- int i = 0;
- for (ISourceBuilder element : elements) {
- if (i > 0) {
- source.append(',');
- source.append(blockSeparator);
- }
- element.createSource(source, lineDelimiter, context, validator);
- i++;
- }
- source.append(blockSeparator);
- }
- source.append('}');
- }
- };
+ return new ArrayExpressionSourceBuilder(elements, formatWithNewlines);
}
public static ISourceBuilder createFromMetaValue(final IMetaValue metaValue) {
@@ -161,4 +139,40 @@
return new RawSourceBuilder("UNKNOWN(" + metaValue.type() + ", " + metaValue + ")");
}
}
+
+ public static class ArrayExpressionSourceBuilder implements ISourceBuilder {
+ private final boolean m_formatWithNewlines;
+ private final Collection<? extends ISourceBuilder> m_elements;
+
+ public ArrayExpressionSourceBuilder(Collection<? extends ISourceBuilder> elements, boolean formatWithNewlines) {
+ m_formatWithNewlines = formatWithNewlines;
+ m_elements = elements;
+ }
+
+ public Collection<? extends ISourceBuilder> getElements() {
+ return m_elements;
+ }
+
+ @Override
+ public void createSource(StringBuilder source, String lineDelimiter, PropertyMap context, IImportValidator validator) {
+ //use newlines on multi-dimensional arrays and annotation arrays only
+ String blockSeparator = m_formatWithNewlines ? lineDelimiter : " ";
+ source.append('{');
+ source.append(blockSeparator);
+ int n = m_elements.size();
+ if (n > 0) {
+ int i = 0;
+ for (ISourceBuilder element : m_elements) {
+ if (i > 0) {
+ source.append(',');
+ source.append(blockSeparator);
+ }
+ element.createSource(source, lineDelimiter, context, validator);
+ i++;
+ }
+ source.append(blockSeparator);
+ }
+ source.append('}');
+ }
+ }
}
diff --git a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/util/CoreUtils.java b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/util/CoreUtils.java
index 829dfea..49b9b7b 100644
--- a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/util/CoreUtils.java
+++ b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/util/CoreUtils.java
@@ -118,6 +118,34 @@
}
/**
+ * Compares the given double values. Returns {@code true} if the difference between the two double values is bigger than
+ * the given delta.<br>
+ * <br>
+ * Special cases:
+ * <ul>
+ * <li>{@code -0} and {@code +0} are considered to be equal even though
+ * {@code Double.valueOf(0d).equals(Double.valueOf(-0d))} returns {@code false}!</li>
+ * <li>{@link Double#NaN} and {@link Double#NaN} are considered to be equal even though {@code Double.NaN == Double.NaN}
+ * returns {@code false}!</li>
+ * </ul>
+ *
+ * @param d1
+ * The first double value
+ * @param d2
+ * The second double value
+ * @param delta
+ * The difference between the two to be considered equal.
+ * @return {@code false} if the difference between the two values is less or equal to the given delta.
+ */
+ public static boolean isDoubleDifferent(final double d1, final double d2, final double delta) {
+ if (Double.compare(d1, d2) == 0) {
+ // handles NaN, Double.POSITIVE_INFINITY and Double.NEGATIVE_INFINITY
+ return false;
+ }
+ return !(Math.abs(d1 - d2) <= Math.abs(delta));
+ }
+
+ /**
* Creates a new key pair (private and public key) compatible with the Scout Runtime.<br>
* <b>This method must behave exactly like the one implemented in
* org.eclipse.scout.rt.platform.security.SecurityUtility.generateKeyPair().</b>
@@ -280,8 +308,8 @@
}
/**
- * Converts the given string into a string literal with leading and ending double-quotes including escaping of the
- * given string.<br>
+ * Converts the given string into a string literal with leading and ending double-quotes including escaping of the given
+ * string.<br>
* This is the inverse function of {@link #fromStringLiteral(String)}.
*
* @param s
@@ -458,8 +486,8 @@
}
/**
- * If the given name is a reserved java keyword a suffix is added to ensure it is a valid name to use e.g. for
- * variables or parameters.
+ * If the given name is a reserved java keyword a suffix is added to ensure it is a valid name to use e.g. for variables
+ * or parameters.
*
* @param parameterName
* The original name.
@@ -707,8 +735,8 @@
* @param env
* The context to search in.
* @param typeToSearchFqn
- * The fully qualified name to search. See {@link IJavaEnvironment#existsType(String)} for detailed
- * constraints on the name.
+ * The fully qualified name to search. See {@link IJavaEnvironment#existsType(String)} for detailed constraints
+ * on the name.
* @return <code>true</code> if the given type exists, <code>false</code> otherwise.
*/
public static boolean isOnClasspath(IJavaEnvironment env, String typeToSearchFqn) {
@@ -1015,8 +1043,8 @@
}
/**
- * Moves the given directory to the given target directory. This means after this method call the source directory
- * does not exist anymore and the target directory contains a new folder with the name of the source and its content.
+ * Moves the given directory to the given target directory. This means after this method call the source directory does
+ * not exist anymore and the target directory contains a new folder with the name of the source and its content.
*
* @param sourceDir
* Must be an existing directory.
@@ -1198,8 +1226,8 @@
* The base {@link URI} from which point the relative {@link URI} should be created. Must not be
* <code>null</code>.
* @param child
- * The target {@link URI} that should be relatively expressed from the point of the base {@link URI}. Must
- * not be <code>null</code>.
+ * The target {@link URI} that should be relatively expressed from the point of the base {@link URI}. Must not
+ * be <code>null</code>.
* @return A new relative {@link URI} to get to the child {@link URI} from the base {@link URI}.
*/
public static URI relativizeURI(URI base, URI child) {
diff --git a/org.eclipse.scout.sdk.p2/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.p2/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.p2/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.p2/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.p2/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.p2/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.p2/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.p2/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.p2/pom.xml b/org.eclipse.scout.sdk.p2/pom.xml
index d9dacbd..87712b4 100644
--- a/org.eclipse.scout.sdk.p2/pom.xml
+++ b/org.eclipse.scout.sdk.p2/pom.xml
@@ -23,7 +23,7 @@
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk.p2</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Eclipse Scout SDK P2</name>
<description>Eclipse Scout SDK - Eclipse Features/Repository</description>
@@ -39,9 +39,9 @@
</modules>
<properties>
- <scout.base.version>7.0.300</scout.base.version>
+ <scout.base.version>8.0.0</scout.base.version>
<base.version>${scout.base.version}</base.version>
- <org.eclipse.scout.rt_version>7.0.300-SNAPSHOT</org.eclipse.scout.rt_version>
+ <org.eclipse.scout.rt_version>8.0.0-SNAPSHOT</org.eclipse.scout.rt_version>
</properties>
<dependencyManagement>
@@ -186,7 +186,7 @@
<scm>
<connection>scm:git:git://git.eclipse.org/gitroot/scout/org.eclipse.scout.sdk.git</connection>
<developerConnection>scm:git:ssh://${eclipse_gerrit_username}@git.eclipse.org:29418/scout/org.eclipse.scout.sdk</developerConnection>
- <tag>releases/7.0.x</tag>
+ <tag>releases/8.0.x</tag>
<url>http://git.eclipse.org/c/scout/org.eclipse.scout.sdk.git/</url>
</scm>
diff --git a/org.eclipse.scout.sdk.s2e.doc/.project b/org.eclipse.scout.sdk.s2e.doc/.project
index 6bc0630..990144e 100644
--- a/org.eclipse.scout.sdk.s2e.doc/.project
+++ b/org.eclipse.scout.sdk.s2e.doc/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk.s2e.doc/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk.s2e.doc/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk.s2e.doc/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk.s2e.doc/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk.s2e.doc/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.s2e.doc/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.s2e.doc/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.s2e.doc/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.s2e.doc/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.s2e.doc/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.s2e.doc/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.s2e.doc/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/scout_user_guide.html b/org.eclipse.scout.sdk.s2e.doc/html/scout_user_guide.html
index 788b224..eed0c8f 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/scout_user_guide.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/scout_user_guide.html
@@ -27,7 +27,7 @@
<div id="header">
<h1>Eclipse Scout User Guide</h1>
<div class="details">
- <span id="revnumber">version 7.0</span>
+ <span id="revnumber">version 8.0</span>
</div>
</div>
<div id="content">
@@ -42,7 +42,7 @@
</div>
<hr>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/scout_user_guide.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/scout_user_guide.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
<table border="0" class="navigation" style="width: 100%;" summary="navigation">
@@ -59,9 +59,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk.html
index 265b925..8e43990 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk.html
@@ -62,7 +62,7 @@
</div>
<hr>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -82,9 +82,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_editor_java.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_editor_java.html
index 5284074..6d9b269 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_editor_java.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_editor_java.html
@@ -116,7 +116,7 @@
<p>Go back to the <a href="sdk.html">Scout Tooling</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_editor_java.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_editor_java.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -135,9 +135,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_editor_nls.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_editor_nls.html
index 4db5ca6..b3c486c 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_editor_nls.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_editor_nls.html
@@ -159,7 +159,7 @@
<p>Go back to the <a href="sdk.html">Scout Tooling</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_editor_nls.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_editor_nls.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -178,9 +178,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard.html
index b246709..45bb478 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard.html
@@ -77,7 +77,7 @@
<p>Go back to the <a href="sdk.html">Scout Tooling</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_wizard.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_wizard.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -96,9 +96,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_code-type.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_code-type.html
index d16d1af..6d4a3b1 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_code-type.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_code-type.html
@@ -112,7 +112,7 @@
<p>Go back to the <a href="sdk_wizard.html">Scout Wizards</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_code-type.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_code-type.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -131,9 +131,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_form.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_form.html
index d783e55..753fc5c 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_form.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_form.html
@@ -150,7 +150,7 @@
<p>Go back to the <a href="sdk_wizard.html">Scout Wizards</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_form.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_form.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -169,9 +169,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_language.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_language.html
index 65bd392..3465b8c 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_language.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_language.html
@@ -67,7 +67,7 @@
<p>Go back to the <a href="sdk_wizard.html">Scout Wizards</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_language.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_language.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -85,9 +85,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_lookupcall.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_lookupcall.html
index 19f9ece..03e3065 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_lookupcall.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_lookupcall.html
@@ -130,7 +130,7 @@
<p>Go back to the <a href="sdk_wizard.html">Scout Wizards</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_lookupcall.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_lookupcall.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -149,9 +149,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_nls-entry.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_nls-entry.html
index 620c1fa..4ca5b0b 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_nls-entry.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_nls-entry.html
@@ -79,7 +79,7 @@
<p>Go back to the <a href="sdk_wizard.html">Scout Wizards</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_nls-entry.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_nls-entry.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -97,9 +97,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_page.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_page.html
index 38c5981..5756043 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_page.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_page.html
@@ -125,7 +125,7 @@
<p>Go back to the <a href="sdk_wizard.html">Scout Wizards</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_page.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_page.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -144,9 +144,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_permission.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_permission.html
index 60511f0..36e548e 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_permission.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_permission.html
@@ -100,7 +100,7 @@
<p>Go back to the <a href="sdk_wizard.html">Scout Wizards</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_permission.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_permission.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -119,9 +119,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_project.html b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_project.html
index 6242033..c982039 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_project.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/sdk_wizard_project.html
@@ -165,7 +165,7 @@
<p>Go back to the <a href="sdk_wizard.html">Scout Wizards</a>.</p>
</div>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_project.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/sdk_wizard_project.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -184,9 +184,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/tutorial.html b/org.eclipse.scout.sdk.s2e.doc/html/tutorial.html
index afcba0f..c84d79b 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/tutorial.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/tutorial.html
@@ -41,7 +41,7 @@
</div>
<hr>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/tutorial.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/tutorial.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -60,9 +60,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/tutorial_existingdemo.html b/org.eclipse.scout.sdk.s2e.doc/html/tutorial_existingdemo.html
index 9e5b012..7830fa5 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/tutorial_existingdemo.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/tutorial_existingdemo.html
@@ -274,7 +274,7 @@
</div>
<hr>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/tutorial_existingdemo.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/tutorial_existingdemo.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -293,9 +293,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/html/tutorial_helloworld.html b/org.eclipse.scout.sdk.s2e.doc/html/tutorial_helloworld.html
index ea26da6..a82f39b 100644
--- a/org.eclipse.scout.sdk.s2e.doc/html/tutorial_helloworld.html
+++ b/org.eclipse.scout.sdk.s2e.doc/html/tutorial_helloworld.html
@@ -133,7 +133,7 @@
</div>
<hr>
<div class="paragraph">
- <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/7.0.x/docs/build/eclipse_help/src/docs/tutorial_helloworld.adoc" target="_blank">sources</a> on GitHub.</p>
+ <p>Do you want to improve this document? Have a look at the <a href="https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/blob/releases/8.0.x/docs/build/eclipse_help/src/docs/tutorial_helloworld.adoc" target="_blank">sources</a> on GitHub.</p>
</div>
</div>
</div>
@@ -152,9 +152,9 @@
</table>
<div id="footer">
<div id="footer-text">
- Version 7.0
- <br> Last updated 2017-05-26 14:49:24 CEST
+ Version 8.0
+ <br> Last updated 2018-04-03 14:49:24 CEST
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/org.eclipse.scout.sdk.s2e.doc/pom.xml b/org.eclipse.scout.sdk.s2e.doc/pom.xml
index 41b4bc0..32601ac 100644
--- a/org.eclipse.scout.sdk.s2e.doc/pom.xml
+++ b/org.eclipse.scout.sdk.s2e.doc/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
@@ -29,7 +29,7 @@
<properties>
<bundle.symbolicName>${project.artifactId}</bundle.symbolicName>
<bundle.namespace>${project.artifactId}</bundle.namespace>
- <bundle.version>7.0.300</bundle.version>
+ <bundle.version>8.0.0</bundle.version>
</properties>
<dependencies>
diff --git a/org.eclipse.scout.sdk.s2e.nls/.project b/org.eclipse.scout.sdk.s2e.nls/.project
index 3306467..665064a 100644
--- a/org.eclipse.scout.sdk.s2e.nls/.project
+++ b/org.eclipse.scout.sdk.s2e.nls/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk.s2e.nls/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk.s2e.nls/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk.s2e.nls/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk.s2e.nls/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk.s2e.nls/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.s2e.nls/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.s2e.nls/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.s2e.nls/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.s2e.nls/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.s2e.nls/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.s2e.nls/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.s2e.nls/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.s2e.nls/plugin.xml b/org.eclipse.scout.sdk.s2e.nls/plugin.xml
index 072da76..4b91d89 100644
--- a/org.eclipse.scout.sdk.s2e.nls/plugin.xml
+++ b/org.eclipse.scout.sdk.s2e.nls/plugin.xml
@@ -53,7 +53,7 @@
</javaCompletionProposalComputer>
</extension>
<extension point="org.eclipse.ui.menus">
- <menuContribution locationURI="menu:org.eclipse.scout.sdk.s2e.ui.menu?after=org.eclipse.scout.sdk.s2e.ui.menu.missingClassIdSelected">
+ <menuContribution locationURI="menu:org.eclipse.scout.sdk.s2e.ui.menu?after=org.eclipse.scout.sdk.s2e.ui.menu.searchForDuplicateClassIdValues">
<separator
name="org.eclipse.scout.sdk.s2e.nls.menu.separator01"
visible="true">
diff --git a/org.eclipse.scout.sdk.s2e.nls/pom.xml b/org.eclipse.scout.sdk.s2e.nls/pom.xml
index 85bbd39..3365358 100644
--- a/org.eclipse.scout.sdk.s2e.nls/pom.xml
+++ b/org.eclipse.scout.sdk.s2e.nls/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
@@ -29,7 +29,7 @@
<properties>
<bundle.symbolicName>${project.artifactId}</bundle.symbolicName>
<bundle.namespace>${project.artifactId}</bundle.namespace>
- <bundle.version>7.0.300</bundle.version>
+ <bundle.version>8.0.0</bundle.version>
</properties>
<dependencies>
@@ -74,7 +74,7 @@
*;ui.workbench=!
</Import-Package>
<Require-Bundle>
- org.eclipse.scout.sdk.s2e;bundle-version="[7.0,7.1)";visibility:=reexport,
+ org.eclipse.scout.sdk.s2e;bundle-version="[8.0,8.1)";visibility:=reexport,
org.eclipse.jdt.ui;bundle-version="[3.12,4)";visibility:=reexport,
org.eclipse.ui.editors;bundle-version="[3.10,4)";visibility:=reexport,
org.eclipse.jface;bundle-version="[3.12,4)";visibility:=reexport,
diff --git a/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/search/NlsFindMissingKeysJob.java b/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/search/NlsFindMissingKeysJob.java
index ca2dd63..dd39bae 100644
--- a/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/search/NlsFindMissingKeysJob.java
+++ b/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/search/NlsFindMissingKeysJob.java
@@ -45,8 +45,8 @@
import org.eclipse.scout.sdk.s2e.nls.internal.ui.formatter.InputValidator;
import org.eclipse.scout.sdk.s2e.nls.project.INlsProject;
import org.eclipse.scout.sdk.s2e.util.EclipseWorkspaceWalker;
-import org.eclipse.scout.sdk.s2e.util.S2eUtils;
import org.eclipse.scout.sdk.s2e.util.EclipseWorkspaceWalker.WorkspaceFile;
+import org.eclipse.scout.sdk.s2e.util.S2eUtils;
import org.eclipse.search.ui.text.Match;
/**
@@ -75,7 +75,7 @@
final String nlsKeyPattern = InputValidator.REGEX_NLS_KEY_NAME.pattern();
final Pattern jsonTextKeyPat = Pattern.compile("\\$\\{textKey:(" + nlsKeyPattern + ')');
final Pattern jsTextKeyPat = Pattern.compile("session\\.text\\(('?)(" + nlsKeyPattern + ")('?)");
- m_patternsByFileType.put(SuffixConstants.EXTENSION_java, Collections.singletonList(Pattern.compile("TEXTS\\.get\\((\"?)(" + nlsKeyPattern + ")(\"?)")));
+ m_patternsByFileType.put(SuffixConstants.EXTENSION_java, Collections.singletonList(Pattern.compile("TEXTS\\.get\\((?:[a-zA-Z0-9_]+,\\s*)?(\"?)(" + nlsKeyPattern + ")(\"?)")));
m_patternsByFileType.put("json", Collections.singletonList(jsonTextKeyPat));
m_patternsByFileType.put("js", Arrays.asList(jsTextKeyPat, jsonTextKeyPat));
m_patternsByFileType.put("html", Arrays.asList(Pattern.compile("\\<scout:message key=\"(" + nlsKeyPattern + ")\"\\s*/?\\>"), jsTextKeyPat, jsonTextKeyPat));
diff --git a/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/simpleproject/SimpleNlsProject.java b/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/simpleproject/SimpleNlsProject.java
index 0700531..083350a 100644
--- a/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/simpleproject/SimpleNlsProject.java
+++ b/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/simpleproject/SimpleNlsProject.java
@@ -136,7 +136,7 @@
return resourceName.matches(prefix + "(_[a-zA-Z]{2}){0,3}" + "\\.properties");
}
- private void createTranslationFile(Language language, IFolder folder, IProgressMonitor monitor) throws CoreException {
+ private void createTranslationFile(Language language, IFolder folder, IProgressMonitor monitor) {
String fileName = getLocalizedPropertiesFileName(getNlsType().getTranslationsPrefix(), language);
IFile file = folder.getFile(new Path(fileName));
if (!file.exists()) {
@@ -158,12 +158,7 @@
@Override
public void execute(IProgressMonitor monitor) {
- try {
- createTranslationFile(m_model.getLanguage(), m_model.getFolder(), new NullProgressMonitor());
- }
- catch (CoreException e) {
- SdkLog.error("Unable to create new language.", e);
- }
+ createTranslationFile(m_model.getLanguage(), m_model.getFolder(), new NullProgressMonitor());
}
@Override
diff --git a/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/simpleproject/WorkspaceTranslationFile.java b/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/simpleproject/WorkspaceTranslationFile.java
index 4b9ffde..64cfa9e 100644
--- a/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/simpleproject/WorkspaceTranslationFile.java
+++ b/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/simpleproject/WorkspaceTranslationFile.java
@@ -146,7 +146,7 @@
S2eUtils.writeFiles(Collections.singletonList(new ResourceWriteOperation(m_file, builder.toString())), monitor, true);
}
- catch (IOException | CoreException e) {
+ catch (IOException e) {
SdkLog.error("could not refresh file: {}", m_file.getName(), e);
}
}
diff --git a/org.eclipse.scout.sdk.s2e.releng/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.s2e.releng/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.s2e.releng/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.s2e.releng/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.s2e.releng/pom.xml b/org.eclipse.scout.sdk.s2e.releng/pom.xml
index 5992033..335fb54 100644
--- a/org.eclipse.scout.sdk.s2e.releng/pom.xml
+++ b/org.eclipse.scout.sdk.s2e.releng/pom.xml
@@ -15,7 +15,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
diff --git a/org.eclipse.scout.sdk.s2e.test/.project b/org.eclipse.scout.sdk.s2e.test/.project
index a68246b..9c81616 100644
--- a/org.eclipse.scout.sdk.s2e.test/.project
+++ b/org.eclipse.scout.sdk.s2e.test/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk.s2e.test/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk.s2e.test/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk.s2e.test/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk.s2e.test/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk.s2e.test/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.s2e.test/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.s2e.test/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.s2e.test/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.s2e.test/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.s2e.test/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.s2e.test/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.s2e.test/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.s2e.test/pom.xml b/org.eclipse.scout.sdk.s2e.test/pom.xml
index 0c31a93..46539fa 100644
--- a/org.eclipse.scout.sdk.s2e.test/pom.xml
+++ b/org.eclipse.scout.sdk.s2e.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
diff --git a/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceNewOperationTest.java b/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceNewOperationTest.java
index 30aeeff..adf24b6 100644
--- a/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceNewOperationTest.java
+++ b/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceNewOperationTest.java
@@ -185,13 +185,8 @@
}
@Override
- protected void createDerivedResources(IProgressMonitor monitor, IWorkingCopyManager workingCopyManager) throws CoreException {
- try {
- CoreScoutTestingUtils.runMavenCleanCompile(getJaxWsProject().getProject().getLocation().toFile());
- }
- catch (IOException e) {
- throw new CoreException(new ScoutStatus(e));
- }
+ protected void createDerivedResources(IProgressMonitor monitor, IWorkingCopyManager workingCopyManager) {
+ CoreScoutTestingUtils.runMavenCleanCompile(getJaxWsProject().getProject().getLocation().toFile());
}
};
op.setCreateConsumer(isConsumer);
diff --git a/org.eclipse.scout.sdk.s2e.ui/.project b/org.eclipse.scout.sdk.s2e.ui/.project
index 8dc84d3..3f02d2b 100644
--- a/org.eclipse.scout.sdk.s2e.ui/.project
+++ b/org.eclipse.scout.sdk.s2e.ui/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk.s2e.ui/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk.s2e.ui/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk.s2e.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk.s2e.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk.s2e.ui/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.s2e.ui/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.s2e.ui/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.s2e.ui/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.s2e.ui/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.s2e.ui/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.s2e.ui/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.s2e.ui/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.s2e.ui/plugin.xml b/org.eclipse.scout.sdk.s2e.ui/plugin.xml
index 505b78d..d9ce547 100644
--- a/org.eclipse.scout.sdk.s2e.ui/plugin.xml
+++ b/org.eclipse.scout.sdk.s2e.ui/plugin.xml
@@ -103,6 +103,12 @@
tooltip="Creates all @ClassId Annotations on classes in the selected scope that support the annotation but currently don't have one."
style="push">
</command>
+ <command
+ commandId="org.eclipse.scout.sdk.s2e.ui.commands.searchForDuplicateClassIdValues"
+ id="org.eclipse.scout.sdk.s2e.ui.menu.searchForDuplicateClassIdValues"
+ tooltip="Searches duplicate @ClassId Values in the current Workspace and marks all findings with Error Markers in the Problems View."
+ style="push">
+ </command>
</menu>
</menuContribution>
</extension>
@@ -190,22 +196,22 @@
id="org.eclipse.scout.sdk.s2e.ui.commands.category">
</category>
<command
- name="Update all derived resources..."
+ name="Update all Derived Resources..."
id="org.eclipse.scout.sdk.s2e.ui.commands.triggerAllTypeChangedHandlers"
categoryId="org.eclipse.scout.sdk.s2e.ui.commands.category">
</command>
<command
- name="Update derived resources in selected scope..."
+ name="Update Derived Resources in selected Scope..."
id="org.eclipse.scout.sdk.s2e.ui.commands.triggerSelectedTypeChangedHandlers"
categoryId="org.eclipse.scout.sdk.s2e.ui.commands.category">
</command>
<command
- name="Wellform all Scout classes..."
+ name="Wellform all Scout Classes..."
id="org.eclipse.scout.sdk.s2e.ui.commands.wellform"
categoryId="org.eclipse.scout.sdk.s2e.ui.commands.category">
</command>
<command
- name="Wellform classes in selected scope"
+ name="Wellform Classes in selected Scope"
id="org.eclipse.scout.sdk.s2e.ui.commands.wellformSelected"
categoryId="org.eclipse.scout.sdk.s2e.ui.commands.category">
</command>
@@ -215,7 +221,12 @@
categoryId="org.eclipse.scout.sdk.s2e.ui.commands.category">
</command>
<command
- name="Create missing @ClassId Annotations in selected scope"
+ name="Search for duplicate @ClassId Values"
+ id="org.eclipse.scout.sdk.s2e.ui.commands.searchForDuplicateClassIdValues"
+ categoryId="org.eclipse.scout.sdk.s2e.ui.commands.category">
+ </command>
+ <command
+ name="Create missing @ClassId Annotations in selected Scope"
id="org.eclipse.scout.sdk.s2e.ui.commands.missingClassIdSelected"
categoryId="org.eclipse.scout.sdk.s2e.ui.commands.category">
</command>
@@ -242,6 +253,10 @@
class="org.eclipse.scout.sdk.s2e.ui.internal.handler.CreateAllMissingClassIdsHandler">
</handler>
<handler
+ commandId="org.eclipse.scout.sdk.s2e.ui.commands.searchForDuplicateClassIdValues"
+ class="org.eclipse.scout.sdk.s2e.ui.internal.handler.SearchDuplicateClassIdValuesHandler">
+ </handler>
+ <handler
commandId="org.eclipse.scout.sdk.s2e.ui.commands.missingClassIdSelected"
class="org.eclipse.scout.sdk.s2e.ui.internal.handler.CreateSelectedMissingClassIdsHandler">
</handler>
diff --git a/org.eclipse.scout.sdk.s2e.ui/pom.xml b/org.eclipse.scout.sdk.s2e.ui/pom.xml
index 2537fcd..094e8ca 100644
--- a/org.eclipse.scout.sdk.s2e.ui/pom.xml
+++ b/org.eclipse.scout.sdk.s2e.ui/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
@@ -29,7 +29,7 @@
<properties>
<bundle.symbolicName>${project.artifactId}</bundle.symbolicName>
<bundle.namespace>${project.artifactId}</bundle.namespace>
- <bundle.version>7.0.300</bundle.version>
+ <bundle.version>8.0.0</bundle.version>
</properties>
<dependencies>
@@ -89,9 +89,11 @@
*
</Import-Package>
<Require-Bundle>
- org.eclipse.scout.sdk.s2e;bundle-version="[7.0,7.1)";visibility:=reexport,
- org.eclipse.scout.sdk.s2e.doc;bundle-version="[7.0,7.1)";visibility:=reexport,
+ org.eclipse.scout.sdk.s2e;bundle-version="[8.0,8.1)";visibility:=reexport,
+ org.eclipse.scout.sdk.s2e.doc;bundle-version="[8.0,8.1)";visibility:=reexport,
org.eclipse.jdt.ui;bundle-version="[3.12,4)";visibility:=reexport,
+ org.eclipse.jdt.core.manipulation;bundle-version="[1.7,2)";visibility:=reexport,
+ org.eclipse.jdt.debug.ui;bundle-version="[3.7.200,4)";visibility:=reexport,
org.eclipse.ui.ide;bundle-version="[3.12,4)";visibility:=reexport,
org.eclipse.ui.workbench;bundle-version="[3.108,4)";visibility:=reexport,
org.eclipse.ui.workbench.texteditor;bundle-version="[3.10,4)";visibility:=reexport,
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/S2ESdkUiActivator.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/S2ESdkUiActivator.java
index 852696d..b0a5daa 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/S2ESdkUiActivator.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/S2ESdkUiActivator.java
@@ -15,6 +15,8 @@
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.jdt.internal.debug.ui.DetailFormatter;
+import org.eclipse.jdt.internal.debug.ui.JavaDetailFormattersManager;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.ImageDescriptor;
@@ -22,6 +24,7 @@
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.m2e.core.internal.preferences.MavenPreferenceConstants;
import org.eclipse.m2e.core.ui.internal.M2EUIPluginActivator;
+import org.eclipse.scout.sdk.core.s.IScoutRuntimeTypes;
import org.eclipse.scout.sdk.core.sourcebuilder.comment.CommentSourceBuilderFactory;
import org.eclipse.scout.sdk.core.util.SdkConsole;
import org.eclipse.scout.sdk.core.util.SdkLog;
@@ -49,6 +52,7 @@
private static S2ESdkUiActivator plugin;
private IPropertyChangeListener m_preferencesPropertyListener;
+ private DetailFormatter m_iDataObjectDetailFormatter;
@Override
public void start(BundleContext context) throws Exception {
@@ -86,6 +90,9 @@
// modify default m2e settings
setDefaultMavenSettings();
+ // register detail formatters
+ registerDetailFormatters();
+
// start DTO auto-update manager if required
getPreferenceStore().setDefault(IDerivedResourceManager.PROP_AUTO_UPDATE, true);
ScoutSdkCore.getDerivedResourceManager().setEnabled(getPreferenceStore().getBoolean(IDerivedResourceManager.PROP_AUTO_UPDATE));
@@ -95,7 +102,17 @@
ClassIdGenerators.setAutomaticallyCreateClassIdAnnotation(getPreferenceStore().getBoolean(ClassIdGenerators.PROP_AUTOMATICALLY_CREATE_CLASS_ID_ANNOTATION));
// start class id validation
- ClassIdValidationJob.executeAsync(TimeUnit.MINUTES.toMillis(5));
+ ClassIdValidationJob.executeAsync(TimeUnit.MINUTES.toMillis(5), false);
+ }
+
+ private void registerDetailFormatters() {
+ String src = "return " + IScoutRuntimeTypes.BEANS + ".get(org.eclipse.scout.rt.platform.dataobject.IPrettyPrintDataObjectMapper.class).writeValue(this);";
+ m_iDataObjectDetailFormatter = new DetailFormatter(IScoutRuntimeTypes.IDataObject, src, true);
+ JavaDetailFormattersManager.getDefault().setAssociatedDetailFormatter(m_iDataObjectDetailFormatter);
+ }
+
+ private void deregisterDetailFormatters() {
+ m_iDataObjectDetailFormatter = null;
}
@Override
@@ -109,6 +126,8 @@
SdkConsole.setConsoleSpi(null); // reset to default
+ deregisterDetailFormatters();
+
plugin = null;
super.stop(context);
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/handler/CreateSelectedMissingClassIdsHandler.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/handler/CreateSelectedMissingClassIdsHandler.java
index 11b0eaa..6da6f3c 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/handler/CreateSelectedMissingClassIdsHandler.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/handler/CreateSelectedMissingClassIdsHandler.java
@@ -16,7 +16,6 @@
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
import org.eclipse.scout.sdk.core.util.SdkLog;
import org.eclipse.scout.sdk.s2e.classid.MissingClassIdsNewOperation;
import org.eclipse.scout.sdk.s2e.job.ResourceBlockingOperationJob;
@@ -40,23 +39,9 @@
}
final IOperation operation = new MissingClassIdsNewOperation()
- .withFilter(res -> isInResources(resourcesFromSelection, res));
+ .withSelection(resourcesFromSelection);
- new ResourceBlockingOperationJob(operation, resourcesFromSelection.toArray(new IResource[resourcesFromSelection.size()]))
- .schedule();
+ new ResourceBlockingOperationJob(operation, resourcesFromSelection.toArray(new IResource[resourcesFromSelection.size()])).schedule();
return null;
}
-
- protected static boolean isInResources(final Set<IResource> resourcesFromSelection, final IResource candidate) {
- if (resourcesFromSelection == null) {
- return true;
- }
- final IPath location = candidate.getLocation();
- for (IResource r : resourcesFromSelection) {
- if (r.getLocation().isPrefixOf(location)) {
- return true;
- }
- }
- return false;
- }
}
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/handler/SearchDuplicateClassIdValuesHandler.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/handler/SearchDuplicateClassIdValuesHandler.java
new file mode 100644
index 0000000..5f0728b
--- /dev/null
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/handler/SearchDuplicateClassIdValuesHandler.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * 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.sdk.s2e.ui.internal.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.scout.sdk.s2e.classid.ClassIdValidationJob;
+
+/**
+ * <h3>{@link SearchDuplicateClassIdValuesHandler}</h3>
+ *
+ * @since 8.0.0
+ */
+public class SearchDuplicateClassIdValuesHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ ClassIdValidationJob.executeAsync(0, true);
+ return null;
+ }
+}
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/AbstractTypeProposal.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/AbstractTypeProposal.java
index 3c4231c..8183dba 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/AbstractTypeProposal.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/AbstractTypeProposal.java
@@ -31,15 +31,14 @@
import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
import org.eclipse.jdt.core.dom.rewrite.ITrackedNodePosition;
import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
-import org.eclipse.jdt.internal.corext.codemanipulation.StubUtility;
import org.eclipse.jdt.internal.corext.fix.LinkedProposalModel;
import org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroup;
-import org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroup.PositionInformation;
import org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroup.Proposal;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.JavaUIStatus;
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
import org.eclipse.jdt.internal.ui.viewsupport.BindingLabelProvider;
+import org.eclipse.jdt.ui.CodeStyleConfiguration;
import org.eclipse.jdt.ui.JavaElementLabels;
import org.eclipse.jdt.ui.SharedASTProvider;
import org.eclipse.jdt.ui.text.java.correction.CUCorrectionProposal;
@@ -218,10 +217,10 @@
new LinkedAsyncProposalModelPresenter().enterLinkedMode(viewer, part, didOpenEditor(), m_linkedProposalModel);
}
else if (part instanceof ITextEditor) {
- LinkedProposalPositionGroup.PositionInformation endPosition = m_linkedProposalModel.getEndPosition();
+ Object endPosition = PositionInformationBridge.getEndPosition(m_linkedProposalModel);
if (endPosition != null) {
// select a result
- int pos = endPosition.getOffset() + endPosition.getLength();
+ int pos = PositionInformationBridge.getOffset(endPosition) + PositionInformationBridge.getLength(endPosition);
((ITextEditor) part).selectAndReveal(pos, 0);
}
}
@@ -250,12 +249,12 @@
m_asyncProposalProviders.add(newGroup);
if (group != null) {
// already added positions. copy over
- for (PositionInformation info : group.getPositions()) {
- newGroup.addPosition(info);
+ for (Object info : PositionInformationBridge.getPositions(group)) {
+ PositionInformationBridge.addPosition(newGroup, info);
}
}
group = newGroup;
- m_linkedProposalModel.addPositionGroup(group);
+ PositionInformationBridge.addPositionGroup(m_linkedProposalModel, group);
}
}
@@ -336,7 +335,7 @@
@Override
public TextEdit computeEdits(int offset, LinkedPosition position, char trigger, int stateMask, LinkedModeModel model) throws CoreException {
- ImportRewrite impRewrite = StubUtility.createImportRewrite(m_compilationUnit, true);
+ ImportRewrite impRewrite = CodeStyleConfiguration.createImportRewrite(m_compilationUnit, true);
String replaceString = impRewrite.addImport(m_typeProposal);
MultiTextEdit composedEdit = new MultiTextEdit();
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/LinkedAsyncProposalModelPresenter.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/LinkedAsyncProposalModelPresenter.java
index 4674047..78ed8f0 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/LinkedAsyncProposalModelPresenter.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/LinkedAsyncProposalModelPresenter.java
@@ -15,7 +15,6 @@
import org.eclipse.jdt.internal.corext.fix.LinkedProposalModel;
import org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroup;
-import org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroup.PositionInformation;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.javaeditor.EditorHighlightingSynchronizer;
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
@@ -82,27 +81,28 @@
LinkedProposalPositionGroup curr = iterator.next();
LinkedPositionGroup group = new LinkedPositionGroup();
- LinkedProposalPositionGroup.PositionInformation[] positions = curr.getPositions();
+
+ Object[] positions = PositionInformationBridge.getPositions(curr);
if (positions.length > 0) {
if (curr instanceof ICompletionProposalProvider) {
// lazy provider
for (int i = 0; i < positions.length; i++) {
- LinkedProposalPositionGroup.PositionInformation pos = positions[i];
- if (pos.getOffset() != -1) {
+ Object pos = positions[i];
+ if (PositionInformationBridge.getOffset(pos) != -1) {
ICompletionProposalProvider proposalProvider = (ICompletionProposalProvider) curr;
if (display != null) {
proposalProvider.addListener(listener);
}
- group.addPosition(new AsyncProposalPosition(document, pos.getOffset(), pos.getLength(), pos.getSequenceRank(), proposalProvider, model));
+ group.addPosition(new AsyncProposalPosition(document, PositionInformationBridge.getOffset(pos), PositionInformationBridge.getLength(pos), PositionInformationBridge.getSequenceRank(pos), proposalProvider, model));
}
}
}
else {
LinkedProposalPositionGroup.Proposal[] linkedModeProposals = curr.getProposals();
if (linkedModeProposals.length <= 1) {
- for (PositionInformation pos : positions) {
- if (pos.getOffset() != -1) {
- group.addPosition(new LinkedPosition(document, pos.getOffset(), pos.getLength(), pos.getSequenceRank()));
+ for (Object pos : positions) {
+ if (PositionInformationBridge.getOffset(pos) != -1) {
+ group.addPosition(new LinkedPosition(document, PositionInformationBridge.getOffset(pos), PositionInformationBridge.getLength(pos), PositionInformationBridge.getSequenceRank(pos)));
}
}
}
@@ -112,9 +112,9 @@
proposalImpls[i] = new LinkedPositionProposalImpl(linkedModeProposals[i], model);
}
- for (PositionInformation pos : positions) {
- if (pos.getOffset() != -1) {
- group.addPosition(new ProposalPosition(document, pos.getOffset(), pos.getLength(), pos.getSequenceRank(), proposalImpls));
+ for (Object pos : positions) {
+ if (PositionInformationBridge.getOffset(pos) != -1) {
+ group.addPosition(new ProposalPosition(document, PositionInformationBridge.getOffset(pos), PositionInformationBridge.getLength(pos), PositionInformationBridge.getSequenceRank(pos), proposalImpls));
}
}
}
@@ -131,9 +131,13 @@
final LinkedModeUI ui = new EditorLinkedModeUI(model, viewer);
holder[0] = ui;
- LinkedProposalPositionGroup.PositionInformation endPosition = linkedProposalModel.getEndPosition();
- if (endPosition != null && endPosition.getOffset() != -1) {
- ui.setExitPosition(viewer, endPosition.getOffset() + endPosition.getLength(), 0, Integer.MAX_VALUE);
+ Object endPosition = PositionInformationBridge.getEndPosition(linkedProposalModel);
+ int offset = -1;
+ if (endPosition != null) {
+ offset = PositionInformationBridge.getOffset(endPosition);
+ }
+ if (offset != -1) {
+ ui.setExitPosition(viewer, offset + PositionInformationBridge.getLength(endPosition), 0, Integer.MAX_VALUE);
}
else if (!switchedEditor) {
int cursorPosition = viewer.getSelectedRange().x;
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/PositionInformationBridge.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/PositionInformationBridge.java
new file mode 100644
index 0000000..bb8fdf7
--- /dev/null
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/template/PositionInformationBridge.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * 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.sdk.s2e.ui.internal.template;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.eclipse.jdt.internal.corext.fix.LinkedProposalModel;
+import org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroup;
+import org.eclipse.scout.sdk.core.util.SdkLog;
+
+/**
+ * <h3>{@link PositionInformationBridge}</h3> This class is used to bridge the
+ *
+ * <pre>
+ * org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroup.PositionInformation
+ * </pre>
+ *
+ * to
+ *
+ * <pre>
+ * org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroupCore.PositionInformation
+ * </pre>
+ *
+ * The API of JDT did change with release Photon SR1 M2. Once Photon is not supported anymore this class can be removed.
+ */
+@SuppressWarnings("squid:S1166")
+public final class PositionInformationBridge {
+
+ private static final String POSITION_INFORMATION_FQN = "org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroupCore$PositionInformation";
+ private static final String POSITION_INFORMATION_FQN_OLD = "org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroup$PositionInformation";
+
+ private static final String LINKED_POSITION_GROUP_CORE_FQN = "org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroupCore";
+ private static final String LINKED_POSITION_GROUP_FQN = "org.eclipse.jdt.internal.corext.fix.LinkedProposalPositionGroup";
+
+ private static String[] fqnOrder = {POSITION_INFORMATION_FQN_OLD, POSITION_INFORMATION_FQN};
+
+ private PositionInformationBridge() {
+ }
+
+ @SuppressWarnings("squid:S1168")
+ public static Object[] getPositions(LinkedProposalPositionGroup group) {
+ // call with reflection
+ try {
+ Method method = LinkedProposalPositionGroup.class.getMethod("getPositions");
+ method.setAccessible(true);
+ return (Object[]) method.invoke(group);
+ }
+ catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ SdkLog.error(e);
+ return null;
+ }
+ }
+
+ public static void addPosition(LinkedAsyncProposalPositionGroup group, Object position) {
+ try {
+ Method method = LinkedProposalPositionGroup.class.getMethod("addPosition", findPostionInformationClass());
+ method.setAccessible(true);
+ method.invoke(group, position);
+ }
+ catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | ClassNotFoundException e) {
+ SdkLog.error(e);
+ }
+ }
+
+ private static Class<?> findPostionInformationClass() throws ClassNotFoundException {
+ Class<?> positionInformationClazz = null;
+ try {
+ positionInformationClazz = Class.forName(fqnOrder[0]);
+ return positionInformationClazz;
+ }
+ catch (ClassNotFoundException e) {
+ // try second
+ }
+ positionInformationClazz = Class.forName(fqnOrder[1]);
+ // switch
+ String[] newOrder = {fqnOrder[1], fqnOrder[0]};
+ fqnOrder = newOrder;
+ return positionInformationClazz;
+ }
+
+ public static Object getEndPosition(LinkedProposalModel model) {
+ // call with reflection
+ try {
+ Method method = LinkedProposalModel.class.getMethod("getEndPosition");
+ method.setAccessible(true);
+ return method.invoke(model);
+ }
+ catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ SdkLog.error(e);
+ return null;
+ }
+ }
+
+ public static int getOffset(Object positionInformation) {
+ // call with reflection
+ try {
+ Method method = positionInformation.getClass().getMethod("getOffset");
+ method.setAccessible(true);
+ Object resultRaw = method.invoke(positionInformation);
+ return ((Integer) resultRaw).intValue();
+ }
+ catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ SdkLog.error(e);
+ return -1;
+ }
+ }
+
+ public static int getLength(Object positionInformation) {
+ // call with reflection
+ try {
+ Method method = positionInformation.getClass().getMethod("getLength");
+ method.setAccessible(true);
+ Object resultRaw = method.invoke(positionInformation);
+ return ((Integer) resultRaw).intValue();
+ }
+ catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ SdkLog.error(e);
+ return -1;
+ }
+ }
+
+ public static int getSequenceRank(Object positionInformation) {
+ // call with reflection
+ try {
+ Method method = positionInformation.getClass().getMethod("getSequenceRank");
+ method.setAccessible(true);
+ Object resultRaw = method.invoke(positionInformation);
+ return ((Integer) resultRaw).intValue();
+ }
+ catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ SdkLog.error(e);
+ return -1;
+ }
+
+ }
+
+ @SuppressWarnings("squid:S1141")
+ public static void addPositionGroup(LinkedProposalModel linkedProposalModel, LinkedProposalPositionGroup group) {
+ Method method = null;
+ try {
+ try {
+ // step 1
+ method = linkedProposalModel.getClass().getMethod("addPositionGroup", Class.forName(LINKED_POSITION_GROUP_FQN));
+ }
+ catch (NoSuchMethodException | SecurityException | ClassNotFoundException e) {
+ // step 2
+ method = linkedProposalModel.getClass().getMethod("addPositionGroup", Class.forName(LINKED_POSITION_GROUP_CORE_FQN));
+ }
+ method.setAccessible(true);
+ method.invoke(linkedProposalModel, group);
+ }
+ catch (NoSuchMethodException | SecurityException | ClassNotFoundException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ SdkLog.error(e);
+ }
+ }
+
+}
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/CodeTemplateContextBridge.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/CodeTemplateContextBridge.java
new file mode 100644
index 0000000..3885964
--- /dev/null
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/CodeTemplateContextBridge.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * 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.sdk.s2e.ui.internal.util;
+
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jface.text.templates.TemplateContext;
+import org.eclipse.scout.sdk.core.util.SdkLog;
+
+/**
+ * <h3>{@link CodeTemplateContextBridge}</h3>Bridge to support Eclipse IDE 2018-12 and older.<br>
+ * The class CodeTemplateContext was moved for release 2018-12. This class can be deleted as soon as 2018-12 is the
+ * oldest supported version.
+ *
+ * @since 8.0.0
+ */
+public final class CodeTemplateContextBridge {
+
+ private static Class<?> codeTemplateContextClass;
+
+ private CodeTemplateContextBridge() {
+ }
+
+ @SuppressWarnings({"squid:S1181", "squid:S2259"})
+ public static TemplateContext createCodeTemplateContext(String contextTypeName, IJavaProject project, String lineDelim) {
+ try {
+ return (TemplateContext) getCodeTemplateContextClass()
+ .getConstructor(String.class, IJavaProject.class, String.class)
+ .newInstance(contextTypeName, project, lineDelim);
+ }
+ catch (Throwable e) {
+ SdkLog.error(e);
+ return null;
+ }
+ }
+
+ @SuppressWarnings("squid:S1166")
+ private static Class<?> getCodeTemplateContextClass() {
+ Class<?> ret = codeTemplateContextClass;
+ if (ret == null) {
+ try {
+ ret = CodeTemplateContextBridge.class.getClassLoader().loadClass("org.eclipse.jdt.internal.core.manipulation.CodeTemplateContext");
+ }
+ catch (ClassNotFoundException e) {
+ ret = loadLegacyCodeTemplateContextClass();
+ }
+ codeTemplateContextClass = ret;
+ }
+ return ret;
+ }
+
+ @SuppressWarnings("squid:S1166")
+ private static Class<?> loadLegacyCodeTemplateContextClass() {
+ try {
+ return CodeTemplateContextBridge.class.getClassLoader().loadClass("org.eclipse.jdt.internal.corext.template.java.CodeTemplateContext");
+ }
+ catch (ClassNotFoundException e1) {
+ SdkLog.error("Could not found a CodeTemplateContext class on classpath.");
+ return null;
+ }
+ }
+}
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/JdtSettingsCommentSourceBuilderDelegate.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/JdtSettingsCommentSourceBuilderDelegate.java
index 75502d3..f85eea2 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/JdtSettingsCommentSourceBuilderDelegate.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/JdtSettingsCommentSourceBuilderDelegate.java
@@ -10,11 +10,11 @@
******************************************************************************/
package org.eclipse.scout.sdk.s2e.ui.internal.util;
-import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
+import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.resources.ProjectScope;
import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
@@ -22,11 +22,7 @@
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.corext.template.java.CodeTemplateContext;
import org.eclipse.jdt.internal.corext.template.java.CodeTemplateContextType;
-import org.eclipse.jdt.internal.corext.util.Strings;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.viewsupport.ProjectTemplateStore;
import org.eclipse.jdt.ui.JavaUI;
import org.eclipse.jdt.ui.PreferenceConstants;
import org.eclipse.jface.text.BadLocationException;
@@ -54,7 +50,6 @@
import org.eclipse.scout.sdk.core.util.CoreUtils;
import org.eclipse.scout.sdk.core.util.PropertyMap;
import org.eclipse.scout.sdk.core.util.SdkException;
-import org.eclipse.scout.sdk.core.util.SdkLog;
import org.eclipse.scout.sdk.s2e.util.S2eUtils;
/**
@@ -85,7 +80,7 @@
IJavaProject ownerProject = builderCtx.getProperty(ISdkProperties.CONTEXT_PROPERTY_JAVA_PROJECT, IJavaProject.class);
Template template = getCodeTemplate(CodeTemplateContextType.FILECOMMENT_ID, ownerProject);
if (template != null) {
- CodeTemplateContext context = new CodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
+ TemplateContext context = CodeTemplateContextBridge.createCodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
context.setVariable(CodeTemplateContextType.FILENAME, target.getElementName());
String packageName = target.getPackageName();
@@ -120,7 +115,7 @@
if (template == null) {
return;
}
- CodeTemplateContext context = new CodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
+ TemplateContext context = CodeTemplateContextBridge.createCodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
context.setVariable(CodeTemplateContextType.FILENAME, UNDEFINED_VAR_VALUE);
context.setVariable(CodeTemplateContextType.PACKAGENAME, Signature.getQualifier(target.getFullyQualifiedName()));
if (S2eUtils.exists(ownerProject)) {
@@ -129,7 +124,7 @@
context.setVariable(CodeTemplateContextType.ENCLOSING_TYPE, Signature.getQualifier(target.getElementName()));
context.setVariable(CodeTemplateContextType.TYPENAME, Signature.getSimpleName(target.getElementName()));
- TemplateBuffer buffer;
+ final TemplateBuffer buffer;
try {
buffer = context.evaluate(template);
}
@@ -140,15 +135,13 @@
throw new SdkException(e);
}
String str = buffer.getString();
- if (Strings.containsOnlyWhitespaces(str)) {
+ if (StringUtils.isBlank(str)) {
return;
}
TemplateVariable position = findVariable(buffer, CodeTemplateContextType.TAGS); // look if Javadoc tags have to be added
if (position == null) {
- if (str != null) {
- source.append(str);
- }
+ source.append(str);
return;
}
@@ -182,7 +175,7 @@
IJavaProject ownerProject = builderCtx.getProperty(ISdkProperties.CONTEXT_PROPERTY_JAVA_PROJECT, IJavaProject.class);
Template template = getCodeTemplate(CodeTemplateContextType.OVERRIDECOMMENT_ID, ownerProject);
if (template != null) {
- CodeTemplateContext context = new CodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
+ TemplateContext context = CodeTemplateContextBridge.createCodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
context.setVariable(CodeTemplateContextType.PACKAGENAME, UNDEFINED_VAR_VALUE);
if (S2eUtils.exists(ownerProject)) {
context.setVariable(CodeTemplateContextType.PROJECTNAME, ownerProject.getElementName());
@@ -275,7 +268,7 @@
if (template == null) {
return;
}
- CodeTemplateContext context = new CodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
+ TemplateContext context = CodeTemplateContextBridge.createCodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
String getterSetterName = UNDEFINED_VAR_VALUE;
Matcher matcher = CoreUtils.BEAN_METHOD_NAME.matcher(target.getElementName());
if (matcher.find()) {
@@ -317,7 +310,7 @@
}
String str = buffer.getString();
- if (Strings.containsOnlyWhitespaces(str)) {
+ if (StringUtils.isBlank(str)) {
return;
}
TemplateVariable position = findVariable(buffer, CodeTemplateContextType.TAGS); // look if Javadoc tags have to be added
@@ -362,7 +355,7 @@
IJavaProject ownerProject = builderCtx.getProperty(ISdkProperties.CONTEXT_PROPERTY_JAVA_PROJECT, IJavaProject.class);
Template template = getCodeTemplate(CodeTemplateContextType.FIELDCOMMENT_ID, ownerProject);
if (template != null) {
- CodeTemplateContext context = new CodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
+ TemplateContext context = CodeTemplateContextBridge.createCodeTemplateContext(template.getContextTypeId(), ownerProject, lineDelimiter);
context.setVariable(CodeTemplateContextType.FIELD_TYPE, Signature.getSignatureSimpleName(target.getSignature()));
context.setVariable(CodeTemplateContextType.FIELD, target.getElementName());
if (S2eUtils.exists(ownerProject)) {
@@ -399,7 +392,7 @@
return true;
}
- private static String evaluateTemplate(CodeTemplateContext context, Template template) {
+ private static String evaluateTemplate(TemplateContext context, Template template) {
// replace the user name resolver with our own to ensure we can respect the scout specific user names.
Iterator<TemplateVariableResolver> resolvers = context.getContextType().resolvers();
while (resolvers.hasNext()) {
@@ -425,26 +418,14 @@
return null;
}
String str = buffer.getString();
-
- if (Strings.containsOnlyWhitespaces(str)) {
+ if (StringUtils.isBlank(str)) {
return null;
}
return str;
}
private static Template getCodeTemplate(String id, IJavaProject project) {
- if (!S2eUtils.exists(project)) {
- return JavaPlugin.getDefault().getCodeTemplateStore().findTemplateById(id);
- }
-
- ProjectTemplateStore projectStore = new ProjectTemplateStore(project.getProject());
- try {
- projectStore.load();
- }
- catch (IOException e) {
- SdkLog.error(e);
- }
- return projectStore.findTemplateById(id);
+ return StubUtilityBridge.getCodeTemplate(id, project);
}
private static TemplateVariable findVariable(TemplateBuffer buffer, String variable) {
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/StubUtilityBridge.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/StubUtilityBridge.java
new file mode 100644
index 0000000..aad893f
--- /dev/null
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/StubUtilityBridge.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * 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.sdk.s2e.ui.internal.util;
+
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.scout.sdk.core.util.SdkLog;
+
+/**
+ * <h3>{@link StubUtilityBridge}</h3> Bridge to support Eclipse IDE 2018-12 and older.<br>
+ * The class StubUtility was moved for release 2018-12. This class can be deleted as soon as 2018-12 is the oldest
+ * supported version.
+ *
+ * @since 8.0.0
+ */
+public final class StubUtilityBridge {
+
+ private static Class<?> stubUtilityClass;
+
+ private StubUtilityBridge() {
+ }
+
+ @SuppressWarnings({"squid:S1181", "squid:S2259"})
+ public static Template getCodeTemplate(String id, IJavaProject project) {
+ try {
+ return (Template) getStubUtilityClass()
+ .getMethod("getCodeTemplate", String.class, IJavaProject.class)
+ .invoke(null, id, project);
+ }
+ catch (Throwable e) {
+ SdkLog.error(e);
+ return null;
+ }
+ }
+
+ @SuppressWarnings("squid:S1166")
+ private static Class<?> getStubUtilityClass() {
+ Class<?> ret = stubUtilityClass;
+ if (ret == null) {
+ try {
+ ret = StubUtilityBridge.class.getClassLoader().loadClass("org.eclipse.jdt.internal.core.manipulation.StubUtility");
+ }
+ catch (ClassNotFoundException e) {
+ ret = loadLegacyStubUtilityClass();
+ }
+ stubUtilityClass = ret;
+ }
+ return ret;
+ }
+
+ @SuppressWarnings("squid:S1166")
+ private static Class<?> loadLegacyStubUtilityClass() {
+ try {
+ return StubUtilityBridge.class.getClassLoader().loadClass("org.eclipse.jdt.internal.corext.codemanipulation.StubUtility");
+ }
+ catch (ClassNotFoundException e1) {
+ SdkLog.error("Could not found a StubUtility class on classpath.");
+ return null;
+ }
+ }
+}
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/ast/AstNodeFactory.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/ast/AstNodeFactory.java
index 8a49160..09486c8 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/ast/AstNodeFactory.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/util/ast/AstNodeFactory.java
@@ -49,8 +49,8 @@
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
import org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext;
-import org.eclipse.jdt.internal.corext.codemanipulation.StubUtility;
import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
+import org.eclipse.jdt.ui.CodeStyleConfiguration;
import org.eclipse.scout.sdk.core.IJavaRuntimeTypes;
import org.eclipse.scout.sdk.core.model.api.IJavaEnvironment;
import org.eclipse.scout.sdk.core.s.IScoutRuntimeTypes;
@@ -135,7 +135,12 @@
m_ast = m_declaringType.getAST();
m_rewrite = ASTRewrite.create(m_ast);
m_root = (CompilationUnit) type.getRoot();
- m_importRewrite = StubUtility.createImportRewrite(m_root, true);
+
+ m_importRewrite = CodeStyleConfiguration.createImportRewrite(m_root, true);
+ if (m_root.getAST().hasResolvedBindings()) {
+ m_importRewrite.setUseContextToFilterImplicitImports(true);
+ }
+
m_importsRewrite = m_rewrite.getListRewrite(m_root, CompilationUnit.IMPORTS_PROPERTY);
m_context = new ContextSensitiveImportRewriteContext(m_root, m_importRewrite);
m_javaProject = m_icu.getJavaProject();
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/jaxws/WebServiceMessageDialog.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/jaxws/WebServiceMessageDialog.java
index 61ed8f4..49857bb 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/jaxws/WebServiceMessageDialog.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/jaxws/WebServiceMessageDialog.java
@@ -23,6 +23,7 @@
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.scout.sdk.core.s.jaxws.ParsedWsdl.WebServiceNames;
+import org.eclipse.scout.sdk.core.s.project.ScoutProjectNewHelper;
import org.eclipse.scout.sdk.s2e.operation.jaxws.WebServiceNewOperation;
import org.eclipse.scout.sdk.s2e.ui.internal.S2ESdkUiActivator;
import org.eclipse.scout.sdk.s2e.ui.util.S2eUiUtils;
@@ -50,7 +51,6 @@
*/
public class WebServiceMessageDialog extends MessageDialogWithToggle {
- public static final String SCOUT_JAX_WS_DOCUMENTATION_URL = "https://eclipsescout.github.io/7.0/technical-guide.html#webservices-with-jax-ws";
public static final String HIDE_CONSUMER_MSG = "hideWebServiceConsumerInfoMessage";
public static final String HIDE_PROVIDER_MSG = "hideWebServiceProviderInfoMessage";
@@ -60,6 +60,15 @@
super(parentShell, dialogTitle, image, message, dialogImageType, dialogButtonLabels, defaultIndex, toggleMessage, toggleState);
}
+ protected static String getScoutJaxWsDocumentationUrl() {
+ String version = ScoutProjectNewHelper.SCOUT_ARCHETYPES_VERSION;
+ int secondDotPos = version.indexOf('.', 2);
+ if (secondDotPos > 0) {
+ version = version.substring(0, secondDotPos);
+ }
+ return "http://eclipsescout.github.io/" + version + "/technical-guide.html#webservices-with-jax-ws";
+ }
+
public static WebServiceMessageDialog open(Shell shell, WebServiceNewOperation op) {
String message = null;
String dialogTitle = null;
@@ -90,7 +99,7 @@
dialog.open();
if (dialog.isCopyToClipboard()) {
Clipboard clipboard = new Clipboard(shell.getDisplay());
- clipboard.setContents(new Object[]{message + "\n\nJAX-WS Documentation: " + SCOUT_JAX_WS_DOCUMENTATION_URL}, new Transfer[]{TextTransfer.getInstance()});
+ clipboard.setContents(new Object[]{message + "\n\nJAX-WS Documentation: " + getScoutJaxWsDocumentationUrl()}, new Transfer[]{TextTransfer.getInstance()});
clipboard.dispose();
}
return dialog;
@@ -132,7 +141,7 @@
h.addHyperlinkListener(new HyperlinkAdapter() {
@Override
public void linkActivated(HyperlinkEvent e) {
- S2eUiUtils.showUrlInBrowser(SCOUT_JAX_WS_DOCUMENTATION_URL);
+ S2eUiUtils.showUrlInBrowser(getScoutJaxWsDocumentationUrl());
}
});
GridDataFactory
@@ -200,7 +209,7 @@
protected static void addImplementorMsg(StringBuilder builder) {
builder.append("\nThen you have to decide which JAX-WS implementor you want to use. It is strongly recommended to use the implementor that is included in your J2EE application server if any. ");
- builder.append("As soon as the implementor is known add the 'jaxws.implementor' property to your config.properties files.\n");
+ builder.append("As soon as the implementor is known add the 'scout.jaxws.implementor' property to your config.properties files.\n");
builder.append("If the desired JAX-WS implementor is not included in your application server, you also have to add the necessary dependencies to your pom.xml files to include this implementor in the deployment.");
}
}
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/jaxws/WebServiceNewWizardPage.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/jaxws/WebServiceNewWizardPage.java
index 435e59d..4db471d 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/jaxws/WebServiceNewWizardPage.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/jaxws/WebServiceNewWizardPage.java
@@ -706,7 +706,7 @@
}
// check name pattern
- String msg = ScoutProjectNewHelper.getMavenNameErrorMessage(getArtifactId(), "Artifact Id");
+ String msg = ScoutProjectNewHelper.getMavenArtifactIdErrorMessage(getArtifactId());
if (msg != null) {
return new Status(IStatus.ERROR, S2ESdkUiActivator.PLUGIN_ID, msg);
}
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/project/ScoutProjectNewWizard.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/project/ScoutProjectNewWizard.java
index 3d72f4a..9ae608f 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/project/ScoutProjectNewWizard.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/project/ScoutProjectNewWizard.java
@@ -75,6 +75,7 @@
op.setGroupId(m_page1.getGroupId());
op.setArtifactId(m_page1.getArtifactId());
op.setJavaVersion(getDefaultWorkspaceJavaVersion());
+ op.setUseJsClient(m_page1.isUseJsClient());
if (m_page1.isUseWorkspaceLocation()) {
op.setTargetDirectory(ScoutProjectNewWizardPage.getWorkspaceLocation());
}
@@ -150,8 +151,8 @@
}
/**
- * Converts the specified {@link Version} to a {@link String}. Only the major and minor parts are used. Trailing
- * zeroes are omitted.<br>
+ * Converts the specified {@link Version} to a {@link String}. Only the major and minor parts are used. Trailing zeroes
+ * are omitted.<br>
*
* @param version
* The {@link Version} to convert.
diff --git a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/project/ScoutProjectNewWizardPage.java b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/project/ScoutProjectNewWizardPage.java
index 13fef1c..7985e46 100644
--- a/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/project/ScoutProjectNewWizardPage.java
+++ b/org.eclipse.scout.sdk.s2e.ui/src/main/java/org/eclipse/scout/sdk/s2e/ui/internal/wizard/project/ScoutProjectNewWizardPage.java
@@ -56,11 +56,16 @@
public static final String PROP_DISPLAY_NAME = "dispName";
public static final String PROP_DIR = "dir";
public static final String PROP_USE_WORKSPACE_LOC = "useWorkspaceLoc";
+ public static final String PROP_USE_JS_CLIENT = "useJsClient";
public static final String SETTINGS_TARGET_DIR = "targetDirSetting";
protected StyledTextField m_groupIdField;
protected StyledTextField m_artifactIdField;
protected StyledTextField m_displayNameField;
+
+ protected Button m_javaScriptButton;
+ protected Button m_javaButton;
+
protected Button m_useWsLoc;
protected ResourceTextField m_targetDirectoryField;
@@ -79,6 +84,7 @@
int labelWidth = 100;
createProjectNameGroup(parent, labelWidth);
+ createClientLanguageGroup(parent);
createProjectLocationGroup(parent, labelWidth);
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IScoutHelpContextIds.SCOUT_PROJECT_NEW_WIZARD_PAGE);
@@ -158,6 +164,52 @@
.applyTo(m_displayNameField);
}
+ protected void createClientLanguageGroup(Composite parent) {
+
+ Group uiLangBox = getFieldToolkit().createGroupBox(parent, "Programming language of the user interface");
+
+ m_javaScriptButton = new Button(uiLangBox, SWT.RADIO);
+ m_javaScriptButton.setText("JavaScript && JSON");
+ m_javaScriptButton.setSelection(isUseJsClient());
+ m_javaScriptButton.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ setUseJsClientInternal(m_javaScriptButton.getSelection());
+ pingStateChanging();
+ }
+ });
+
+ m_javaButton = new Button(uiLangBox, SWT.RADIO);
+ m_javaButton.setText("Java");
+ m_javaButton.setSelection(!isUseJsClient());
+ m_javaButton.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ setUseJsClientInternal(!m_javaButton.getSelection());
+ pingStateChanging();
+ }
+ });
+
+ // layout
+ GridLayoutFactory
+ .swtDefaults()
+ .applyTo(uiLangBox);
+ GridDataFactory
+ .defaultsFor(uiLangBox)
+ .align(SWT.FILL, SWT.CENTER)
+ .grab(true, false)
+ .indent(0, 10)
+ .applyTo(uiLangBox);
+ GridDataFactory
+ .defaultsFor(m_javaScriptButton)
+ .indent(13, 5)
+ .applyTo(m_javaScriptButton);
+ GridDataFactory
+ .defaultsFor(m_javaButton)
+ .indent(13, 2)
+ .applyTo(m_javaButton);
+ }
+
protected void createProjectLocationGroup(Composite parent, int labelWidth) {
Group locationGroup = getFieldToolkit().createGroupBox(parent, "Project Location");
@@ -243,6 +295,9 @@
// display name
setDisplayNameInternal("My Application");
+ // ui language
+ setUseJsClientInternal(false);
+
// use workspace loc
setUseWorkspaceLocationInternal(true);
@@ -291,7 +346,7 @@
protected IStatus getStatusGroupId() {
// check name pattern
- String msg = ScoutProjectNewHelper.getMavenNameErrorMessage(getGroupId(), "Group Id");
+ String msg = ScoutProjectNewHelper.getMavenGroupIdErrorMessage(getGroupId());
if (msg != null) {
return new Status(IStatus.ERROR, S2ESdkUiActivator.PLUGIN_ID, msg);
}
@@ -300,7 +355,8 @@
protected IStatus getStatusArtifactId() {
// check name pattern
- String msg = ScoutProjectNewHelper.getMavenNameErrorMessage(getArtifactId(), "Artifact Id");
+ String artifactId = getArtifactId();
+ String msg = ScoutProjectNewHelper.getMavenArtifactIdErrorMessage(artifactId);
if (msg != null) {
return new Status(IStatus.ERROR, S2ESdkUiActivator.PLUGIN_ID, msg);
}
@@ -313,13 +369,13 @@
else {
folder = getTargetDirectory();
}
- if (folder != null && new File(folder, getArtifactId()).exists()) {
+ if (folder != null && new File(folder, artifactId).exists()) {
return new Status(IStatus.ERROR, S2ESdkUiActivator.PLUGIN_ID, "A project with this Artifact Id already exists in this target directory.");
}
// check project existence in workspace
for (IProject p : ResourcesPlugin.getWorkspace().getRoot().getProjects()) {
- if (p.getName().startsWith(getArtifactId() + '.')) {
+ if (p.getName().startsWith(artifactId + '.')) {
return new Status(IStatus.ERROR, S2ESdkUiActivator.PLUGIN_ID, "A project with this Artifact Id already exists in the workspace.");
}
}
@@ -327,7 +383,7 @@
}
protected IStatus getStatusDisplayName() {
- String msg = ScoutProjectNewHelper.getDisplayNameErrorMEssage(getDisplayName());
+ String msg = ScoutProjectNewHelper.getDisplayNameErrorMessage(getDisplayName());
if (msg != null) {
return new Status(IStatus.ERROR, S2ESdkUiActivator.PLUGIN_ID, msg);
}
@@ -448,4 +504,26 @@
protected void setTargetDirectoryInternal(File f) {
setProperty(PROP_DIR, f);
}
+
+ public boolean isUseJsClient() {
+ return getPropertyBool(PROP_USE_JS_CLIENT);
+ }
+
+ public void setUseJsClient(boolean isUseJsClient) {
+ try {
+ setStateChanging(true);
+ setUseJsClientInternal(isUseJsClient);
+ if (isControlCreated()) {
+ m_javaButton.setSelection(!isUseJsClient);
+ m_javaScriptButton.setSelection(isUseJsClient);
+ }
+ }
+ finally {
+ setStateChanging(false);
+ }
+ }
+
+ protected void setUseJsClientInternal(boolean isUseJsClient) {
+ setPropertyBool(PROP_USE_JS_CLIENT, isUseJsClient);
+ }
}
diff --git a/org.eclipse.scout.sdk.s2e/.project b/org.eclipse.scout.sdk.s2e/.project
index 63c031e..af72f2a 100644
--- a/org.eclipse.scout.sdk.s2e/.project
+++ b/org.eclipse.scout.sdk.s2e/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/org.eclipse.scout.sdk.s2e/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk.s2e/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk.s2e/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk.s2e/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk.s2e/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk.s2e/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk.s2e/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk.s2e/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk.s2e/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk.s2e/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk.s2e/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk.s2e/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk.s2e/pom.xml b/org.eclipse.scout.sdk.s2e/pom.xml
index 586a997..c703932 100644
--- a/org.eclipse.scout.sdk.s2e/pom.xml
+++ b/org.eclipse.scout.sdk.s2e/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
</parent>
@@ -29,7 +29,7 @@
<properties>
<bundle.symbolicName>${project.artifactId}</bundle.symbolicName>
<bundle.namespace>${project.artifactId}</bundle.namespace>
- <bundle.version>7.0.300</bundle.version>
+ <bundle.version>8.0.0</bundle.version>
</properties>
<dependencies>
diff --git a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/classid/ClassIdValidationJob.java b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/classid/ClassIdValidationJob.java
index 3ce6b2f..2a86ba4 100644
--- a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/classid/ClassIdValidationJob.java
+++ b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/classid/ClassIdValidationJob.java
@@ -67,10 +67,10 @@
private final Set<IType> m_classIdTypes;
- private ClassIdValidationJob(Set<IType> classIdTypes) {
+ private ClassIdValidationJob(Set<IType> classIdTypes, boolean showToUser) {
super(ClassIdValidationJob.class.getName());
- setSystem(true);
- setUser(false);
+ setSystem(!showToUser);
+ setUser(showToUser);
setRule(new P_SchedulingRule());
setPriority(Job.BUILD);
m_classIdTypes = classIdTypes;
@@ -232,7 +232,7 @@
createDuplicateMarkers(classIdOccurrences);
}
- public static synchronized void executeAsync(final long startDelay) {
+ public static synchronized void executeAsync(final long startDelay, final boolean showToUser) {
Job currentJob = Job.getJobManager().currentJob();
if (currentJob instanceof ResourceBlockingOperationJob) {
// do not schedule a check run if the event comes from the scout sdk itself. we assume it does a correct job.
@@ -256,7 +256,7 @@
Job.getJobManager().cancel(CLASS_ID_VALIDATION_JOB_FAMILY);
// start the new validation
- new ClassIdValidationJob(classIds).schedule(TimeUnit.SECONDS.toMillis(1));
+ new ClassIdValidationJob(classIds, showToUser).schedule(TimeUnit.SECONDS.toMillis(1));
}
catch (IllegalStateException e) {
// can happen e.g. when the preference nodes are changed: "java.lang.IllegalStateException: Preference node "org.eclipse.jdt.core" has been removed."
diff --git a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/classid/MissingClassIdsNewOperation.java b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/classid/MissingClassIdsNewOperation.java
index 468f415..722f3de 100644
--- a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/classid/MissingClassIdsNewOperation.java
+++ b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/classid/MissingClassIdsNewOperation.java
@@ -16,12 +16,11 @@
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Optional;
import java.util.Set;
-import java.util.function.Predicate;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
@@ -29,8 +28,12 @@
import org.eclipse.jdt.core.IAnnotation;
import org.eclipse.jdt.core.IBuffer;
import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IRegion;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.ITypeHierarchy;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.Document;
import org.eclipse.scout.sdk.core.importcollector.IImportCollector;
@@ -60,7 +63,7 @@
*/
public class MissingClassIdsNewOperation implements IOperation {
- private Predicate<IResource> m_filter;
+ private Set<IResource> m_selection;
@Override
public String getOperationName() {
@@ -76,11 +79,11 @@
public void run(IProgressMonitor monitor, IWorkingCopyManager workingCopyManager) throws CoreException {
SubMonitor progress = SubMonitor.convert(monitor, 10);
try {
- Collection<IType> candidates = findCandidates(progress.newChild(2));
+ Collection<IType> candidates = findCandidates(progress.newChild(8));
if (candidates.isEmpty()) {
return;
}
- processCandidates(candidates, progress.newChild(8), workingCopyManager);
+ processCandidates(candidates, progress.newChild(2), workingCopyManager);
}
catch (OperationCanceledException e) {
SdkLog.debug("Creation of missing @ClassId annotations has been cancelled.", e);
@@ -88,9 +91,41 @@
}
protected ITypeHierarchy createHierarchy(IType iTypeWithClassId, SubMonitor monitor) throws CoreException {
+ if (useRegion()) {
+ return createRegionHierarchy(monitor);
+ }
return iTypeWithClassId.newTypeHierarchy(monitor);
}
+ /**
+ * Decides whether to use a resource based type hierarchy or if the full classid hierarchy should be calculated.
+ */
+ protected boolean useRegion() {
+ Set<IResource> selection = selection();
+ if (selection.isEmpty() || selection.size() > 100) {
+ return false;
+ }
+ for (IResource r : selection) {
+ if (r.getType() != IResource.FILE) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ protected ITypeHierarchy createRegionHierarchy(SubMonitor monitor) throws JavaModelException {
+ IRegion region = JavaCore.newRegion();
+ for (IResource r : selection()) {
+ if (r != null && r.isAccessible()) {
+ IJavaElement element = JavaCore.create(r);
+ if (S2eUtils.exists(element)) {
+ region.add(element);
+ }
+ }
+ }
+ return JavaCore.newTypeHierarchy(region, null, monitor);
+ }
+
protected Collection<IType> findCandidates(SubMonitor monitor) throws CoreException {
Set<IType> result = new HashSet<>();
Set<IType> startTypes = S2eUtils.resolveJdtTypes(IScoutRuntimeTypes.ITypeWithClassId);
@@ -117,15 +152,26 @@
return result;
}
- protected boolean acceptFilter(IType candidate) {
+ protected boolean acceptType(IType candidate) {
final IResource resource = candidate.getResource();
if (resource == null || !resource.isAccessible()) {
return false; // exclude binary types
}
- return filter()
- .map(f -> f.test(resource))
- .orElse(Boolean.TRUE)
- .booleanValue();
+
+ if (selection().isEmpty()) {
+ return true; // not limited to resources: accept all
+ }
+ return isInResources(resource);
+ }
+
+ protected boolean isInResources(final IResource candidate) {
+ final IPath location = candidate.getLocation();
+ for (IResource r : selection()) {
+ if (r.getLocation().isPrefixOf(location)) {
+ return true;
+ }
+ }
+ return false;
}
protected void processCandidates(Collection<IType> candidates, SubMonitor monitor, IWorkingCopyManager workingCopyManager) throws CoreException {
@@ -140,7 +186,7 @@
&& t.isClass()
&& !t.isBinary()
&& !t.isAnonymous();
- if (isValidType && acceptFilter(t)) {
+ if (isValidType && acceptType(t)) {
IAnnotation annotation = S2eUtils.getAnnotation(t, IScoutRuntimeTypes.ClassId);
if (annotation == null) {
ICompilationUnit icu = t.getCompilationUnit();
@@ -207,12 +253,15 @@
}
}
- public Optional<Predicate<IResource>> filter() {
- return Optional.ofNullable(m_filter);
+ public Set<IResource> selection() {
+ if (m_selection == null) {
+ return Collections.emptySet();
+ }
+ return m_selection;
}
- public MissingClassIdsNewOperation withFilter(final Predicate<IResource> filter) {
- m_filter = filter;
+ public MissingClassIdsNewOperation withSelection(Set<IResource> selection) {
+ m_selection = selection;
return this;
}
}
diff --git a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/internal/trigger/DerivedResourceManager.java b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/internal/trigger/DerivedResourceManager.java
index f80999a..ea7618f 100644
--- a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/internal/trigger/DerivedResourceManager.java
+++ b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/internal/trigger/DerivedResourceManager.java
@@ -416,12 +416,10 @@
/**
* An abort stops the current or next run of this job.<br>
* <br>
- * An abort differs to a cancel() in that way, that a cancel (can only be performed by the user) discards all
- * operations that are not yet executed while an abort keeps them and will continue to work on them in the next
- * schedule().<br>
+ * An abort differs to a cancel() in that way, that a cancel (can only be performed by the user) discards all operations
+ * that are not yet executed while an abort keeps them and will continue to work on them in the next schedule().<br>
* <br>
- * An abort will automatically re-schedule this job (if this is no already done) to ensure that no work remains
- * undone.
+ * An abort will automatically re-schedule this job (if this is no already done) to ensure that no work remains undone.
*/
private void abort() {
m_isAborted = true;
@@ -471,7 +469,6 @@
IDerivedResourceHandler handler = m_queueToConsume.poll();
try {
progress.setTaskName(handler.getName() + " [" + i + " of " + numOperations + "]");
- progress.subTask("");
handler.validate();
long start = System.currentTimeMillis();
diff --git a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/project/ScoutProjectNewOperation.java b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/project/ScoutProjectNewOperation.java
index 6983ed4..d492491 100644
--- a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/project/ScoutProjectNewOperation.java
+++ b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/project/ScoutProjectNewOperation.java
@@ -46,14 +46,13 @@
*/
public class ScoutProjectNewOperation implements IOperation {
- public static final String TEMPLATE_GROUP_ID = "org.eclipse.scout.archetype.groupId";
- public static final String TEMPLATE_ARTIFACT_ID = "org.eclipse.scout.archetype.artifactId";
public static final String TEMPLATE_VERSION = "org.eclipse.scout.archetype.version";
private String m_groupId;
private String m_artifactId;
private String m_displayName;
private String m_javaVersion;
+ private boolean m_useJsClient = true;
private File m_targetDirectory;
private List<IProject> m_createdProjects;
@@ -70,15 +69,17 @@
@Override
public void run(IProgressMonitor monitor, IWorkingCopyManager workingCopyManager) throws CoreException {
try {
- // get archetype settings
- String groupId = S2ESdkActivator.getDefault().getBundle().getBundleContext().getProperty(TEMPLATE_GROUP_ID);
- String artifactId = S2ESdkActivator.getDefault().getBundle().getBundleContext().getProperty(TEMPLATE_ARTIFACT_ID);
String version = S2ESdkActivator.getDefault().getBundle().getBundleContext().getProperty(TEMPLATE_VERSION);
- if (StringUtils.isBlank(groupId) || StringUtils.isBlank(artifactId) || StringUtils.isBlank(version)) {
- // use default
- groupId = null;
- artifactId = null;
- version = null;
+ if (StringUtils.isBlank(version)) {
+ version = ScoutProjectNewHelper.SCOUT_ARCHETYPES_VERSION;
+ }
+
+ final String artifactId;
+ if (isUseJsClient()) {
+ artifactId = ScoutProjectNewHelper.SCOUT_ARCHETYPES_HELLOJS_ARTIFACT_ID;
+ }
+ else {
+ artifactId = ScoutProjectNewHelper.SCOUT_ARCHETYPES_HELLOWORLD_ARTIFACT_ID;
}
if (monitor.isCanceled()) {
@@ -87,7 +88,8 @@
// create project on disk (using archetype)
SubMonitor progress = SubMonitor.convert(monitor, getOperationName(), 100);
- ScoutProjectNewHelper.createProject(getTargetDirectory(), getGroupId(), getArtifactId(), getDisplayName(), getJavaVersion(), groupId, artifactId, version);
+ ScoutProjectNewHelper.createProject(getTargetDirectory(), getGroupId(), getArtifactId(), getDisplayName(), getJavaVersion(),
+ ScoutProjectNewHelper.SCOUT_ARCHETYPES_GROUP_ID, artifactId, version);
progress.worked(5);
// import into workspace
@@ -199,4 +201,12 @@
public void setArtifactId(String artifactId) {
m_artifactId = artifactId;
}
+
+ public boolean isUseJsClient() {
+ return m_useJsClient;
+ }
+
+ public void setUseJsClient(boolean useJsClient) {
+ m_useJsClient = useJsClient;
+ }
}
diff --git a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/trigger/DefaultResourceChangeEventFilter.java b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/trigger/DefaultResourceChangeEventFilter.java
index f2dad04..0429795 100644
--- a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/trigger/DefaultResourceChangeEventFilter.java
+++ b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/trigger/DefaultResourceChangeEventFilter.java
@@ -16,7 +16,6 @@
import java.util.Collections;
import java.util.function.Predicate;
-import org.apache.commons.lang3.Validate;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.jobs.Job;
@@ -45,28 +44,28 @@
public static final String WORKSPACE_INIT_JOB = "org.eclipse.jdt.internal.ui.InitializeAfterLoadJob.RealJob";
public static final String TEAM_UPDATES = "org.eclipse.team.";
public static final String SEARCH = "org.eclipse.search2.";
+ public static final String MARKER_UPDATE = "org.eclipse.ui.internal.views.markers.";
+ public static final String JAVA_INDEX_UPDATE_JOB_NAME = "Updating Java index";
+ private final Collection<String> m_excludedJobClassNamePrefixes;
+ private final Collection<String> m_excludedJobNames;
private boolean m_isIgnoreBuildEvents;
private boolean m_isIgnoreScoutSdkEvents;
- private Collection<String> m_excludedJobNamePrefixes;
public DefaultResourceChangeEventFilter() {
- String[] exclusions = new String[]{GIT_UPDATES, MAVEN_UPDATES, SONAR_UPDATE, WEB_TOOLS_UPDATE, DEBUG_EVENT,
+ String[] defaultJobExclusionsFqn = new String[]{GIT_UPDATES, MAVEN_UPDATES, SONAR_UPDATE, WEB_TOOLS_UPDATE, DEBUG_EVENT,
JDT_DEBUG_EVENT, ANNOTATION_PROCESSING_JOB, ANOTATION_PROCESSING_BUILD, EXTERNAL_FOLDER_UPDATE, DEBUG_INIT,
- REFRESH_JOB, WORKSPACE_INIT_JOB, TEAM_UPDATES, SEARCH};
- m_excludedJobNamePrefixes = new ArrayList<>(exclusions.length);
- Collections.addAll(m_excludedJobNamePrefixes, exclusions);
+ REFRESH_JOB, WORKSPACE_INIT_JOB, TEAM_UPDATES, SEARCH, MARKER_UPDATE};
+ m_excludedJobClassNamePrefixes = new ArrayList<>(defaultJobExclusionsFqn.length);
+ Collections.addAll(m_excludedJobClassNamePrefixes, defaultJobExclusionsFqn);
+
+ m_excludedJobNames = new ArrayList<>(1);
+ m_excludedJobNames.add(JAVA_INDEX_UPDATE_JOB_NAME);
m_isIgnoreBuildEvents = true;
m_isIgnoreScoutSdkEvents = true;
}
- public DefaultResourceChangeEventFilter(Collection<String> excludedJobNamePrefixes, boolean ignoreBuildEvents, boolean ignoreScoutSdkEvents) {
- m_excludedJobNamePrefixes = new ArrayList<>(Validate.notNull(excludedJobNamePrefixes));
- m_isIgnoreBuildEvents = ignoreBuildEvents;
- m_isIgnoreScoutSdkEvents = ignoreScoutSdkEvents;
- }
-
@Override
@SuppressWarnings("pmd:NPathComplexity")
public boolean test(IResourceChangeEvent event) {
@@ -95,20 +94,23 @@
}
String jobFqn = curJob.getClass().getName().replace('$', '.');
- Predicate<String> excludedByNamePrefix = className -> getExcludedJobNamePrefixes().stream().anyMatch(prefix -> className.startsWith(prefix));
- if (excludedByNamePrefix.test(jobFqn)) {
- return false;
- }
+ String jobName = curJob.getName();
- if (!"org.eclipse.core.internal.jobs.ThreadJob".equals(jobFqn)) {
- return true;
- }
+ Predicate<String> excludedClassNamePrefixes = className -> getExcludedJobClassNamePrefixes().stream().anyMatch(prefix -> className.startsWith(prefix));
+ Predicate<String> excludedJobNames = name -> getExcludedJobNames().stream().anyMatch(n -> name.equals(n));
- StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
- boolean isStackTraceElementExcluded = Arrays.stream(stackTrace)
- .map(element -> element.getClassName())
- .anyMatch(excludedByNamePrefix);
- return !isStackTraceElementExcluded;
+ if ("org.eclipse.core.internal.jobs.ThreadJob".equals(jobFqn)) {
+ // for thread jobs: check current stack trace
+ StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
+ return !Arrays.stream(stackTrace)
+ .map(element -> element.getClassName())
+ .anyMatch(excludedClassNamePrefixes);
+ }
+ if (jobFqn.startsWith("org.eclipse.core.runtime.jobs.Job.")) {
+ // for Job factory methods: check job name
+ return !excludedJobNames.test(jobName);
+ }
+ return !excludedClassNamePrefixes.test(jobFqn) && !excludedJobNames.test(jobName);
}
/**
@@ -143,23 +145,41 @@
}
/**
- * @return A live list of fully qualified class name prefixes of jobs that should be excluded. The returned list may
- * be modified directly.
+ * @return A live list of fully qualified job class name prefixes that should be excluded. The returned list may be
+ * modified directly.
*/
- public Collection<String> getExcludedJobNamePrefixes() {
- return m_excludedJobNamePrefixes;
+ public Collection<String> getExcludedJobClassNamePrefixes() {
+ return m_excludedJobClassNamePrefixes;
}
/**
- * @param excludedJobNamePrefixes
- * The new excluded job fully qualified class names. May be <code>null</code>.
+ * @param excludedJobClassNamePrefixes
+ * The new list of fully qualified class names of jobs to be excluded. Inner types are separated using '.'. May
+ * be {@code null}.
*/
- public void setExcludedJobNamePrefixes(Collection<String> excludedJobNamePrefixes) {
- if (excludedJobNamePrefixes == null || excludedJobNamePrefixes.isEmpty()) {
- m_excludedJobNamePrefixes = Collections.emptyList();
+ public void setExcludedJobClassNamePrefixes(final Collection<String> excludedJobClassNamePrefixes) {
+ m_excludedJobClassNamePrefixes.clear();
+ if (excludedJobClassNamePrefixes != null) {
+ m_excludedJobClassNamePrefixes.addAll(excludedJobClassNamePrefixes);
}
- else {
- m_excludedJobNamePrefixes = new ArrayList<>(excludedJobNamePrefixes);
+ }
+
+ /**
+ * @return A live list of job names ({@link Job#getName()}) that should be excluded. Please note: Job names may be
+ * language dependent! The returned list may be modified directly.
+ */
+ public Collection<String> getExcludedJobNames() {
+ return m_excludedJobNames;
+ }
+
+ /**
+ * @param excludedJobNames
+ * The new list of job names ({@link Job#getName()}) that should be excluded. May be {@code null}.
+ */
+ public void setExcludedJobNames(final Collection<String> excludedJobNames) {
+ m_excludedJobNames.clear();
+ if (excludedJobNames != null) {
+ m_excludedJobNames.addAll(excludedJobNames);
}
}
}
diff --git a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/util/S2eUtils.java b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/util/S2eUtils.java
index cc30fcd..2297bb2 100644
--- a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/util/S2eUtils.java
+++ b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/util/S2eUtils.java
@@ -135,7 +135,6 @@
* @param jdtType
* The input jdt {@link IType}
* @return The resulting {@link org.eclipse.scout.sdk.core.model.api.IType}
- * @throws CoreException
*/
public static org.eclipse.scout.sdk.core.model.api.IType jdtTypeToScoutType(IType jdtType) {
return jdtTypeToScoutType(jdtType, ScoutSdkCore.createJavaEnvironment(jdtType.getJavaProject()));
@@ -182,8 +181,7 @@
* @param jdtType
* The jdt {@link IType} to convert.
* @param env
- * The {@link IJavaEnvironment} to use to find the matching
- * {@link org.eclipse.scout.sdk.core.model.api.IType}.
+ * The {@link IJavaEnvironment} to use to find the matching {@link org.eclipse.scout.sdk.core.model.api.IType}.
* @return The {@link org.eclipse.scout.sdk.core.model.api.IType} matching the given JDT {@link IType}.
*/
public static org.eclipse.scout.sdk.core.model.api.IType jdtTypeToScoutType(IType jdtType, IJavaEnvironment env) {
@@ -200,8 +198,8 @@
* The fully qualified name of the base class. The sub classes of this class are searched.
* @param monitor
* The monitor or <code>null</code>. If the monitor becomes canceled, the search is aborted and an incomplete
- * result may be returned. The caller of this method is responsible to react on this fact based on the
- * monitor state ({@link IProgressMonitor#isCanceled()}).
+ * result may be returned. The caller of this method is responsible to react on this fact based on the monitor
+ * state ({@link IProgressMonitor#isCanceled()}).
* @return A {@link Set} containing all {@link IType}s sorted ascending by fully qualified name.
* @throws CoreException
*/
@@ -220,9 +218,8 @@
}
/**
- * Gets all {@link IType}s on the classpath of the give {@link IJavaProject} that are sub classes of the given
- * baseType and fulfill the given filter. If the base type itself fulfills the given filter, it is included in the
- * result.
+ * Gets all {@link IType}s on the classpath of the give {@link IJavaProject} that are sub classes of the given baseType
+ * and fulfill the given filter. If the base type itself fulfills the given filter, it is included in the result.
*
* @param sourceProject
* The {@link IJavaProject} defining the classpath.
@@ -230,8 +227,8 @@
* The base class of the hierarchy.
* @param monitor
* The monitor or <code>null</code>. If the monitor becomes canceled, the search is aborted and an incomplete
- * result may be returned. The caller of this method is responsible to react on this fact based on the
- * monitor state ({@link IProgressMonitor#isCanceled()}).
+ * result may be returned. The caller of this method is responsible to react on this fact based on the monitor
+ * state ({@link IProgressMonitor#isCanceled()}).
* @param filter
* A filter to decide which matches are accepted or <code>null</code> if all matches should be accepted.
* @return A {@link Set} containing the {@link IType}s sorted ascending by simple name and fully qualified name
@@ -291,8 +288,8 @@
* Gets all {@link IType}s that are accessible in the current workspace having the given fully qualified name.
*
* @param fqn
- * The fully qualified name of the types to search. Inner types must use the '$' enclosing type separator
- * (e.g. <code>org.eclipse.scout.TestClass$InnerClass$NextLevelInnerClass</code>).
+ * The fully qualified name of the types to search. Inner types must use the '$' enclosing type separator (e.g.
+ * <code>org.eclipse.scout.TestClass$InnerClass$NextLevelInnerClass</code>).
* @return
* @throws CoreException
*/
@@ -304,8 +301,8 @@
* Gets all {@link IType}s that are accessible in the given scope having the given fully qualified name.
*
* @param fqn
- * The fully qualified name of the types to search. Inner types must use the '$' enclosing type separator
- * (e.g. <code>org.eclipse.scout.TestClass$InnerClass$NextLevelInnerClass</code>).
+ * The fully qualified name of the types to search. Inner types must use the '$' enclosing type separator (e.g.
+ * <code>org.eclipse.scout.TestClass$InnerClass$NextLevelInnerClass</code>).
* @param scope
* The {@link IJavaSearchScope} that defines where to search.
* @return A {@link Set} with all {@link IType}s
@@ -393,8 +390,8 @@
* The {@link IType} where to start the search.
* @param fullyQualifiedAnnotations
* The fully qualified names of the annotations to search.
- * @return The first of the annotations found in the super hierarchy of the given {@link IType} or <code>null</code>
- * if it could not be found.
+ * @return The first of the annotations found in the super hierarchy of the given {@link IType} or <code>null</code> if
+ * it could not be found.
* @throws CoreException
*/
public static IAnnotation getFirstAnnotationInSupertypeHierarchy(IType type, String... fullyQualifiedAnnotations) throws CoreException {
@@ -532,8 +529,8 @@
* {@link SearchEngine#createJavaSearchScope(IJavaElement[])}.
* @param monitor
* The monitor or <code>null</code>. If the monitor becomes canceled, the search is aborted and an incomplete
- * result may be returned. The caller of this method is responsible to react on this fact based on the
- * monitor state ({@link IProgressMonitor#isCanceled()}).
+ * result may be returned. The caller of this method is responsible to react on this fact based on the monitor
+ * state ({@link IProgressMonitor#isCanceled()}).
* @throws CoreException
*/
public static Set<IType> findAllTypesAnnotatedWith(String annotationName, IJavaSearchScope scope, final IProgressMonitor monitor) throws CoreException {
@@ -651,8 +648,8 @@
* The {@link IAnnotation} for which the attribute should be converted.
* @param name
* The name of attribute.
- * @return A {@link String} with the value of the given attribute or <code>null</code> if the value is
- * <code>null</code> or could not be found.
+ * @return A {@link String} with the value of the given attribute or <code>null</code> if the value is <code>null</code>
+ * or could not be found.
* @throws JavaModelException
*/
public static String getAnnotationValueString(IAnnotation annotation, String name) throws JavaModelException {
@@ -707,8 +704,8 @@
* The resources that should be written
* @return An {@link IStatus} describing if the given resources can be written now. If {@link IStatus#isOK()} returns
* <code>true</code>, it is safe to continue the write operation. Otherwise the {@link IStatus} contains the
- * files and reasons why this is not possible. This may be the case if the file is still read-only or because
- * it changed value in the mean time.
+ * files and reasons why this is not possible. This may be the case if the file is still read-only or because it
+ * changed value in the mean time.
*/
@SuppressWarnings("pmd:NPathComplexity")
public static IStatus makeCommittable(Collection<IResource> resources) {
@@ -797,14 +794,14 @@
}
/**
- * Executes the given {@link CompilationUnitWriteOperation}s in a new {@link ResourceBlockingOperationJob}, waits
- * until all have finished and returns the resulting first {@link IType}s of each created or updated
+ * Executes the given {@link CompilationUnitWriteOperation}s in a new {@link ResourceBlockingOperationJob}, waits until
+ * all have finished and returns the resulting first {@link IType}s of each created or updated
* {@link ICompilationUnit}.<br>
* If you don't need the created or updated {@link IType}s it is faster to call
* {@link #writeFiles(Collection, IProgressMonitor, boolean)}.<br>
* <br>
- * <b>Important:</b> If the {@link Job} invoking this method uses an {@link ISchedulingRule} that conflicts with one
- * of the {@link IFile}s to be written, this will result in a deadlock! In that case use
+ * <b>Important:</b> If the {@link Job} invoking this method uses an {@link ISchedulingRule} that conflicts with one of
+ * the {@link IFile}s to be written, this will result in a deadlock! In that case use
* {@link #writeType(IPackageFragmentRoot, ICompilationUnitSourceBuilder, IJavaEnvironment, IProgressMonitor, IWorkingCopyManager)}
* instead or write the types sync using
* {@link CompilationUnitWriteOperation#run(IProgressMonitor, IWorkingCopyManager)}.
@@ -861,11 +858,11 @@
* If you don't need the created or updated {@link IFile}s it is faster to call
* {@link #writeFiles(Collection, IProgressMonitor, boolean)}.<br>
* <br>
- * <b>Important:</b> If the {@link Job} invoking this method uses an {@link ISchedulingRule} that conflicts with one
- * of the {@link IFile}s to be written, this will result in a deadlock! In that case use
+ * <b>Important:</b> If the {@link Job} invoking this method uses an {@link ISchedulingRule} that conflicts with one of
+ * the {@link IFile}s to be written, this will result in a deadlock! In that case use
* {@link #writeFiles(Collection, IProgressMonitor, boolean)} without waiting instead or write the files sync using
- * {@link IFileWriteOperation#run(IProgressMonitor, IWorkingCopyManager)} if you need the resulting {@link IFile}
- * after the invocation of this method.
+ * {@link IFileWriteOperation#run(IProgressMonitor, IWorkingCopyManager)} if you need the resulting {@link IFile} after
+ * the invocation of this method.
*
* @param ops
* The {@link IFileWriteOperation}s to execute
@@ -874,9 +871,8 @@
* @return A {@link List} containing all created or updated {@link IFile}s in the same order as the given
* {@link Collection} returns {@link IFileWriteOperation}s. Therefore the first {@link IFile} in the resulting
* {@link List} belongs to the first {@link IFileWriteOperation} in ops.
- * @throws CoreException
*/
- public static List<IFile> writeFiles(Collection<? extends IFileWriteOperation> ops, IProgressMonitor monitor) throws CoreException {
+ public static List<IFile> writeFiles(Collection<? extends IFileWriteOperation> ops, IProgressMonitor monitor) {
if (ops == null || ops.isEmpty()) {
return Collections.emptyList();
}
@@ -903,16 +899,15 @@
* @param monitor
* The {@link IProgressMonitor}
* @param waitUntilWritten
- * <code>true</code> if this method should block until all operations have been executed. <code>false</code>
- * if this method should directly return after the {@link ResourceWriteOperation}s have been scheduled.<br>
+ * <code>true</code> if this method should block until all operations have been executed. <code>false</code> if
+ * this method should directly return after the {@link ResourceWriteOperation}s have been scheduled.<br>
* Important: If this parameter is <code>true</code> and the {@link Job} invoking this method uses an
* {@link ISchedulingRule} that conflicts with one of the {@link IFile}s to be written, this will result in a
* deadlock! In that case consider writing the files sync using
* {@link IFileWriteOperation#run(IProgressMonitor, IWorkingCopyManager)} if you need the resulting
* {@link IFile} after the invocation of this method.
- * @throws CoreException
*/
- public static void writeFiles(Collection<? extends IFileWriteOperation> ops, IProgressMonitor monitor, boolean waitUntilWritten) throws CoreException {
+ public static void writeFiles(Collection<? extends IFileWriteOperation> ops, IProgressMonitor monitor, boolean waitUntilWritten) {
if (ops == null || ops.isEmpty()) {
return;
}
@@ -956,13 +951,13 @@
* Creates a {@link IJavaSearchScope} based on the given {@link IResource}s.<br>
* The search scope contains the following items depending on the resource type:
* <ul>
- * <li>{@link IResource#PROJECT}: If the project has the java nature ({@link JavaCore#NATURE_ID}) and is open all
- * source folders of the project are added (no libraries or dependent projects).</li>
+ * <li>{@link IResource#PROJECT}: If the project has the java nature ({@link JavaCore#NATURE_ID}) and is open all source
+ * folders of the project are added (no libraries or dependent projects).</li>
* <li>{@link IResource#FOLDER}: The {@link IPackageFragment} or {@link IPackageFragmentRoot} is added if the folder
* belongs to one. All sub-packages are included as well!</li>
* <li>{@link IResource#FILE}: If the file is a java file, the corresponding {@link ICompilationUnit} is added. If the
- * resource is a class file, the corresponding {@link IClassFile} is added. If the file is a jar file, the
- * corresponding {@link IPackageFragmentRoot} is added.</li>
+ * resource is a class file, the corresponding {@link IClassFile} is added. If the file is a jar file, the corresponding
+ * {@link IPackageFragmentRoot} is added.</li>
* <li>{@link IResource#ROOT}: All source folders of all {@link IJavaProject}s in the workspace are added.</li>
* <ul>
*
@@ -1067,8 +1062,8 @@
* @param projects
* The {@link IJavaProject}s in which the source folders should be searched.
* @param monitor
- * The {@link IProgressMonitor} to use. The search aborts if the given {@link IProgressMonitor} is canceled.
- * In this case an empty {@link Set} is returned.
+ * The {@link IProgressMonitor} to use. The search aborts if the given {@link IProgressMonitor} is canceled. In
+ * this case an empty {@link Set} is returned.
* @return A {@link Set} with all source folders ({@link IPackageFragmentRoot}s of kind
* {@link IPackageFragmentRoot#K_SOURCE}) of the given {@link IJavaProject}s ordered by relevance and project.
* @throws JavaModelException
@@ -1085,8 +1080,8 @@
* @param filter
* The {@link Predicate} the {@link IPackageFragmentRoot} candidates must fulfill.
* @param monitor
- * The {@link IProgressMonitor} to use. The search aborts if the given {@link IProgressMonitor} is canceled.
- * In this case an empty {@link Set} is returned.
+ * The {@link IProgressMonitor} to use. The search aborts if the given {@link IProgressMonitor} is canceled. In
+ * this case an empty {@link Set} is returned.
* @return A {@link Set} with all source folders ({@link IPackageFragmentRoot}s of kind
* {@link IPackageFragmentRoot#K_SOURCE}) of the given {@link IJavaProject}s that accept the given
* {@link Predicate} ordered by relevance and project.
@@ -1214,8 +1209,8 @@
* @param h
* The hierarchy to search in.
* @param fqn
- * The fully qualified name of the types to search. Inner types must use the '$' enclosing type separator
- * (e.g. <code>org.eclipse.scout.TestClass$InnerClass$NextLevelInnerClass</code>).
+ * The fully qualified name of the types to search. Inner types must use the '$' enclosing type separator (e.g.
+ * <code>org.eclipse.scout.TestClass$InnerClass$NextLevelInnerClass</code>).
* @return <code>true</code> if it is part of the given {@link ITypeHierarchy}, <code>false</code> otherwise.
*/
public static boolean hierarchyContains(ITypeHierarchy h, String fqn) {
@@ -1521,8 +1516,8 @@
*
* @param file
* The {@link IFile} that should be loaded. Must be an XML file!
- * @return a {@link Document} holding the contents of the {@link IFile} or <code>null</code> if the given
- * {@link IFile} does not exist.
+ * @return a {@link Document} holding the contents of the {@link IFile} or <code>null</code> if the given {@link IFile}
+ * does not exist.
* @throws CoreException
*/
public static Document readXmlDocument(IFile file) throws CoreException {
@@ -1581,8 +1576,8 @@
* Specifies if the project should be refreshed from disk.
* @param monitor
* The {@link IProgressMonitor} for the update operation.
- * @return A {@link Map} containing the project name as key and an {@link IStatus} describing the update result for
- * the corresponding project.
+ * @return A {@link Map} containing the project name as key and an {@link IStatus} describing the update result for the
+ * corresponding project.
*/
public static Map<String, IStatus> mavenUpdate(Set<IProject> projects, boolean updateSnapshots, boolean updateConfig, boolean cleanProject, boolean refreshFromDisk, IProgressMonitor monitor) {
if (projects == null || projects.isEmpty()) {
diff --git a/org.eclipse.scout.sdk.s2e/src/main/resources/about.ini b/org.eclipse.scout.sdk.s2e/src/main/resources/about.ini
index a0a47c2..68c3da4 100644
--- a/org.eclipse.scout.sdk.s2e/src/main/resources/about.ini
+++ b/org.eclipse.scout.sdk.s2e/src/main/resources/about.ini
@@ -7,8 +7,8 @@
# Property "aboutText" contains blurb for "About" dialog (translated)
aboutText=Eclipse Scout Project\n\
\n\
-Copyright (c) 2011, 2016 Scout project committers and others. All rights reserved.\n\
-Visit: http://eclipse.org/scout
+Copyright (c) 2011, 2018 Scout project committers and others. All rights reserved.\n\
+Visit: https://www.eclipse.org/scout/
# Property "featureImage" contains path to feature image (32x32)
featureImage=scout.jpg
diff --git a/org.eclipse.scout.sdk/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.sdk/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/org.eclipse.scout.sdk/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.sdk/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/org.eclipse.scout.sdk/.settings/org.eclipse.wst.jsdt.core.prefs b/org.eclipse.scout.sdk/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/org.eclipse.scout.sdk/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/org.eclipse.scout.sdk/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/org.eclipse.scout.sdk/.settings/org.sonarlint.eclipse.core.prefs b/org.eclipse.scout.sdk/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/org.eclipse.scout.sdk/.settings/org.sonarlint.eclipse.core.prefs
+++ b/org.eclipse.scout.sdk/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/org.eclipse.scout.sdk/pom.xml b/org.eclipse.scout.sdk/pom.xml
index 626f769..44d18f4 100644
--- a/org.eclipse.scout.sdk/pom.xml
+++ b/org.eclipse.scout.sdk/pom.xml
@@ -23,7 +23,7 @@
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Eclipse Scout SDK</name>
<description>Eclipse Scout SDK</description>
@@ -36,6 +36,7 @@
<!-- Must be at first position -->
<module>../scout-helloworld-app</module>
<module>../scout-jaxws-module</module>
+ <module>../scout-hellojs-app</module>
<module>../org.eclipse.scout.sdk.core</module>
<module>../org.eclipse.scout.sdk.core.test</module>
@@ -52,23 +53,23 @@
</modules>
<properties>
- <scout.base.version>7.0.300</scout.base.version>
+ <scout.base.version>8.0.0</scout.base.version>
<base.version>${scout.base.version}</base.version>
- <org.eclipse.scout.rt_version>7.0.300-SNAPSHOT</org.eclipse.scout.rt_version>
+ <org.eclipse.scout.rt_version>8.0.0-SNAPSHOT</org.eclipse.scout.rt_version>
<master_coverage_jacoco_destFile>${basedir}/../org.eclipse.scout.sdk/target/jacoco-all.exec</master_coverage_jacoco_destFile>
<master_test_forkCount>1</master_test_forkCount>
<!-- Sonar properties -->
- <sonar.branch>releases_7.0.x</sonar.branch>
+ <sonar.branch>releases_8.0.x</sonar.branch>
<master_test_timeout>1800</master_test_timeout>
<sonar.jacoco.reportPath>${master_coverage_jacoco_destFile}</sonar.jacoco.reportPath>
<!-- exclude fixtures -->
<sonar.exclusions>
- **/src/main/fixture/**,
- **/src/main/client/**,
- **/src/main/shared/**
+ **/src/main/fixture/**/*,
+ **/src/main/client/**/*,
+ **/src/main/shared/**/*
</sonar.exclusions>
<!-- exclude fixtures, archetypes, UI -->
@@ -263,78 +264,78 @@
<dependency>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk.core</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk.core.test</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk.core.s</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk.core.s.test</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk.s2e</groupId>
<artifactId>org.eclipse.scout.sdk.s2e</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk.s2e</groupId>
<artifactId>org.eclipse.scout.sdk.s2e</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk.s2e</groupId>
<artifactId>org.eclipse.scout.sdk.s2e.doc</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk.s2e</groupId>
<artifactId>org.eclipse.scout.sdk.s2e.doc</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk.s2e</groupId>
<artifactId>org.eclipse.scout.sdk.s2e.nls</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk.s2e</groupId>
<artifactId>org.eclipse.scout.sdk.s2e.nls</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk.s2e</groupId>
<artifactId>org.eclipse.scout.sdk.s2e.ui</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk.s2e</groupId>
<artifactId>org.eclipse.scout.sdk.s2e.ui</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.eclipse.scout.sdk.s2e</groupId>
<artifactId>org.eclipse.scout.sdk.s2e.test</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
</dependency>
<!-- Build Dependencies -->
@@ -727,7 +728,7 @@
<scm>
<connection>scm:git:git://git.eclipse.org/gitroot/scout/org.eclipse.scout.sdk.git</connection>
<developerConnection>scm:git:ssh://${eclipse_gerrit_username}@git.eclipse.org:29418/scout/org.eclipse.scout.sdk</developerConnection>
- <tag>releases/7.0.x</tag>
+ <tag>releases/8.0.x</tag>
<url>http://git.eclipse.org/c/scout/org.eclipse.scout.sdk.git/</url>
</scm>
diff --git a/pom.xml b/pom.xml
index 05f923a..e8e106f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>org.eclipse.scout.sdk-root</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>7.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Eclipse Scout SDK</name>
diff --git a/scout-hellojs-app/.classpath b/scout-hellojs-app/.classpath
new file mode 100644
index 0000000..c6d82cd
--- /dev/null
+++ b/scout-hellojs-app/.classpath
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <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="output" path="target/classes"/>
+</classpath>
diff --git a/scout-hellojs-app/.project b/scout-hellojs-app/.project
new file mode 100644
index 0000000..ed91e68
--- /dev/null
+++ b/scout-hellojs-app/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>scout-hellojs-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</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/scout-hellojs-app/.settings/.jsdtscope b/scout-hellojs-app/.settings/.jsdtscope
new file mode 100644
index 0000000..555a5ca
--- /dev/null
+++ b/scout-hellojs-app/.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/scout-hellojs-app/.settings/com.eclipsesource.jshint.ui.prefs b/scout-hellojs-app/.settings/com.eclipsesource.jshint.ui.prefs
new file mode 100644
index 0000000..00492d9
--- /dev/null
+++ b/scout-hellojs-app/.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/scout-hellojs-app/.settings/de.loskutov.anyedit.AnyEditTools.prefs b/scout-hellojs-app/.settings/de.loskutov.anyedit.AnyEditTools.prefs
new file mode 100644
index 0000000..9e00de0
--- /dev/null
+++ b/scout-hellojs-app/.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/scout-hellojs-app/.settings/org.eclipse.core.resources.prefs b/scout-hellojs-app/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..13d34f3
--- /dev/null
+++ b/scout-hellojs-app/.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/scout-hellojs-app/.settings/org.eclipse.core.runtime.prefs b/scout-hellojs-app/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/scout-hellojs-app/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/scout-hellojs-app/.settings/org.eclipse.jdt.core.prefs b/scout-hellojs-app/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..8c9f76e
--- /dev/null
+++ b/scout-hellojs-app/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,394 @@
+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.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=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+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=error
+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=error
+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=error
+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=error
+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=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=error
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+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=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=error
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+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=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+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.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
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/scout-hellojs-app/.settings/org.eclipse.jdt.ui.prefs b/scout-hellojs-app/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..c0e09bf
--- /dev/null
+++ b/scout-hellojs-app/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,116 @@
+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_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=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_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.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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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_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.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_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_blocks=true
+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/scout-hellojs-app/.settings/org.eclipse.m2e.core.prefs b/scout-hellojs-app/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/scout-hellojs-app/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/scout-hellojs-app/.settings/org.eclipse.wst.jsdt.core.prefs b/scout-hellojs-app/.settings/org.eclipse.wst.jsdt.core.prefs
new file mode 100644
index 0000000..1b2735d
--- /dev/null
+++ b/scout-hellojs-app/.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/scout-hellojs-app/.settings/org.eclipse.wst.jsdt.ui.prefs b/scout-hellojs-app/.settings/org.eclipse.wst.jsdt.ui.prefs
new file mode 100644
index 0000000..114189d
--- /dev/null
+++ b/scout-hellojs-app/.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/>
+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/scout-hellojs-app/.settings/org.eclipse.wst.jsdt.ui.superType.container b/scout-hellojs-app/.settings/org.eclipse.wst.jsdt.ui.superType.container
new file mode 100644
index 0000000..49c8cd4
--- /dev/null
+++ b/scout-hellojs-app/.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/scout-hellojs-app/.settings/org.eclipse.wst.jsdt.ui.superType.name b/scout-hellojs-app/.settings/org.eclipse.wst.jsdt.ui.superType.name
new file mode 100644
index 0000000..11006e2
--- /dev/null
+++ b/scout-hellojs-app/.settings/org.eclipse.wst.jsdt.ui.superType.name
@@ -0,0 +1 @@
+Global
\ No newline at end of file
diff --git a/scout-hellojs-app/.settings/org.sonarlint.eclipse.core.prefs b/scout-hellojs-app/.settings/org.sonarlint.eclipse.core.prefs
new file mode 100644
index 0000000..aac1181
--- /dev/null
+++ b/scout-hellojs-app/.settings/org.sonarlint.eclipse.core.prefs
@@ -0,0 +1,7 @@
+autoEnabled=false
+eclipse.preferences.version=1
+extraProperties=
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+serverId=Scout
diff --git a/scout-hellojs-app/about.html b/scout-hellojs-app/about.html
new file mode 100644
index 0000000..c258ef5
--- /dev/null
+++ b/scout-hellojs-app/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/scout-hellojs-app/epl-v10.html b/scout-hellojs-app/epl-v10.html
new file mode 100644
index 0000000..84ec251
--- /dev/null
+++ b/scout-hellojs-app/epl-v10.html
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style>
+
+</head>
+
+<body lang="EN-US">
+
+<p align=center><b>Eclipse Public License - v 1.0</b></p>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+</body>
+
+</html>
diff --git a/scout-hellojs-app/pom.xml b/scout-hellojs-app/pom.xml
new file mode 100644
index 0000000..2b2ec89
--- /dev/null
+++ b/scout-hellojs-app/pom.xml
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (c) 2015 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</groupId>
+ <artifactId>maven_sdk_plugin_config-master</artifactId>
+ <version>2.0.13</version>
+ <relativePath></relativePath>
+ </parent>
+
+ <groupId>org.eclipse.scout.archetypes</groupId>
+ <artifactId>scout-hellojs-app</artifactId>
+ <version>8.0.0-SNAPSHOT</version>
+ <packaging>maven-archetype</packaging>
+
+ <name>ScoutJS Sample Application</name>
+ <description>Maven Archetype which creates a ScoutJS Sample Application</description>
+ <url>https://eclipse.org/scout</url>
+
+ <properties>
+ <scout.base.version>8.0.0</scout.base.version>
+ <base.version>${scout.base.version}</base.version>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-archetype-plugin</artifactId>
+ <version>2.4</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>com.mycila</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>archetype-packaging</artifactId>
+ <version>2.4</version>
+ </extension>
+ </extensions>
+ </build>
+
+ <!-- primarily for license header generation -->
+ <inceptionYear>2018</inceptionYear>
+
+ <organization>
+ <name>Eclipse Scout Project</name>
+ <url>${project.url}</url>
+ </organization>
+
+ <licenses>
+ <license>
+ <name>Eclipse Public License v1.0</name>
+ <url>http://www.eclipse.org/legal/epl-v10.html</url>
+ <comments>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.htm</comments>
+ </license>
+ </licenses>
+
+ <developers>
+ <developer>
+ <id>bsi</id>
+ <name>BSI Business Systems Integration AG</name>
+ <organization>BSI Business Systems Integration AG</organization>
+ <organizationUrl>https://www.bsi-software.com/en/technology/eclipse-scout.html</organizationUrl>
+ </developer>
+ </developers>
+
+ <mailingLists>
+ <mailingList>
+ <name>scout-dev Mailing List</name>
+ <subscribe>https://dev.eclipse.org/mailman/listinfo/scout-dev</subscribe>
+ <unsubscribe>https://dev.eclipse.org/mailman/listinfo/scout-dev</unsubscribe>
+ <post>scout-dev@eclipse.org</post>
+ <archive>http://dev.eclipse.org/mhonarc/lists/scout-dev</archive>
+ </mailingList>
+ </mailingLists>
+
+ <scm>
+ <connection>scm:git:git://git.eclipse.org/gitroot/scout/org.eclipse.scout.sdk.git</connection>
+ <developerConnection>scm:git:ssh://${eclipse_gerrit_username}@git.eclipse.org:29418/scout/org.eclipse.scout.sdk</developerConnection>
+ <tag>releases/8.0.x</tag>
+ <url>http://git.eclipse.org/c/scout/org.eclipse.scout.sdk.git/</url>
+ </scm>
+
+ <issueManagement>
+ <system>Bugzilla</system>
+ <url>https://bugs.eclipse.org/bugs/buglist.cgi?classification=Technology;component=Scout SDK;product=Scout;query_format=advanced</url>
+ </issueManagement>
+
+ <repositories>
+ <repository>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <id>eclipse.release</id>
+ <name>eclipse-release-repo</name>
+ <url>https://repo.eclipse.org/content/groups/releases/</url>
+ </repository>
+ <repository>
+ <snapshots></snapshots>
+ <id>eclipse.snapshot</id>
+ <name>eclipse-snapshot-repo</name>
+ <url>https://repo.eclipse.org/content/groups/snapshots/</url>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <id>eclipse.release</id>
+ <name>eclipse-release-repo</name>
+ <url>https://repo.eclipse.org/content/groups/releases/</url>
+ </pluginRepository>
+ <pluginRepository>
+ <snapshots></snapshots>
+ <id>eclipse.snapshot</id>
+ <name>eclipse-snapshot-repo</name>
+ <url>https://repo.eclipse.org/content/groups/snapshots/</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <distributionManagement>
+ <repository>
+ <id>repo.eclipse.org</id>
+ <name>Scout Repository - Releases</name>
+ <url>https://repo.eclipse.org/content/repositories/scout-releases/</url>
+ </repository>
+ <snapshotRepository>
+ <id>repo.eclipse.org</id>
+ <name>Scout Repository - Snapshots</name>
+ <url>https://repo.eclipse.org/content/repositories/scout-snapshots/</url>
+ </snapshotRepository>
+ </distributionManagement>
+
+ <profiles>
+ <profile>
+ <id>release.setversion</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>com.google.code.maven-replacer-plugin</groupId>
+ <artifactId>replacer</artifactId>
+ <executions>
+ <execution>
+ <id>replace_scout_version</id>
+ <goals>
+ <goal>replace</goal>
+ </goals>
+ <phase>generate-resources</phase>
+ <configuration>
+ <basedir>${project.basedir}/src/main/resources/archetype-resources</basedir>
+ <includes>
+ <include>**/pom.xml</include>
+ </includes>
+ <!-- token finds the scout version property tag and places the current version string there -->
+ <token>(\\x3corg.eclipse.scout.rt.version\\x3e)[0-9A-Z\\.-]*(\\x3c/org.eclipse.scout.rt.version\\x3e)</token>
+ <value>$1${org.eclipse.scout.rt_version}$2</value>
+ <unescape>true</unescape>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/META-INF/maven/archetype-metadata.xml b/scout-hellojs-app/src/main/resources/META-INF/maven/archetype-metadata.xml
new file mode 100644
index 0000000..679585c
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (c) 2015 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 -->
+<archetype-descriptor
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
+ name="org.eclipse.scout.hello.world"
+ xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <requiredProperties>
+ <requiredProperty key="javaVersion">
+ <defaultValue>1.8</defaultValue>
+ </requiredProperty>
+ <requiredProperty key="displayName">
+ <defaultValue>My JS Application</defaultValue>
+ </requiredProperty>
+ <requiredProperty key="simpleArtifactName">
+ <defaultValue>Artifact Simple Name</defaultValue>
+ </requiredProperty>
+ <requiredProperty key="scoutAuthPublicKeyDev">
+ <defaultValue>changeme_database_password</defaultValue>
+ </requiredProperty>
+ </requiredProperties>
+ <modules>
+ <module id="parent" dir="__rootArtifactId__" name="parent">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory></directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="api" dir="__rootArtifactId__.api" name="api">
+ <fileSets>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="app" dir="__rootArtifactId__.app" name="app">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.html</include>
+ <include>**/*.js</include>
+ <include>**/*.json</include>
+ <include>**/*.less</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="false" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.png</include>
+ <include>**/*.ico</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="app.dev" dir="__rootArtifactId__.app.dev"
+ name="app.dev">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory></directory>
+ <includes>
+ <include>**/*.launch</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.properties</include>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/webapp</directory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.html</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="app.war" dir="__rootArtifactId__.app.war"
+ name="app.war">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/webapp</directory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.html</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="core" dir="__rootArtifactId__.core" name="core">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory></directory>
+ <includes>
+ <include>**/*.nls</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.properties</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="core.test" dir="__rootArtifactId__.core.test"
+ name="core.test">
+ <fileSets>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="data" dir="__rootArtifactId__.data" name="data">
+ <fileSets>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="db" dir="__rootArtifactId__.db" name="db">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory></directory>
+ <includes>
+ <include>**/*.launch</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="persistence" dir="__rootArtifactId__.persistence"
+ name="persistence">
+ <fileSets>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/generated/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="persistence.test"
+ dir="__rootArtifactId__.persistence.test" name="persistence.test">
+ <fileSets>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module id="ui" dir="__rootArtifactId__.ui" name="ui">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory></directory>
+ <includes>
+ <include>**/*.launch</include>
+ <include>**/*.jshintrc</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/js</directory>
+ <includes>
+ <include>**/*.js</include>
+ <include>**/*.json</include>
+ <include>**/*.less</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/test/js</directory>
+ <includes>
+ <include>**/*.js</include>
+ <include>**/*.json</include>
+ <include>**/*.less</include>
+ <include>**/*.html</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ </modules>
+</archetype-descriptor>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/pom.xml
new file mode 100644
index 0000000..7bbba2d
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/pom.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.api</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.server</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.rest</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/java/api/RestAuthFilter.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/java/api/RestAuthFilter.java
new file mode 100644
index 0000000..81badb1
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/java/api/RestAuthFilter.java
@@ -0,0 +1,50 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.api;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.scout.rt.platform.BEANS;
+import org.eclipse.scout.rt.server.commons.authentication.DevelopmentAccessController;
+import org.eclipse.scout.rt.server.commons.authentication.DevelopmentAccessController.DevelopmentAuthConfig;
+
+/**
+ * <h3>{@link RestAuthFilter}</h3>
+ */
+public class RestAuthFilter implements Filter {
+
+ private DevelopmentAccessController m_developmentAccessController;
+
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+ m_developmentAccessController = BEANS.get(DevelopmentAccessController.class).init(new DevelopmentAuthConfig()
+ .withPutPrincipalOnSession(false));
+ }
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+ final HttpServletRequest req = (HttpServletRequest) request;
+ final HttpServletResponse resp = (HttpServletResponse) response;
+
+ if (m_developmentAccessController.handle(req, resp, chain)) {
+ return;
+ }
+
+ resp.sendError(HttpServletResponse.SC_FORBIDDEN);
+ }
+
+ @Override
+ public void destroy() {
+ m_developmentAccessController.destroy();
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/java/api/ServerSession.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/java/api/ServerSession.java
new file mode 100644
index 0000000..8d4e11d
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/java/api/ServerSession.java
@@ -0,0 +1,32 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.api;
+
+import org.eclipse.scout.rt.platform.IPlatform.State;
+import org.eclipse.scout.rt.platform.Platform;
+import org.eclipse.scout.rt.platform.util.Assertions;
+import org.eclipse.scout.rt.server.AbstractServerSession;
+import org.eclipse.scout.rt.server.session.ServerSessionProvider;
+
+public class ServerSession extends AbstractServerSession {
+
+ private static final long serialVersionUID = 1L;
+
+ public ServerSession() {
+ super(true);
+ }
+
+ /**
+ * @return The {@link ServerSession} which is associated with the current thread, or <code>null</code> if not found.
+ */
+ public static ServerSession get() {
+ return ServerSessionProvider.currentSession(ServerSession.class);
+ }
+
+ @Override
+ protected void execLoadSession() {
+ Assertions.assertEquals(State.PlatformStarted, Platform.get().getState(), "Expected the platform to be started, but state is {}", Platform.get().getState());
+ super.execLoadSession();
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/java/api/person/PersonResource.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/java/api/person/PersonResource.java
new file mode 100644
index 0000000..34d46ad
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/java/api/person/PersonResource.java
@@ -0,0 +1,66 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.api.person;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.eclipse.scout.rt.platform.BEANS;
+import org.eclipse.scout.rt.rest.IRestResource;
+
+import ${package}.core.person.PersonService;
+import ${package}.data.person.PersonDo;
+import ${package}.data.person.PersonResponse;
+
+@Path("persons")
+public class PersonResource implements IRestResource {
+
+ @GET
+ @Path("/{id}")
+ @Produces(MediaType.APPLICATION_JSON)
+ public PersonResponse getById(@PathParam("id") String id) {
+ return BEANS.get(PersonService.class)
+ .getById(id)
+ .map(item -> BEANS.get(PersonResponse.class).withItem(item))
+ .orElseGet(PersonResponse::new);
+ }
+
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public PersonResponse list() {
+ return BEANS.get(PersonResponse.class)
+ .withItems(BEANS.get(PersonService.class).list());
+ }
+
+ @PUT
+ @Path("/{id}")
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ public PersonResponse store(@PathParam("id") String id, PersonDo person) {
+ return BEANS.get(PersonResponse.class)
+ .withItem(BEANS.get(PersonService.class).store(id, person));
+ }
+
+ @POST
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ public PersonResponse create(PersonDo person) {
+ return BEANS.get(PersonResponse.class)
+ .withItem(BEANS.get(PersonService.class).create(person));
+ }
+
+ @DELETE
+ @Path("/{id}")
+ @Consumes(MediaType.APPLICATION_JSON)
+ public void remove(@PathParam("id") String id) {
+ BEANS.get(PersonService.class).remove(id);
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/resources/META-INF/scout.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/resources/META-INF/scout.xml
new file mode 100644
index 0000000..760933e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.api/src/main/resources/META-INF/scout.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scout>
+</scout>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/Launch __simpleArtifactName__ dev server.launch b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/Launch __simpleArtifactName__ dev server.launch
new file mode 100644
index 0000000..d278205
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/Launch __simpleArtifactName__ dev server.launch
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/${rootArtifactId}.app.dev"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.scout.dev.jetty.JettyServer"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="${rootArtifactId}.app.dev"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dscout.jetty.port=8084 -Djandex.rebuild=true"/>
+</launchConfiguration>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/pom.xml
new file mode 100644
index 0000000..c271be8
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/pom.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.app.dev</artifactId>
+ <packaging>war</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.app</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.rest.jackson</artifactId>
+ </dependency>
+
+ <!-- JAX-RS Jersey -->
+ <dependency>
+ <groupId>org.glassfish.jersey.containers</groupId>
+ <artifactId>jersey-container-servlet-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.media</groupId>
+ <artifactId>jersey-media-json-jackson</artifactId>
+ </dependency>
+
+ <!-- Jetty Server -->
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.dev.jetty</artifactId>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jul-to-slf4j</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/resources/config.properties b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/resources/config.properties
new file mode 100644
index 0000000..598edc6
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/resources/config.properties
@@ -0,0 +1,16 @@
+### Application
+scout.application.name=${displayName}
+scout.application.version=0.0.1
+
+### UI
+scout.ui.prebuild.files=/index.html
+scout.ui.locales=en
+
+### Storage location for FileSystemUserPreferencesStorageService
+scout.client.userArea=${user.home}/${rootArtifactId}-dev
+
+### Environment
+scout.devMode=true
+scout.auth.cookieSessionValidateSecure=false
+
+import=classpath:dev.db.config.properties
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/resources/dev.db.config.properties b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/resources/dev.db.config.properties
new file mode 100644
index 0000000..5e81aec
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/resources/dev.db.config.properties
@@ -0,0 +1,3 @@
+### persistence
+persistence.sql.jdbc.mapping.name=jdbc:derby:./db;create=true
+persistence.sql.password=${scoutAuthPublicKeyDev}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/resources/logback.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/resources/logback.xml
new file mode 100644
index 0000000..56985b9
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/resources/logback.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <variable scope="context" name="mdcPattern" value="principal=%X{subject.principal.name}, httpUri=%X{http.request.uri}, uiSession=%X{scout.ui.session.id}, scoutSession=%X{scout.session.id}, jobName=%X{scout.job.name}, cid=%X{scout.correlation.id}" />
+ <variable scope="context" name="mdcPatternWithoutEmptyValues" value="%replace(${mdcPattern}){'(, )?\\w+=((?=\\1)|, |$)', ''}" />
+ <variable scope="context" name="logPattern" value="%date{ISO8601} %-5level [%thread] %logger.%method\\(%file:%line\\) - %msg - MDC[${mdcPatternWithoutEmptyValues}]%n%ex" />
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="org.eclipse.scout.rt.platform.logger.LevelRangeFilter">
+ <levelMin>TRACE</levelMin>
+ <levelMax>INFO</levelMax>
+ </filter>
+ <encoder>
+ <pattern>${logPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="org.eclipse.scout.rt.platform.logger.LevelRangeFilter">
+ <levelMin>WARN</levelMin>
+ <levelMax>ERROR</levelMax>
+ </filter>
+ <target>System.err</target>
+ <encoder>
+ <pattern>${logPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="STDERR" />
+ </root>
+
+ <logger name="org.quartz" level="WARN" />
+</configuration>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/webapp/WEB-INF/web.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..7ecc421
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app
+ metadata-complete="true"
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+ version="3.0">
+
+ <display-name>${displayName}</display-name>
+
+ <welcome-file-list>
+ <welcome-file>redir.html</welcome-file>
+ </welcome-file-list>
+
+ <listener>
+ <listener-class>org.eclipse.scout.rt.server.commons.WebappEventListener</listener-class>
+ </listener>
+ <listener>
+ <listener-class>org.eclipse.scout.rt.server.commons.HttpSessionMutex</listener-class>
+ </listener>
+
+ <!-- filters for API access -->
+ <filter>
+ <filter-name>RestAuthFilter</filter-name>
+ <filter-class>${package}.api.RestAuthFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>RestAuthFilter</filter-name>
+ <url-pattern>/api/*</url-pattern>
+ </filter-mapping>
+
+ <filter>
+ <filter-name>ServerRunContextFilter</filter-name>
+ <filter-class>org.eclipse.scout.rt.server.context.ServerRunContextFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>ServerRunContextFilter</filter-name>
+ <url-pattern>/api/*</url-pattern>
+ </filter-mapping>
+
+ <filter>
+ <filter-name>GzipServletFilter</filter-name>
+ <filter-class>org.eclipse.scout.rt.server.commons.servlet.filter.gzip.GzipServletFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>GzipServletFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <!-- JAX-RS Jersey Servlet that processes REST requests -->
+ <servlet>
+ <servlet-name>api</servlet-name>
+ <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
+ <init-param>
+ <param-name>javax.ws.rs.Application</param-name>
+ <param-value>org.eclipse.scout.rt.rest.RestApplication</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>api</servlet-name>
+ <url-pattern>/api/*</url-pattern>
+ </servlet-mapping>
+
+ <!-- UI Servlet that provides resources (js, html, css, ...) -->
+ <servlet>
+ <servlet-name>UiServlet</servlet-name>
+ <servlet-class>org.eclipse.scout.rt.ui.html.UiServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>UiServlet</servlet-name>
+ <url-pattern>/ui/*</url-pattern>
+ </servlet-mapping>
+
+ <session-config>
+ <!-- Session timeout in minutes -->
+ <session-timeout>60</session-timeout>
+ <cookie-config>
+ <http-only>true</http-only>
+ </cookie-config>
+ </session-config>
+
+</web-app>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/webapp/redir.html b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/webapp/redir.html
new file mode 100644
index 0000000..8e947ae
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.dev/src/main/webapp/redir.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<meta http-equiv="refresh" content="0; url=ui/" />
+</head>
+</html>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/pom.xml
new file mode 100644
index 0000000..fc5d03c
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/pom.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.app.war</artifactId>
+ <packaging>war</packaging>
+
+ <build>
+ <finalName>${displayName}</finalName>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.app</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.rest.jackson</artifactId>
+ </dependency>
+
+ <!-- JAX-RS Jersey -->
+ <dependency>
+ <groupId>org.glassfish.jersey.containers</groupId>
+ <artifactId>jersey-container-servlet-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.media</groupId>
+ <artifactId>jersey-media-json-jackson</artifactId>
+ </dependency>
+
+ <!-- provided by container -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>javax.servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jul-to-slf4j</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/resources/config.properties b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/resources/config.properties
new file mode 100644
index 0000000..b6f81a2
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/resources/config.properties
@@ -0,0 +1,14 @@
+### Application
+scout.application.name=${displayName}
+scout.application.version=0.0.1
+
+### UI
+scout.ui.prebuild=true
+scout.ui.prebuild.files=/index.html
+scout.ui.locales=en
+
+### Storage location for FileSystemUserPreferencesStorageService
+scout.client.userArea=\${user.home}/${rootArtifactId}
+
+### TODO: Adapt import location for environment specific configuration
+import=file:${CATALINA_HOME}/conf/${rootArtifactId}-config.properties
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/resources/logback.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/resources/logback.xml
new file mode 100644
index 0000000..f8e91e2
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/resources/logback.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <variable scope="context" name="mdcPattern" value="principal=%X{subject.principal.name}, httpUri=%X{http.request.uri}, uiSession=%X{scout.ui.session.id}, scoutSession=%X{scout.session.id}, jobName=%X{scout.job.name}, cid=%X{scout.correlation.id}" />
+ <variable scope="context" name="mdcPatternWithoutEmptyValues" value="%replace(${mdcPattern}){'(, )?\\w+=((?=\\1)|, |$)', ''}" />
+ <variable scope="context" name="logPattern" value="%date{ISO8601} %-5level [%thread] %logger.%method\\(%file:%line\\) - %msg - MDC[${mdcPatternWithoutEmptyValues}]%n%ex" />
+
+ <timestamp key="tsByMinute" datePattern="yyyyMMdd-HHmm"/>
+
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="FILE">
+ <file>${catalina.base}/logs/${rootArtifactId}-${tsByMinute}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${catalina.base}/logs/${rootArtifactId}-${tsByMinute}-%d{yyyy-MM-dd}.log</fileNamePattern>
+ <maxHistory>100</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${logPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="FILE" />
+ </root>
+
+ <logger name="org.quartz" level="WARN" />
+</configuration>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/webapp/WEB-INF/web.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..ae1375b
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app
+ metadata-complete="true"
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+ version="3.0">
+
+ <display-name>${displayName}</display-name>
+
+ <welcome-file-list>
+ <welcome-file>redir.html</welcome-file>
+ </welcome-file-list>
+
+ <listener>
+ <listener-class>org.eclipse.scout.rt.server.commons.WebappEventListener</listener-class>
+ </listener>
+ <listener>
+ <listener-class>org.eclipse.scout.rt.server.commons.HttpSessionMutex</listener-class>
+ </listener>
+
+ <!-- filters for API access -->
+ <filter>
+ <filter-name>RestAuthFilter</filter-name>
+ <filter-class>${package}.api.RestAuthFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>RestAuthFilter</filter-name>
+ <url-pattern>/api/*</url-pattern>
+ </filter-mapping>
+
+ <filter>
+ <filter-name>ServerRunContextFilter</filter-name>
+ <filter-class>org.eclipse.scout.rt.server.context.ServerRunContextFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>ServerRunContextFilter</filter-name>
+ <url-pattern>/api/*</url-pattern>
+ </filter-mapping>
+
+ <filter>
+ <filter-name>GzipServletFilter</filter-name>
+ <filter-class>org.eclipse.scout.rt.server.commons.servlet.filter.gzip.GzipServletFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>GzipServletFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <!-- JAX-RS Jersey Servlet that processes REST requests -->
+ <servlet>
+ <servlet-name>api</servlet-name>
+ <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
+ <init-param>
+ <param-name>javax.ws.rs.Application</param-name>
+ <param-value>org.eclipse.scout.rt.rest.RestApplication</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>api</servlet-name>
+ <url-pattern>/api/*</url-pattern>
+ </servlet-mapping>
+
+
+ <!-- UI Servlet that provides resources (js, html, css, ...) -->
+ <servlet>
+ <servlet-name>UiServlet</servlet-name>
+ <servlet-class>org.eclipse.scout.rt.ui.html.UiServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>UiServlet</servlet-name>
+ <url-pattern>/ui/*</url-pattern>
+ </servlet-mapping>
+
+ <session-config>
+ <!-- Session timeout in minutes -->
+ <session-timeout>60</session-timeout>
+ <cookie-config>
+ <http-only>true</http-only>
+ </cookie-config>
+ </session-config>
+
+</web-app>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/webapp/redir.html b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/webapp/redir.html
new file mode 100644
index 0000000..8e947ae
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app.war/src/main/webapp/redir.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<meta http-equiv="refresh" content="0; url=ui/" />
+</head>
+</html>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/pom.xml
new file mode 100644
index 0000000..1a3d4bb
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/pom.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.app</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.ui</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.persistence</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/includes/head.html b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/includes/head.html
new file mode 100644
index 0000000..0fe69c9
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/includes/head.html
@@ -0,0 +1,25 @@
+<meta name="apple-mobile-web-app-capable" content="yes"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+<!-- BEGIN favicon -->
+<link rel="apple-touch-icon" sizes="57x57" href="res/favicon/apple-touch-icon-57x57.png">
+<link rel="apple-touch-icon" sizes="60x60" href="res/favicon/apple-touch-icon-60x60.png">
+<link rel="apple-touch-icon" sizes="72x72" href="res/favicon/apple-touch-icon-72x72.png">
+<link rel="apple-touch-icon" sizes="76x76" href="res/favicon/apple-touch-icon-76x76.png">
+<link rel="apple-touch-icon" sizes="114x114" href="res/favicon/apple-touch-icon-114x114.png">
+<link rel="apple-touch-icon" sizes="120x120" href="res/favicon/apple-touch-icon-120x120.png">
+<link rel="apple-touch-icon" sizes="144x144" href="res/favicon/apple-touch-icon-144x144.png">
+<link rel="apple-touch-icon" sizes="152x152" href="res/favicon/apple-touch-icon-152x152.png">
+<link rel="apple-touch-icon" sizes="180x180" href="res/favicon/apple-touch-icon-180x180.png">
+<link rel="icon" type="image/png" href="res/favicon/favicon-32x32.png" sizes="32x32">
+<link rel="icon" type="image/png" href="res/favicon/android-chrome-192x192.png" sizes="192x192">
+<link rel="icon" type="image/png" href="res/favicon/favicon-96x96.png" sizes="96x96">
+<link rel="icon" type="image/png" href="res/favicon/favicon-16x16.png" sizes="16x16">
+<link rel="manifest" href="res/favicon/manifest.json">
+<meta name="msapplication-TileColor" content="#da532c">
+<meta name="msapplication-TileImage" content="res/favicon/mstile-144x144.png">
+<meta name="theme-color" content="#ffffff">
+<link rel="shortcut icon" href="res/favicon/favicon.ico">
+<meta name="apple-mobile-web-app-title" content="${displayName}">
+<meta name="application-name" content="${displayName}">
+<meta name="msapplication-config" content="res/favicon/browserconfig.xml">
+<!-- END favicon -->
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/includes/no-script.html b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/includes/no-script.html
new file mode 100644
index 0000000..3f97dac
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/includes/no-script.html
@@ -0,0 +1,11 @@
+<noscript class="box">
+ <div class="wrapper">
+ <div class="box-content small">
+ <div class="header">
+ <img class="logo" src="res/logo.png"/>
+ </div>
+ <h1><scout:message key="ui.JavaScriptDisabledTitle" /></h1>
+ <scout:message key="ui.JavaScriptDisabledText" />
+ </div>
+ </div>
+</noscript>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/index.html b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/index.html
new file mode 100644
index 0000000..112e4cf
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/index.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="UTF-8">
+ <title>${displayName}</title>
+ <scout:include template="head.html" />
+ <scout:stylesheet src="res/libs-all-macro.less" />
+ <scout:stylesheet src="res/${simpleArtifactName}-all-macro.less" />
+ <scout:script src="res/libs-all-macro.js" />
+ <scout:script src="res/${simpleArtifactName}-all-macro.js" />
+ <scout:script src="res/index.js" />
+ </head>
+ <body>
+ <scout:include template="no-script.html" />
+ <div class="scout" data-partid="1"></div>
+ <scout:version />
+ </body>
+</html>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/popup-window.html b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/popup-window.html
new file mode 100644
index 0000000..9534345
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/popup-window.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="UTF-8">
+ <title><scout:message key="ui.LoadingPopupWindow" /></title>
+ <scout:include template="head.html" />
+ <scout:stylesheet src="res/${simpleArtifactName}-all-macro.less" />
+ </head>
+ <body>
+ <div class="scout"></div>
+ <scout:script src="res/popup-window.js" />
+ </body>
+</html>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/__simpleArtifactName__-all-macro.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/__simpleArtifactName__-all-macro.js
new file mode 100644
index 0000000..5545c65
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/__simpleArtifactName__-all-macro.js
@@ -0,0 +1 @@
+__include("${simpleArtifactName}-module.js");
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/__simpleArtifactName__-all-macro.json b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/__simpleArtifactName__-all-macro.json
new file mode 100644
index 0000000..920fc4f
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/__simpleArtifactName__-all-macro.json
@@ -0,0 +1,8 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+{
+ "files": [
+ "${simpleArtifactName}-module.json"
+ ]
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/__simpleArtifactName__-all-macro.less b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/__simpleArtifactName__-all-macro.less
new file mode 100644
index 0000000..fe2ceea
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/__simpleArtifactName__-all-macro.less
@@ -0,0 +1 @@
+@import "${simpleArtifactName}-module.less";
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-144x144.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-144x144.png
new file mode 100644
index 0000000..4a0c499
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-144x144.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-192x192.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-192x192.png
new file mode 100644
index 0000000..0b31029
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-192x192.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-36x36.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-36x36.png
new file mode 100644
index 0000000..813bda4
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-36x36.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-48x48.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-48x48.png
new file mode 100644
index 0000000..783f3f0
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-48x48.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-72x72.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-72x72.png
new file mode 100644
index 0000000..1632c8f
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-72x72.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-96x96.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-96x96.png
new file mode 100644
index 0000000..26aa73d
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/android-chrome-96x96.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-114x114.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-114x114.png
new file mode 100644
index 0000000..e816b23
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-114x114.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-120x120.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-120x120.png
new file mode 100644
index 0000000..31b6398
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-120x120.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-144x144.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-144x144.png
new file mode 100644
index 0000000..4a0c499
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-144x144.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-152x152.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-152x152.png
new file mode 100644
index 0000000..be0d8ed
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-152x152.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-180x180.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-180x180.png
new file mode 100644
index 0000000..76f86ed
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-180x180.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-57x57.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-57x57.png
new file mode 100644
index 0000000..805619a
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-57x57.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-60x60.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-60x60.png
new file mode 100644
index 0000000..e2c3b39
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-60x60.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-72x72.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-72x72.png
new file mode 100644
index 0000000..1632c8f
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-72x72.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-76x76.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-76x76.png
new file mode 100644
index 0000000..e4a5776
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-76x76.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-precomposed.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-precomposed.png
new file mode 100644
index 0000000..3c1e867
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon-precomposed.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon.png
new file mode 100644
index 0000000..76f86ed
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/apple-touch-icon.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/browserconfig.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/browserconfig.xml
new file mode 100644
index 0000000..0b12aab
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/browserconfig.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<browserconfig>
+ <msapplication>
+ <tile>
+ <square70x70logo src="res/favicon/mstile-70x70.png"/>
+ <square150x150logo src="res/favicon/mstile-150x150.png"/>
+ <square310x310logo src="res/favicon/mstile-310x310.png"/>
+ <wide310x150logo src="res/favicon/mstile-310x150.png"/>
+ <TileColor>#da532c</TileColor>
+ </tile>
+ </msapplication>
+</browserconfig>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon-16x16.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon-16x16.png
new file mode 100644
index 0000000..0b66799
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon-16x16.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon-32x32.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon-32x32.png
new file mode 100644
index 0000000..f1a61c4
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon-32x32.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon-96x96.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon-96x96.png
new file mode 100644
index 0000000..26aa73d
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon-96x96.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon.ico b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon.ico
new file mode 100644
index 0000000..34f7bef
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/favicon.ico
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/manifest.json b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/manifest.json
new file mode 100644
index 0000000..3ea4b0e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/manifest.json
@@ -0,0 +1,41 @@
+{
+ "name": "My Application",
+ "icons": [
+ {
+ "src": "android-chrome-36x36.png",
+ "sizes": "36x36",
+ "type": "image\/png",
+ "density": "0.75"
+ },
+ {
+ "src": "android-chrome-48x48.png",
+ "sizes": "48x48",
+ "type": "image\/png",
+ "density": "1.0"
+ },
+ {
+ "src": "android-chrome-72x72.png",
+ "sizes": "72x72",
+ "type": "image\/png",
+ "density": "1.5"
+ },
+ {
+ "src": "android-chrome-96x96.png",
+ "sizes": "96x96",
+ "type": "image\/png",
+ "density": "2.0"
+ },
+ {
+ "src": "android-chrome-144x144.png",
+ "sizes": "144x144",
+ "type": "image\/png",
+ "density": "3.0"
+ },
+ {
+ "src": "android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image\/png",
+ "density": "4.0"
+ }
+ ]
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-144x144.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-144x144.png
new file mode 100644
index 0000000..0e0c3e8
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-144x144.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-150x150.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-150x150.png
new file mode 100644
index 0000000..34d4ce1
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-150x150.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-310x150.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-310x150.png
new file mode 100644
index 0000000..e47c9bc
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-310x150.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-310x310.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-310x310.png
new file mode 100644
index 0000000..397462c
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-310x310.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-70x70.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-70x70.png
new file mode 100644
index 0000000..8f020cf
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/favicon/mstile-70x70.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/img/eclipse_scout_logo.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/img/eclipse_scout_logo.png
new file mode 100644
index 0000000..11c5047
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/img/eclipse_scout_logo.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/index.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/index.js
new file mode 100644
index 0000000..4a4f897
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/index.js
@@ -0,0 +1,13 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${symbol_dollar}(document).ready(function() {
+ var app = new ${simpleArtifactName}.App();
+ app.init({
+ bootstrap: {
+ modelsUrl: 'res/${simpleArtifactName}-all-macro.json',
+ textsUrl: 'res/texts.json',
+ localesUrl: 'res/locales.json'
+ }
+ });
+});
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/libs-all-macro.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/libs-all-macro.js
new file mode 100644
index 0000000..c093eb6
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/libs-all-macro.js
@@ -0,0 +1,3 @@
+__include("jquery-all-macro.js");
+__include("scout-module.js");
+__include("svg-module.js");
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/libs-all-macro.less b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/libs-all-macro.less
new file mode 100644
index 0000000..b150994
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/libs-all-macro.less
@@ -0,0 +1,2 @@
+@import "scout-module.less";
+@import "svg-module.less";
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/logo.png b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/logo.png
new file mode 100644
index 0000000..afd6a72
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/logo.png
Binary files differ
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/popup-window.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/popup-window.js
new file mode 100644
index 0000000..cae1b39
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/res/popup-window.js
@@ -0,0 +1,17 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+// Note: all other forms of attaching a 'load' listener
+// to either the window or the document are not reliable.
+
+// When window is opened by main-window the popupWindow instance is always set
+var url, eventData = {
+ window: window
+};
+if (window.popupWindow) {
+ eventData.popupWindow = window.popupWindow;
+} else {
+ url = new window.opener.scout.URL(document.location);
+ eventData.formId = url.getParameter('formId');
+}
+window.opener.${symbol_dollar}(window.opener.document).trigger('popupWindowReady', eventData);
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/unsupported-browser.html b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/unsupported-browser.html
new file mode 100644
index 0000000..f9690e9
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.app/src/main/resources/WebContent/unsupported-browser.html
@@ -0,0 +1,18 @@
+<div class="box">
+ <div class="wrapper">
+ <div class="box-content small">
+ <div class="header">
+ <img class="logo" src="res/logo.png"/>
+ </div>
+ <scout:message key="ui.BrowserTooOld" />
+ <ul>
+ <li><scout:message key="ui.BrowserChrome" /></li>
+ <li><scout:message key="ui.BrowserFirefox" /></li>
+ <li><scout:message key="ui.BrowserInternetExplorer" /></li>
+ </ul>
+ <div class="button-bar">
+ <button class="button"><scout:message key="ui.ContinueAnyway" /></button>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/pom.xml
new file mode 100644
index 0000000..63ae4d4
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.core.test</artifactId>
+
+ <dependencies>
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.shared.test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jul-to-slf4j</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/src/test/resources/META-INF/scout.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/src/test/resources/META-INF/scout.xml
new file mode 100644
index 0000000..760933e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/src/test/resources/META-INF/scout.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scout>
+</scout>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/src/test/resources/config.properties b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/src/test/resources/config.properties
new file mode 100644
index 0000000..2bb14c4
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/src/test/resources/config.properties
@@ -0,0 +1,6 @@
+### Application
+scout.application.name=${displayName}
+scout.application.version=0.0.1
+
+### Job manager
+scout.jobmanager.corePoolSize=10
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/src/test/resources/logback.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/src/test/resources/logback.xml
new file mode 100644
index 0000000..7833a07
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core.test/src/test/resources/logback.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <contextListener class="org.eclipse.scout.rt.platform.logger.AutoRegisteringJulLevelChangePropagator" />
+
+ <variable scope="context" name="mdcPattern" value="principal=%X{subject.principal.name}, jobName=%X{scout.job.name}, cid=%X{scout.correlation.id}" />
+ <variable scope="context" name="mdcPatternWithoutEmptyValues" value="%replace(${mdcPattern}){'(, )?\\w+=((?=\\1)|, |$)', ''}" />
+ <variable scope="context" name="logPattern" value="%date{ISO8601} %-5level [%thread] %logger.%method\\(%file:%line\\) - %msg - MDC[${mdcPatternWithoutEmptyValues}]%n%ex" />
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="org.eclipse.scout.rt.platform.logger.LevelRangeFilter">
+ <levelMin>TRACE</levelMin>
+ <levelMax>INFO</levelMax>
+ </filter>
+ <encoder>
+ <pattern>${logPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="org.eclipse.scout.rt.platform.logger.LevelRangeFilter">
+ <levelMin>WARN</levelMin>
+ <levelMax>ERROR</levelMax>
+ </filter>
+ <target>System.err</target>
+ <encoder>
+ <pattern>${logPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="STDERR" />
+ </root>
+
+ <logger name="org.quartz" level="WARN" />
+
+ <!-- early deadlock detection during bean creation -->
+ <logger name="org.eclipse.scout.rt.platform.internal.DefaultBeanInstanceProducer" level="DEBUG" />
+
+</configuration>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/pom.xml
new file mode 100644
index 0000000..f368e36
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/pom.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.core</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.data</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/AccessControlService.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/AccessControlService.java
new file mode 100644
index 0000000..1a69f06
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/AccessControlService.java
@@ -0,0 +1,21 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.core;
+
+import java.security.PermissionCollection;
+
+import org.eclipse.scout.rt.shared.services.common.security.AbstractAccessControlService;
+
+public class AccessControlService extends AbstractAccessControlService<String> {
+
+ @Override
+ protected String getCurrentUserCacheKey() {
+ return getUserIdOfCurrentUser();
+ }
+
+ @Override
+ protected PermissionCollection execLoadPermissions(String userId) {
+ return null;
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/TextProviderService.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/TextProviderService.java
new file mode 100644
index 0000000..93c2989
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/TextProviderService.java
@@ -0,0 +1,16 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.core;
+
+import org.eclipse.scout.rt.platform.Order;
+import org.eclipse.scout.rt.platform.text.AbstractDynamicNlsTextProviderService;
+
+@Order(3550)
+public class TextProviderService extends AbstractDynamicNlsTextProviderService {
+
+ @Override
+ public String getDynamicNlsBaseName() {
+ return "${package}.core.texts.Texts";
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/person/PersonService.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/person/PersonService.java
new file mode 100644
index 0000000..38d2607
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/person/PersonService.java
@@ -0,0 +1,51 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.core.person;
+
+import static org.eclipse.scout.rt.platform.util.Assertions.assertNotNull;
+import static org.eclipse.scout.rt.platform.util.Assertions.assertTrue;
+import static org.eclipse.scout.rt.platform.util.StringUtility.hasText;
+
+import java.util.Optional;
+import java.util.stream.Stream;
+
+import org.eclipse.scout.rt.platform.BEANS;
+import org.eclipse.scout.rt.platform.service.IService;
+
+import ${package}.data.person.IPersonRepository;
+import ${package}.data.person.PersonDo;
+
+public class PersonService implements IService {
+
+ public PersonDo store(String id, PersonDo personDo) {
+ //TODO add validation and business logic here
+ BEANS.get(IPersonRepository.class).store(id, assertPersonDo(personDo));
+ return personDo;
+ }
+
+ public Optional<PersonDo> getById(String personId) {
+ //TODO add validation and business logic here
+ return BEANS.get(IPersonRepository.class).getById(personId);
+ }
+
+ public PersonDo create(PersonDo person) {
+ //TODO add validation and business logic here
+ return BEANS.get(IPersonRepository.class).create(assertPersonDo(person));
+ }
+
+ public int remove(String id) {
+ //TODO add validation and business logic here
+ return BEANS.get(IPersonRepository.class).remove(id);
+ }
+
+ public Stream<PersonDo> list() {
+ //TODO add validation and business logic here
+ return BEANS.get(IPersonRepository.class).list();
+ }
+
+ protected PersonDo assertPersonDo(PersonDo person) {
+ assertTrue(hasText(assertNotNull(person).getLastName()));
+ return person;
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/resources/META-INF/scout.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/resources/META-INF/scout.xml
new file mode 100644
index 0000000..760933e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/resources/META-INF/scout.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scout>
+</scout>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/resources/core/texts/Texts.properties b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/resources/core/texts/Texts.properties
new file mode 100644
index 0000000..03834b5
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/resources/core/texts/Texts.properties
@@ -0,0 +1,11 @@
+ApplicationTitle=${displayName}
+CancelMenuTooltip=Closes the form if there are no changes made. Otherwise it shows a message box asking to save the changes.
+CreatePerson=Create Person
+DeletePerson=Delete Person
+EditPerson=Edit Person
+FirstName=Firstname
+LanguageSwitchLoading=Reloading language
+LastName=Lastname
+MyDataOutlineTitle=My Data
+OkMenuTooltip=Saves and closes the form.
+Persons=Persons
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/translation.nls b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/translation.nls
new file mode 100644
index 0000000..9a8c1c2
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.core/translation.nls
@@ -0,0 +1,6 @@
+##################################################
+# This file is maintained by the nls editor #
+# To ensure a properly working nls support of #
+# keep this file untouched directly. #
+##################################################
+Nls-Class=${package}.core.TextProviderService
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/pom.xml
new file mode 100644
index 0000000..f13d06c
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/pom.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.data</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.shared</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/java/data/person/IPersonRepository.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/java/data/person/IPersonRepository.java
new file mode 100644
index 0000000..d55b37e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/java/data/person/IPersonRepository.java
@@ -0,0 +1,23 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.data.person;
+
+import java.util.Optional;
+import java.util.stream.Stream;
+
+import org.eclipse.scout.rt.platform.ApplicationScoped;
+
+@ApplicationScoped
+public interface IPersonRepository {
+
+ void store(String id, PersonDo person);
+
+ Stream<PersonDo> list();
+
+ Optional<PersonDo> getById(String id);
+
+ int remove(String id);
+
+ PersonDo create(PersonDo person);
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/java/data/person/PersonDo.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/java/data/person/PersonDo.java
new file mode 100644
index 0000000..5b460bb
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/java/data/person/PersonDo.java
@@ -0,0 +1,63 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.data.person;
+
+import org.eclipse.scout.rt.platform.dataobject.DoEntity;
+import org.eclipse.scout.rt.platform.dataobject.DoValue;
+import org.eclipse.scout.rt.platform.dataobject.TypeName;
+
+@TypeName("Person")
+public class PersonDo extends DoEntity {
+ public DoValue<String> firstName() {
+ return doValue("firstName");
+ }
+
+ public PersonDo withFirstName(String firstName) {
+ firstName().set(firstName);
+ return this;
+ }
+
+ public String getFirstName() {
+ return firstName().get();
+ }
+
+ public DoValue<String> lastName() {
+ return doValue("lastName");
+ }
+
+ public PersonDo withLastName(String lastName) {
+ lastName().set(lastName);
+ return this;
+ }
+
+ public String getLastName() {
+ return lastName().get();
+ }
+
+ public DoValue<String> personId() {
+ return doValue("personId");
+ }
+
+ public PersonDo withPersonId(String personId) {
+ personId().set(personId);
+ return this;
+ }
+
+ public String getPersonId() {
+ return personId().get();
+ }
+
+ public DoValue<String> sex() {
+ return doValue("sex");
+ }
+
+ public PersonDo withSex(String sex) {
+ personId().set(sex);
+ return this;
+ }
+
+ public String getSex() {
+ return sex().get();
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/java/data/person/PersonResponse.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/java/data/person/PersonResponse.java
new file mode 100644
index 0000000..cf12ce1
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/java/data/person/PersonResponse.java
@@ -0,0 +1,50 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.data.person;
+
+import static java.util.Arrays.asList;
+import static java.util.stream.Collectors.toCollection;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Stream;
+
+import org.eclipse.scout.rt.platform.dataobject.DoEntity;
+import org.eclipse.scout.rt.platform.dataobject.DoList;
+import org.eclipse.scout.rt.platform.dataobject.TypeName;
+
+@TypeName("PersonResponse")
+public class PersonResponse extends DoEntity {
+
+ public DoList<PersonDo> items() {
+ return doList("items");
+ }
+
+ public PersonResponse withItem(PersonDo persons) {
+ items().get().add(persons);
+ return this;
+ }
+
+ public PersonResponse withItems(Stream<PersonDo> persons) {
+ items().clear();
+ persons.collect(toCollection(items()::get));
+ return this;
+ }
+
+ public PersonResponse withItems(Collection<? extends PersonDo> persons) {
+ items().clear();
+ items().get().addAll(persons);
+ return this;
+ }
+
+ public PersonResponse withItems(PersonDo... persons) {
+ items().clear();
+ return withItems(asList(persons));
+ }
+
+ public List<PersonDo> getItems() {
+ return items().get();
+ }
+
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/resources/META-INF/scout.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/resources/META-INF/scout.xml
new file mode 100644
index 0000000..760933e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.data/src/main/resources/META-INF/scout.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scout>
+</scout>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/Generate jooq classes based on DB.launch b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/Generate jooq classes based on DB.launch
new file mode 100644
index 0000000..2ab4495
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/Generate jooq classes based on DB.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/${rootArtifactId}.db/src/main/java/${packageInPathFormat}/db/generator/GeneratorApplication.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="${package}.db.generator.GeneratorApplication"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="${rootArtifactId}.db"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dscout.jandex.rebuild=true -Dconfig.properties=../${rootArtifactId}.app.dev/src/main/resources/dev.db.config.properties -Dpersistence.sql.jdbc.mapping.name=jdbc:derby:./../${rootArtifactId}.app.dev/db"/>
+</launchConfiguration>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/Setup Local Database.launch b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/Setup Local Database.launch
new file mode 100644
index 0000000..fbc6cc5
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/Setup Local Database.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/${rootArtifactId}.db/src/main/java/${packageInPathFormat}/db/setup/DbSetup.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="${package}.db.setup.DbSetup"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="${rootArtifactId}.db"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dscout.jandex.rebuild=true -Dconfig.properties=../${rootArtifactId}.app.dev/src/main/resources/dev.db.config.properties -Dpersistence.sql.jdbc.mapping.name=jdbc:derby:./../${rootArtifactId}.app.dev/db;create=true"/>
+</launchConfiguration>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/pom.xml
new file mode 100644
index 0000000..b9402fe
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.db</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.persistence</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/Environment.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/Environment.java
new file mode 100644
index 0000000..6377917
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/Environment.java
@@ -0,0 +1,28 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db;
+
+import java.util.function.Consumer;
+
+import org.eclipse.scout.rt.platform.BEANS;
+import org.eclipse.scout.rt.platform.config.CONFIG;
+import org.eclipse.scout.rt.platform.util.Assertions;
+import org.jooq.DSLContext;
+
+import ${package}.persistence.PersistenceProperties.DialectProperty;
+import ${package}.persistence.PersistenceProperties.JdbcMappingNameProperty;
+import ${package}.persistence.PersistenceProperties.PasswordProperty;
+import ${package}.persistence.PersistenceProperties.UsernameProperty;
+
+public class Environment {
+
+ public void runWithConfig(Consumer<DSLContext> task) {
+ Assertions.assertNotNull(task);
+ BEANS.get(JooqEnvironmentService.class).runInJooq(task,
+ CONFIG.getPropertyValue(JdbcMappingNameProperty.class),
+ CONFIG.getPropertyValue(DialectProperty.class),
+ CONFIG.getPropertyValue(UsernameProperty.class),
+ CONFIG.getPropertyValue(PasswordProperty.class));
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/JooqEnvironmentService.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/JooqEnvironmentService.java
new file mode 100644
index 0000000..47bfb18
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/JooqEnvironmentService.java
@@ -0,0 +1,57 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.function.Consumer;
+import java.util.regex.Pattern;
+
+import org.eclipse.scout.rt.platform.config.CONFIG;
+import org.eclipse.scout.rt.platform.service.IService;
+import org.jooq.Configuration;
+import org.jooq.DSLContext;
+import org.jooq.SQLDialect;
+import org.jooq.conf.MappedSchema;
+import org.jooq.conf.RenderMapping;
+import org.jooq.conf.Settings;
+import org.jooq.impl.DSL;
+import org.jooq.impl.DefaultConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import ${package}.persistence.PersistenceProperties.SchemaProperty;
+
+public class JooqEnvironmentService implements IService {
+
+ private static final Logger LOG = LoggerFactory.getLogger(JooqEnvironmentService.class);
+
+ public void runInJooq(Consumer<DSLContext> task, String jdbcMappingName, SQLDialect dialect, String username, String password) {
+ try (Connection connection = DriverManager.getConnection(jdbcMappingName, username, password)) {
+ Configuration configuration = new DefaultConfiguration()
+ .set(connection)
+ .set(dialect);
+
+ Settings s = configuration.settings();
+ s.withRenderMapping(new RenderMapping()
+ .withSchemata(
+ new MappedSchema()
+ .withInputExpression(Pattern.compile("Schema"))
+ .withOutput(CONFIG.getPropertyValue(SchemaProperty.class))));
+
+ configuration.set(s);
+ runWithConfiguration(task, configuration);
+ }
+ catch (SQLException e) {
+ LOG.error("Failed to create connection.", e);
+ }
+ }
+
+ protected void runWithConfiguration(Consumer<DSLContext> task, Configuration configuration) {
+ try (DSLContext ctx = DSL.using(configuration)) {
+ task.accept(ctx);
+ }
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/generator/GeneratorApplication.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/generator/GeneratorApplication.java
new file mode 100644
index 0000000..416fa37
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/generator/GeneratorApplication.java
@@ -0,0 +1,71 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.generator;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.UUID;
+
+import org.eclipse.scout.rt.platform.config.CONFIG;
+import org.eclipse.scout.rt.platform.exception.PlatformException;
+import org.jooq.DSLContext;
+import org.jooq.codegen.GenerationTool;
+import org.jooq.codegen.JavaGenerator;
+import org.jooq.meta.derby.DerbyDatabase;
+import org.jooq.meta.jaxb.Configuration;
+import org.jooq.meta.jaxb.Database;
+import org.jooq.meta.jaxb.ForcedType;
+import org.jooq.meta.jaxb.Generator;
+import org.jooq.meta.jaxb.Schema;
+import org.jooq.meta.jaxb.Target;
+
+import ${package}.db.Environment;
+import ${package}.persistence.PersistenceProperties.SchemaProperty;
+import ${package}.persistence.common.DateConverter;
+
+public class GeneratorApplication {
+
+ public static final String OUTPUT_DIRECTORY = "../${rootArtifactId}.persistence/src/generated/java";
+ public static final String OUTPUT_PACKAGE = "${package}.persistence";
+
+ public static void main(String[] args) {
+ new Environment().runWithConfig(new GeneratorApplication()::generate);
+ }
+
+ public void generate(DSLContext context) {
+ Configuration configuration = new Configuration()
+ .withGenerator(new Generator()
+ .withName(JavaGenerator.class.getName())
+ .withDatabase(new Database()
+ .withForcedTypes(
+ new ForcedType()
+ .withName(UUID.class.getName())
+ .withTypes("varchar(36)"),
+ new ForcedType()
+ .withUserType(Date.class.getName())
+ .withConverter(DateConverter.class.getName())
+ .withTypes("timestamp"),
+ new ForcedType()
+ .withName(BigDecimal.class.getName())
+ .withTypes("bigint"))
+ .withName(DerbyDatabase.class.getName())
+ .withIncludes(".*")
+ .withSchemata(new Schema()
+ .withInputSchema(CONFIG.getPropertyValue(SchemaProperty.class))
+ .withOutputSchema("Schema"))
+ .withExcludes("SYS*.*"))
+ .withTarget(new Target()
+ .withDirectory(OUTPUT_DIRECTORY)
+ .withPackageName(OUTPUT_PACKAGE)));
+
+ GenerationTool tool = new GenerationTool();
+ tool.setConnection(context.configuration().connectionProvider().acquire());
+ try {
+ tool.run(configuration);
+ }
+ catch (Exception e) {
+ throw new PlatformException("Error generating jooq classes.", e);
+ }
+ }
+ }
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/helper/DatabaseHelper.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/helper/DatabaseHelper.java
new file mode 100644
index 0000000..516f11b
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/helper/DatabaseHelper.java
@@ -0,0 +1,38 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.helper;
+
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.eclipse.scout.rt.platform.Bean;
+import org.eclipse.scout.rt.platform.config.CONFIG;
+import org.eclipse.scout.rt.platform.util.StringUtility;
+import org.jooq.DSLContext;
+import org.jooq.Named;
+
+import ${package}.persistence.PersistenceProperties.SchemaProperty;
+
+@Bean
+public class DatabaseHelper {
+
+ public Set<String> getSchemaNames(DSLContext context) {
+ return context
+ .meta()
+ .getSchemas()
+ .stream()
+ .map(Named::getName)
+ .collect(Collectors.toSet());
+ }
+
+ public Set<String> getTableNames(DSLContext context) {
+ return context
+ .meta()
+ .getTables()
+ .stream()
+ .filter(table -> StringUtility.equalsIgnoreCase(table.getSchema().getName(), CONFIG.getPropertyValue(SchemaProperty.class)))
+ .map(Named::getName)
+ .collect(Collectors.toSet());
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/AbstractDatabaseObject.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/AbstractDatabaseObject.java
new file mode 100644
index 0000000..2922d5b
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/AbstractDatabaseObject.java
@@ -0,0 +1,44 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup;
+
+import org.eclipse.scout.rt.platform.util.StringUtility;
+import org.jooq.DSLContext;
+
+public abstract class AbstractDatabaseObject implements IDatabaseObject {
+
+ private DSLContext context;
+
+ @Override
+ public void setContext(DSLContext context) {
+ this.context = context;
+ }
+
+ @Override
+ public DSLContext getContext() {
+ return context;
+ }
+
+ @Override
+ public String getCreateSQL() {
+ return context
+ .createSchema(getName())
+ .getSQL();
+ }
+
+ @Override
+ public void create() {
+ String sql = getCreateSQL();
+ getLogger().info("SQL-DEV sql statement: {}", sql);
+
+ if (StringUtility.hasText(sql)) {
+ context.execute(sql);
+ }
+ }
+
+ @Override
+ public void drop() {
+
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/AbstractTable.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/AbstractTable.java
new file mode 100644
index 0000000..117a936
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/AbstractTable.java
@@ -0,0 +1,69 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup;
+
+import org.eclipse.scout.rt.platform.config.CONFIG;
+import org.eclipse.scout.rt.platform.util.StringUtility;
+import org.jooq.impl.DSL;
+
+import ${package}.db.setup.table.IGenerateTable;
+import ${package}.persistence.PersistenceProperties.SchemaProperty;
+
+public abstract class AbstractTable extends AbstractDatabaseObject implements IGenerateTable {
+
+ public static final String PRIMARY_KEY_POSTFIX = "_pk";
+
+ @Override
+ public String getSchemaName() {
+ return CONFIG.getPropertyValue(SchemaProperty.class);
+ }
+
+ @Override
+ public void create() {
+ getLogger().info("SQL-DEV create table: {}", getName());
+ super.create();
+ }
+
+ @Override
+ public void drop() {
+ getLogger().info("SQL-DEV drop table: {}", getName());
+
+ boolean exists = getContext().fetchExists(DSL.table(DSL.name(getName())));
+
+ if (exists) {
+ getContext().dropTable(getName()).execute();
+ }
+ }
+
+ protected String getPKName() {
+ return getName() + PRIMARY_KEY_POSTFIX;
+ }
+
+ @Override
+ public String getCreateSQL() {
+ return postProcessForSchema(createSQLInternal());
+ }
+
+ private String postProcessForSchema(String sql) {
+ if (!StringUtility.hasText(sql)) {
+ return null;
+ }
+
+ String schema = getSchemaName();
+ if (!StringUtility.hasText(schema)) {
+ return sql;
+ }
+
+ String sqlLC = sql.toLowerCase();
+ if (!sqlLC.startsWith("create table")) {
+ return sql;
+ }
+
+ if (!sqlLC.startsWith("create table \"" + schema + "\".")) {
+ return String.format("create table \"%s\".%s", schema, sql.substring(13));
+ }
+
+ return sql;
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/DbSetup.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/DbSetup.java
new file mode 100644
index 0000000..cce5922
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/DbSetup.java
@@ -0,0 +1,69 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup;
+
+import java.util.Set;
+
+import org.eclipse.scout.rt.platform.BEANS;
+import org.eclipse.scout.rt.platform.config.CONFIG;
+import org.jooq.DSLContext;
+
+import ${package}.db.Environment;
+import ${package}.db.helper.DatabaseHelper;
+import ${package}.db.setup.schema.IDatabaseSchema;
+import ${package}.db.setup.table.IGenerateTable;
+import ${package}.db.setup.table.data.IDataInitializer;
+import ${package}.persistence.PersistenceProperties.DatabaseAddSamplesProperty;
+
+public class DbSetup {
+
+ public static void main(String[] args) {
+ new Environment().runWithConfig(new DbSetup()::setup);
+ }
+
+ public void setup(DSLContext context) {
+ createDatabase(context);
+ insertData(context);
+ }
+
+ private void createDatabase(DSLContext context) {
+ createSchemas(context);
+ createTables(context);
+ }
+
+ private void createTables(DSLContext context) {
+ Set<String> tables = BEANS.get(DatabaseHelper.class).getTableNames(context);
+ for (IGenerateTable table : BEANS.all(IGenerateTable.class)) {
+ executeCreateSQL(context, tables, table);
+ }
+ }
+
+ private void createSchemas(DSLContext context) {
+ Set<String> schemas = BEANS.get(DatabaseHelper.class).getSchemaNames(context);
+ for (IDatabaseSchema schema : BEANS.all(IDatabaseSchema.class)) {
+ executeCreateSQL(context, schemas, schema);
+ }
+ }
+
+ private void executeCreateSQL(DSLContext context, Set<String> databaseObjects, IDatabaseObject databaseObjectToGenerate) {
+ if (databaseObjects.contains(databaseObjectToGenerate.getName())) {
+ return; // already exists
+ }
+
+ databaseObjectToGenerate.setContext(context);
+ context.execute(databaseObjectToGenerate.getCreateSQL());
+ }
+
+ private void insertData(DSLContext context) {
+ for (IDataInitializer table : BEANS.all(IDataInitializer.class)) {
+ // insert initial data (minimal data, required to run the application)
+ table.initialize(context);
+
+ // insert sample data (for development / demo)
+ if (CONFIG.getPropertyValue(DatabaseAddSamplesProperty.class)) {
+ table.addSamples(context);
+ }
+ }
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/IDatabaseObject.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/IDatabaseObject.java
new file mode 100644
index 0000000..7c15d48
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/IDatabaseObject.java
@@ -0,0 +1,23 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup;
+
+import org.eclipse.scout.rt.platform.ApplicationScoped;
+import org.jooq.DSLContext;
+import org.slf4j.Logger;
+
+@ApplicationScoped
+public interface IDatabaseObject {
+
+ void setContext(DSLContext context);
+ DSLContext getContext();
+
+ String getName();
+ String getCreateSQL();
+
+ void create();
+ void drop();
+
+ Logger getLogger();
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/schema/AbstractSchema.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/schema/AbstractSchema.java
new file mode 100644
index 0000000..1634516
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/schema/AbstractSchema.java
@@ -0,0 +1,22 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup.schema;
+
+import ${package}.db.setup.AbstractDatabaseObject;
+
+public abstract class AbstractSchema extends AbstractDatabaseObject implements IDatabaseSchema {
+
+ @Override
+ public void create() {
+ getLogger().info("SQL-DEV create schema: {}", getName());
+ super.create();
+ }
+
+ @Override
+ public void drop() {
+ getContext()
+ .dropSchemaIfExists(getName())
+ .execute();
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/schema/IDatabaseSchema.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/schema/IDatabaseSchema.java
new file mode 100644
index 0000000..6c9ee05
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/schema/IDatabaseSchema.java
@@ -0,0 +1,10 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup.schema;
+
+import ${package}.db.setup.IDatabaseObject;
+
+public interface IDatabaseSchema extends IDatabaseObject {
+
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/schema/Schema.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/schema/Schema.java
new file mode 100644
index 0000000..30cad5f
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/schema/Schema.java
@@ -0,0 +1,23 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup.schema;
+
+import org.eclipse.scout.rt.platform.config.CONFIG;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import ${package}.persistence.PersistenceProperties.SchemaProperty;
+
+public class Schema extends AbstractSchema {
+
+ @Override
+ public String getName() {
+ return CONFIG.getPropertyValue(SchemaProperty.class);
+ }
+
+ @Override
+ public Logger getLogger() {
+ return LoggerFactory.getLogger(Schema.class);
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/IGenerateTable.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/IGenerateTable.java
new file mode 100644
index 0000000..3831159
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/IGenerateTable.java
@@ -0,0 +1,30 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup.table;
+
+import java.sql.Date;
+
+import org.jooq.DataType;
+import org.jooq.impl.SQLDataType;
+
+import ${package}.db.setup.IDatabaseObject;
+
+public interface IGenerateTable extends IDatabaseObject {
+
+ DataType<String> TYPE_ID = SQLDataType.VARCHAR.length(36).nullable(false);
+
+ DataType<Boolean> TYPE_BOOLEAN = SQLDataType.BOOLEAN;
+ DataType<Integer> TYPE_INTEGER = SQLDataType.INTEGER;
+ DataType<Double> TYPE_DOUBLE = SQLDataType.DOUBLE;
+ DataType<byte[]> TYPE_BLOB = SQLDataType.BLOB;
+ DataType<Date> TYPE_DATE = SQLDataType.DATE;
+
+ DataType<String> TYPE_STRING_S = SQLDataType.VARCHAR.length(64).nullable(false);
+ DataType<String> TYPE_STRING_S_OPTIONAL = SQLDataType.VARCHAR.length(64).nullable(true);
+
+ String getSchemaName();
+
+ String createSQLInternal();
+
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/PersonTable.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/PersonTable.java
new file mode 100644
index 0000000..c507bb5
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/PersonTable.java
@@ -0,0 +1,41 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup.table;
+
+import org.jooq.impl.DSL;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import ${package}.db.setup.AbstractTable;
+
+public class PersonTable extends AbstractTable {
+
+ public static final String TABLE = "person";
+
+ public static final String PERSON_ID = "person_id";
+ public static final String LAST_NAME = "last_name";
+ public static final String FIRST_NAME = "first_name";
+
+ @Override
+ public String createSQLInternal() {
+ return getContext()
+ .createTable(getName())
+ .column(PERSON_ID, TYPE_ID)
+ .column(FIRST_NAME, TYPE_STRING_S_OPTIONAL)
+ .column(LAST_NAME, TYPE_STRING_S)
+ .constraints(
+ DSL.constraint(getPKName()).primaryKey(PERSON_ID))
+ .getSQL();
+ }
+
+ @Override
+ public String getName() {
+ return TABLE;
+ }
+
+ @Override
+ public Logger getLogger() {
+ return LoggerFactory.getLogger(PersonTable.class);
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/data/IDataInitializer.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/data/IDataInitializer.java
new file mode 100644
index 0000000..f60b205
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/data/IDataInitializer.java
@@ -0,0 +1,15 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup.table.data;
+
+import org.eclipse.scout.rt.platform.ApplicationScoped;
+import org.jooq.DSLContext;
+
+@ApplicationScoped
+public interface IDataInitializer {
+
+ void initialize(DSLContext context);
+
+ void addSamples(DSLContext context);
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/data/PersonTableDataInitializer.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/data/PersonTableDataInitializer.java
new file mode 100644
index 0000000..0699fd4
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/java/db/setup/table/data/PersonTableDataInitializer.java
@@ -0,0 +1,23 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.db.setup.table.data;
+
+import java.util.UUID;
+
+import org.jooq.DSLContext;
+
+import ${package}.persistence.tables.records.PersonRecord;
+
+public class PersonTableDataInitializer implements IDataInitializer {
+
+ @Override
+ public void initialize(DSLContext context) {
+ }
+
+ @Override
+ public void addSamples(DSLContext context) {
+ context.executeInsert(new PersonRecord(UUID.randomUUID().toString(), "Alice", "Miller"));
+ context.executeInsert(new PersonRecord(UUID.randomUUID().toString(), "Bob", "Smith"));
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/resources/META-INF/scout.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/resources/META-INF/scout.xml
new file mode 100644
index 0000000..760933e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/resources/META-INF/scout.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scout>
+</scout>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/resources/logback.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/resources/logback.xml
new file mode 100644
index 0000000..56985b9
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.db/src/main/resources/logback.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <variable scope="context" name="mdcPattern" value="principal=%X{subject.principal.name}, httpUri=%X{http.request.uri}, uiSession=%X{scout.ui.session.id}, scoutSession=%X{scout.session.id}, jobName=%X{scout.job.name}, cid=%X{scout.correlation.id}" />
+ <variable scope="context" name="mdcPatternWithoutEmptyValues" value="%replace(${mdcPattern}){'(, )?\\w+=((?=\\1)|, |$)', ''}" />
+ <variable scope="context" name="logPattern" value="%date{ISO8601} %-5level [%thread] %logger.%method\\(%file:%line\\) - %msg - MDC[${mdcPatternWithoutEmptyValues}]%n%ex" />
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="org.eclipse.scout.rt.platform.logger.LevelRangeFilter">
+ <levelMin>TRACE</levelMin>
+ <levelMax>INFO</levelMax>
+ </filter>
+ <encoder>
+ <pattern>${logPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="org.eclipse.scout.rt.platform.logger.LevelRangeFilter">
+ <levelMin>WARN</levelMin>
+ <levelMax>ERROR</levelMax>
+ </filter>
+ <target>System.err</target>
+ <encoder>
+ <pattern>${logPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="STDERR" />
+ </root>
+
+ <logger name="org.quartz" level="WARN" />
+</configuration>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/pom.xml
new file mode 100644
index 0000000..29fb50e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.persistence.test</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.persistence</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.shared.test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jul-to-slf4j</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/src/test/resources/META-INF/scout.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/src/test/resources/META-INF/scout.xml
new file mode 100644
index 0000000..760933e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/src/test/resources/META-INF/scout.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scout>
+</scout>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/src/test/resources/config.properties b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/src/test/resources/config.properties
new file mode 100644
index 0000000..2bb14c4
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/src/test/resources/config.properties
@@ -0,0 +1,6 @@
+### Application
+scout.application.name=${displayName}
+scout.application.version=0.0.1
+
+### Job manager
+scout.jobmanager.corePoolSize=10
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/src/test/resources/logback.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/src/test/resources/logback.xml
new file mode 100644
index 0000000..7833a07
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence.test/src/test/resources/logback.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <contextListener class="org.eclipse.scout.rt.platform.logger.AutoRegisteringJulLevelChangePropagator" />
+
+ <variable scope="context" name="mdcPattern" value="principal=%X{subject.principal.name}, jobName=%X{scout.job.name}, cid=%X{scout.correlation.id}" />
+ <variable scope="context" name="mdcPatternWithoutEmptyValues" value="%replace(${mdcPattern}){'(, )?\\w+=((?=\\1)|, |$)', ''}" />
+ <variable scope="context" name="logPattern" value="%date{ISO8601} %-5level [%thread] %logger.%method\\(%file:%line\\) - %msg - MDC[${mdcPatternWithoutEmptyValues}]%n%ex" />
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="org.eclipse.scout.rt.platform.logger.LevelRangeFilter">
+ <levelMin>TRACE</levelMin>
+ <levelMax>INFO</levelMax>
+ </filter>
+ <encoder>
+ <pattern>${logPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="org.eclipse.scout.rt.platform.logger.LevelRangeFilter">
+ <levelMin>WARN</levelMin>
+ <levelMax>ERROR</levelMax>
+ </filter>
+ <target>System.err</target>
+ <encoder>
+ <pattern>${logPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="STDERR" />
+ </root>
+
+ <logger name="org.quartz" level="WARN" />
+
+ <!-- early deadlock detection during bean creation -->
+ <logger name="org.eclipse.scout.rt.platform.internal.DefaultBeanInstanceProducer" level="DEBUG" />
+
+</configuration>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/pom.xml
new file mode 100644
index 0000000..c46f2f3
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/pom.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.persistence</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.data</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jooq</groupId>
+ <artifactId>jooq</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jooq</groupId>
+ <artifactId>jooq-meta</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jooq</groupId>
+ <artifactId>jooq-codegen</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.server.jdbc</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/DefaultCatalog.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/DefaultCatalog.java
new file mode 100644
index 0000000..9187d97
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/DefaultCatalog.java
@@ -0,0 +1,63 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * This file is generated by jOOQ.
+ */
+package ${package}.persistence;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.annotation.Generated;
+
+import org.jooq.Schema;
+import org.jooq.impl.CatalogImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@Generated(
+ value = {
+ "http://www.jooq.org",
+ "jOOQ version:3.11.1"
+ },
+ comments = "This class is generated by jOOQ"
+)
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class DefaultCatalog extends CatalogImpl {
+
+ private static final long serialVersionUID = 625905281;
+
+ /**
+ * The reference instance of <code></code>
+ */
+ public static final DefaultCatalog DEFAULT_CATALOG = new DefaultCatalog();
+
+ /**
+ * The schema <code>SCOUTAPP</code>.
+ */
+ public final Scoutapp SCOUTAPP = ${package}.persistence.Scoutapp.SCOUTAPP;
+
+ /**
+ * No further instances allowed
+ */
+ private DefaultCatalog() {
+ super("");
+ }
+
+ @Override
+ public final List<Schema> getSchemas() {
+ List result = new ArrayList();
+ result.addAll(getSchemas0());
+ return result;
+ }
+
+ private final List<Schema> getSchemas0() {
+ return Arrays.<Schema>asList(
+ Scoutapp.SCOUTAPP);
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/Keys.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/Keys.java
new file mode 100644
index 0000000..f602126
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/Keys.java
@@ -0,0 +1,55 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * This file is generated by jOOQ.
+ */
+package ${package}.persistence;
+
+
+import javax.annotation.Generated;
+
+import ${package}.persistence.tables.Person;
+import ${package}.persistence.tables.records.PersonRecord;
+import org.jooq.UniqueKey;
+import org.jooq.impl.Internal;
+
+
+/**
+ * A class modelling foreign key relationships and constraints of tables of
+ * the <code>SCOUTAPP</code> schema.
+ */
+@Generated(
+ value = {
+ "http://www.jooq.org",
+ "jOOQ version:3.11.1"
+ },
+ comments = "This class is generated by jOOQ"
+)
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class Keys {
+
+ // -------------------------------------------------------------------------
+ // IDENTITY definitions
+ // -------------------------------------------------------------------------
+
+
+ // -------------------------------------------------------------------------
+ // UNIQUE and PRIMARY KEY definitions
+ // -------------------------------------------------------------------------
+
+ public static final UniqueKey<PersonRecord> PERSON_PK = UniqueKeys0.PERSON_PK;
+
+ // -------------------------------------------------------------------------
+ // FOREIGN KEY definitions
+ // -------------------------------------------------------------------------
+
+
+ // -------------------------------------------------------------------------
+ // [#1459] distribute members to avoid static initialisers > 64kb
+ // -------------------------------------------------------------------------
+
+ private static class UniqueKeys0 {
+ public static final UniqueKey<PersonRecord> PERSON_PK = Internal.createUniqueKey(Person.PERSON, "person_pk", Person.PERSON.PERSON_ID);
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/Scoutapp.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/Scoutapp.java
new file mode 100644
index 0000000..e5a240e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/Scoutapp.java
@@ -0,0 +1,74 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * This file is generated by jOOQ.
+ */
+package ${package}.persistence;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.annotation.Generated;
+
+import ${package}.persistence.tables.Person;
+import org.jooq.Catalog;
+import org.jooq.Table;
+import org.jooq.impl.SchemaImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@Generated(
+ value = {
+ "http://www.jooq.org",
+ "jOOQ version:3.11.1"
+ },
+ comments = "This class is generated by jOOQ"
+)
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class Scoutapp extends SchemaImpl {
+
+ private static final long serialVersionUID = -600629668;
+
+ /**
+ * The reference instance of <code>SCOUTAPP</code>
+ */
+ public static final Scoutapp SCOUTAPP = new Scoutapp();
+
+ /**
+ * The table <code>SCOUTAPP.person</code>.
+ */
+ public final Person PERSON = ${package}.persistence.tables.Person.PERSON;
+
+ /**
+ * No further instances allowed
+ */
+ private Scoutapp() {
+ super("SCOUTAPP", null);
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Catalog getCatalog() {
+ return DefaultCatalog.DEFAULT_CATALOG;
+ }
+
+ @Override
+ public final List<Table<?>> getTables() {
+ List result = new ArrayList();
+ result.addAll(getTables0());
+ return result;
+ }
+
+ private final List<Table<?>> getTables0() {
+ return Arrays.<Table<?>>asList(
+ Person.PERSON);
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/Tables.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/Tables.java
new file mode 100644
index 0000000..ed4a586
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/Tables.java
@@ -0,0 +1,32 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * This file is generated by jOOQ.
+ */
+package ${package}.persistence;
+
+
+import javax.annotation.Generated;
+
+import ${package}.persistence.tables.Person;
+
+
+/**
+ * Convenience access to all tables in SCOUTAPP
+ */
+@Generated(
+ value = {
+ "http://www.jooq.org",
+ "jOOQ version:3.11.1"
+ },
+ comments = "This class is generated by jOOQ"
+)
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class Tables {
+
+ /**
+ * The table <code>SCOUTAPP.person</code>.
+ */
+ public static final Person PERSON = ${package}.persistence.tables.Person.PERSON;
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/tables/Person.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/tables/Person.java
new file mode 100644
index 0000000..43d4946
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/tables/Person.java
@@ -0,0 +1,161 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * This file is generated by jOOQ.
+ */
+package ${package}.persistence.tables;
+
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.annotation.Generated;
+
+import ${package}.persistence.Keys;
+import ${package}.persistence.Scoutapp;
+import ${package}.persistence.tables.records.PersonRecord;
+import org.jooq.Field;
+import org.jooq.ForeignKey;
+import org.jooq.Name;
+import org.jooq.Record;
+import org.jooq.Schema;
+import org.jooq.Table;
+import org.jooq.TableField;
+import org.jooq.UniqueKey;
+import org.jooq.impl.DSL;
+import org.jooq.impl.TableImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@Generated(
+ value = {
+ "http://www.jooq.org",
+ "jOOQ version:3.11.1"
+ },
+ comments = "This class is generated by jOOQ"
+)
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class Person extends TableImpl<PersonRecord> {
+
+ private static final long serialVersionUID = -1840964516;
+
+ /**
+ * The reference instance of <code>SCOUTAPP.person</code>
+ */
+ public static final Person PERSON = new Person();
+
+ /**
+ * The class holding records for this type
+ */
+ @Override
+ public Class<PersonRecord> getRecordType() {
+ return PersonRecord.class;
+ }
+
+ /**
+ * The column <code>SCOUTAPP.person.person_id</code>.
+ */
+ public final TableField<PersonRecord, String> PERSON_ID = createField("person_id", org.jooq.impl.SQLDataType.VARCHAR(36).nullable(false), this, "");
+
+ /**
+ * The column <code>SCOUTAPP.person.first_name</code>.
+ */
+ public final TableField<PersonRecord, String> FIRST_NAME = createField("first_name", org.jooq.impl.SQLDataType.VARCHAR(64), this, "");
+
+ /**
+ * The column <code>SCOUTAPP.person.last_name</code>.
+ */
+ public final TableField<PersonRecord, String> LAST_NAME = createField("last_name", org.jooq.impl.SQLDataType.VARCHAR(64).nullable(false), this, "");
+
+ /**
+ * Create a <code>SCOUTAPP.person</code> table reference
+ */
+ public Person() {
+ this(DSL.name("person"), null);
+ }
+
+ /**
+ * Create an aliased <code>SCOUTAPP.person</code> table reference
+ */
+ public Person(String alias) {
+ this(DSL.name(alias), PERSON);
+ }
+
+ /**
+ * Create an aliased <code>SCOUTAPP.person</code> table reference
+ */
+ public Person(Name alias) {
+ this(alias, PERSON);
+ }
+
+ private Person(Name alias, Table<PersonRecord> aliased) {
+ this(alias, aliased, null);
+ }
+
+ private Person(Name alias, Table<PersonRecord> aliased, Field<?>[] parameters) {
+ super(alias, null, aliased, parameters, DSL.comment(""));
+ }
+
+ public <O extends Record> Person(Table<O> child, ForeignKey<O, PersonRecord> key) {
+ super(child, key, PERSON);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Schema getSchema() {
+ return Scoutapp.SCOUTAPP;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public UniqueKey<PersonRecord> getPrimaryKey() {
+ return Keys.PERSON_PK;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<UniqueKey<PersonRecord>> getKeys() {
+ return Arrays.<UniqueKey<PersonRecord>>asList(Keys.PERSON_PK);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Person as(String alias) {
+ return new Person(DSL.name(alias), this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Person as(Name alias) {
+ return new Person(alias, this);
+ }
+
+ /**
+ * Rename this table
+ */
+ @Override
+ public Person rename(String name) {
+ return new Person(DSL.name(name), null);
+ }
+
+ /**
+ * Rename this table
+ */
+ @Override
+ public Person rename(Name name) {
+ return new Person(name, null);
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/tables/records/PersonRecord.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/tables/records/PersonRecord.java
new file mode 100644
index 0000000..d6a2a27
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/generated/java/persistence/tables/records/PersonRecord.java
@@ -0,0 +1,240 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * This file is generated by jOOQ.
+ */
+package ${package}.persistence.tables.records;
+
+
+import javax.annotation.Generated;
+
+import ${package}.persistence.tables.Person;
+import org.jooq.Field;
+import org.jooq.Record1;
+import org.jooq.Record3;
+import org.jooq.Row3;
+import org.jooq.impl.UpdatableRecordImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@Generated(
+ value = {
+ "http://www.jooq.org",
+ "jOOQ version:3.11.1"
+ },
+ comments = "This class is generated by jOOQ"
+)
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class PersonRecord extends UpdatableRecordImpl<PersonRecord> implements Record3<String, String, String> {
+
+ private static final long serialVersionUID = -1254890783;
+
+ /**
+ * Setter for <code>SCOUTAPP.person.person_id</code>.
+ */
+ public void setPersonId(String value) {
+ set(0, value);
+ }
+
+ /**
+ * Getter for <code>SCOUTAPP.person.person_id</code>.
+ */
+ public String getPersonId() {
+ return (String) get(0);
+ }
+
+ /**
+ * Setter for <code>SCOUTAPP.person.first_name</code>.
+ */
+ public void setFirstName(String value) {
+ set(1, value);
+ }
+
+ /**
+ * Getter for <code>SCOUTAPP.person.first_name</code>.
+ */
+ public String getFirstName() {
+ return (String) get(1);
+ }
+
+ /**
+ * Setter for <code>SCOUTAPP.person.last_name</code>.
+ */
+ public void setLastName(String value) {
+ set(2, value);
+ }
+
+ /**
+ * Getter for <code>SCOUTAPP.person.last_name</code>.
+ */
+ public String getLastName() {
+ return (String) get(2);
+ }
+
+ // -------------------------------------------------------------------------
+ // Primary key information
+ // -------------------------------------------------------------------------
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Record1<String> key() {
+ return (Record1) super.key();
+ }
+
+ // -------------------------------------------------------------------------
+ // Record3 type implementation
+ // -------------------------------------------------------------------------
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Row3<String, String, String> fieldsRow() {
+ return (Row3) super.fieldsRow();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Row3<String, String, String> valuesRow() {
+ return (Row3) super.valuesRow();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Field<String> field1() {
+ return Person.PERSON.PERSON_ID;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Field<String> field2() {
+ return Person.PERSON.FIRST_NAME;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Field<String> field3() {
+ return Person.PERSON.LAST_NAME;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String component1() {
+ return getPersonId();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String component2() {
+ return getFirstName();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String component3() {
+ return getLastName();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String value1() {
+ return getPersonId();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String value2() {
+ return getFirstName();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String value3() {
+ return getLastName();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public PersonRecord value1(String value) {
+ setPersonId(value);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public PersonRecord value2(String value) {
+ setFirstName(value);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public PersonRecord value3(String value) {
+ setLastName(value);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public PersonRecord values(String value1, String value2, String value3) {
+ value1(value1);
+ value2(value2);
+ value3(value3);
+ return this;
+ }
+
+ // -------------------------------------------------------------------------
+ // Constructors
+ // -------------------------------------------------------------------------
+
+ /**
+ * Create a detached PersonRecord
+ */
+ public PersonRecord() {
+ super(Person.PERSON);
+ }
+
+ /**
+ * Create a detached, initialised PersonRecord
+ */
+ public PersonRecord(String personId, String firstName, String lastName) {
+ super(Person.PERSON);
+
+ set(0, personId);
+ set(1, firstName);
+ set(2, lastName);
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/IJooqService.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/IJooqService.java
new file mode 100644
index 0000000..9607482
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/IJooqService.java
@@ -0,0 +1,27 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.persistence;
+
+import java.util.function.Consumer;
+import java.util.function.Function;
+
+import org.eclipse.scout.rt.platform.service.IService;
+import org.jooq.DSLContext;
+
+public interface IJooqService extends IService {
+
+ /**
+ * @param task
+ * The task to execute. Must not be {@code null}.
+ * @return The result of the task specified.
+ */
+ <T> T apply(Function<DSLContext, T> task);
+
+ /**
+ * @param task
+ * The task to execute. Must not be {@code null}.
+ */
+ void accept(Consumer<DSLContext> task);
+
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/JooqSqlService.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/JooqSqlService.java
new file mode 100644
index 0000000..2d28e59
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/JooqSqlService.java
@@ -0,0 +1,102 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.persistence;
+
+import java.sql.Connection;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.regex.Pattern;
+
+import org.eclipse.scout.rt.platform.CreateImmediately;
+import org.eclipse.scout.rt.platform.config.CONFIG;
+import org.eclipse.scout.rt.server.jdbc.derby.AbstractDerbySqlService;
+import org.jooq.Configuration;
+import org.jooq.ConnectionProvider;
+import org.jooq.DSLContext;
+import org.jooq.conf.MappedSchema;
+import org.jooq.conf.RenderMapping;
+import org.jooq.conf.Settings;
+import org.jooq.exception.DataAccessException;
+import org.jooq.impl.DSL;
+import org.jooq.impl.DefaultConfiguration;
+
+import ${package}.persistence.PersistenceProperties.DialectProperty;
+import ${package}.persistence.PersistenceProperties.JdbcMappingNameProperty;
+import ${package}.persistence.PersistenceProperties.PasswordProperty;
+import ${package}.persistence.PersistenceProperties.SchemaProperty;
+import ${package}.persistence.PersistenceProperties.UsernameProperty;
+
+@CreateImmediately
+public class JooqSqlService extends AbstractDerbySqlService implements IJooqService {
+
+ private final Configuration m_configuration;
+ private final ConnectionProvider m_connectionProvider;
+
+ protected JooqSqlService() {
+ m_configuration = initializeConfiguration();
+ m_connectionProvider = new ScoutConnectionProvider();
+ }
+
+ private static Configuration initializeConfiguration() {
+ Configuration configuration = new DefaultConfiguration();
+ configuration.set(CONFIG.getPropertyValue(DialectProperty.class));
+ Settings s = configuration.settings();
+ s.withRenderMapping(new RenderMapping()
+ .withSchemata(
+ new MappedSchema()
+ .withInputExpression(Pattern.compile(CONFIG.getPropertyValue(SchemaProperty.class)))
+ .withOutput(CONFIG.getPropertyValue(SchemaProperty.class))));
+
+ configuration.set(s);
+ return configuration;
+ }
+
+ @Override
+ protected String getConfiguredJdbcDriverName() {
+ return CONFIG.getPropertyValue(PersistenceProperties.DriverProperty.class);
+ }
+
+ @Override
+ protected String getConfiguredUsername() {
+ return CONFIG.getPropertyValue(UsernameProperty.class);
+ }
+
+ @Override
+ protected String getConfiguredPassword() {
+ return CONFIG.getPropertyValue(PasswordProperty.class);
+ }
+
+ @Override
+ protected String getConfiguredJdbcMappingName() {
+ return CONFIG.getPropertyValue(JdbcMappingNameProperty.class);
+ }
+
+ @Override
+ public <T> T apply(Function<DSLContext, T> task) {
+ try (DSLContext ctx = DSL.using(m_configuration.derive(m_connectionProvider))) {
+ return task.apply(ctx);
+ }
+ }
+
+ @Override
+ public void accept(Consumer<DSLContext> task) {
+ apply(c -> {
+ task.accept(c);
+ return null;
+ });
+ }
+
+ private class ScoutConnectionProvider implements ConnectionProvider {
+
+ @Override
+ public Connection acquire() throws DataAccessException {
+ return getConnection();
+ }
+
+ @Override
+ public void release(Connection connection) throws DataAccessException {
+ // NOP
+ }
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/PersistenceProperties.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/PersistenceProperties.java
new file mode 100644
index 0000000..9a01c12
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/PersistenceProperties.java
@@ -0,0 +1,162 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.persistence;
+
+import java.util.Arrays;
+
+import org.eclipse.scout.rt.platform.config.AbstractBooleanConfigProperty;
+import org.eclipse.scout.rt.platform.config.AbstractConfigProperty;
+import org.eclipse.scout.rt.platform.config.AbstractStringConfigProperty;
+import org.eclipse.scout.rt.platform.exception.PlatformException;
+import org.eclipse.scout.rt.platform.util.ObjectUtility;
+import org.eclipse.scout.rt.platform.util.StringUtility;
+import org.jooq.SQLDialect;
+
+public final class PersistenceProperties {
+
+ private PersistenceProperties() {
+ }
+
+ public static class DialectProperty extends AbstractConfigProperty<SQLDialect, String> {
+
+ @Override
+ public SQLDialect getDefaultValue() {
+ return SQLDialect.DERBY;
+ }
+
+ @Override
+ public String getKey() {
+ return "persistence.sql.dialect";
+ }
+
+ @Override
+ protected SQLDialect parse(String value) {
+ String dialect = ObjectUtility.nvl(value, "");
+ try {
+ return SQLDialect.valueOf(dialect);
+ }
+ catch (Exception e) {
+ throw new PlatformException("Invalid SQL dialect '" + dialect + "' for property '" + getKey()
+ + "'. Valid names are " + getValidValues());
+ }
+ }
+
+ private String getValidValues() {
+ return "'" + StringUtility.join("','", Arrays.asList(SQLDialect.values())) + "'";
+ }
+
+ @Override
+ public String description() {
+ return "The type of database that is used.";
+ }
+ }
+
+ public static class JdbcMappingNameProperty extends AbstractStringConfigProperty {
+
+ @Override
+ public String getDefaultValue() {
+ return null;
+ }
+
+ @Override
+ public String getKey() {
+ return "persistence.sql.jdbc.mapping.name";
+ }
+
+ @Override
+ public String description() {
+ return "The JDBC mapping name of the database.";
+ }
+ }
+
+ public static class UsernameProperty extends AbstractStringConfigProperty {
+
+ @Override
+ public String getDefaultValue() {
+ return "db_username";
+ }
+
+ @Override
+ public String getKey() {
+ return "persistence.sql.username";
+ }
+
+ @Override
+ public String description() {
+ return "Specifies the username used to connect to the database.";
+ }
+ }
+
+ public static class PasswordProperty extends AbstractStringConfigProperty {
+
+ @Override
+ public String getDefaultValue() {
+ return null;
+ }
+
+ @Override
+ public String getKey() {
+ return "persistence.sql.password";
+ }
+
+ @Override
+ public String description() {
+ return "Specifies the password of the user used to connect to the database.";
+ }
+ }
+
+ public static class SchemaProperty extends AbstractStringConfigProperty {
+
+ @Override
+ public String getDefaultValue() {
+ return "SCOUTAPP";
+ }
+
+ @Override
+ public String getKey() {
+ return "persistence.sql.schema";
+ }
+
+ @Override
+ public String description() {
+ return "Specifies the name of the schema in the database.";
+ }
+ }
+
+ public static class DatabaseAddSamplesProperty extends AbstractBooleanConfigProperty {
+
+ @Override
+ public Boolean getDefaultValue() {
+ return true;
+ }
+
+ @Override
+ public String getKey() {
+ return "persistence.sql.autopopulate";
+ }
+
+ @Override
+ public String description() {
+ return "Specifies if some sample data should be added after setup of the database.";
+ }
+ }
+
+ public static class DriverProperty extends AbstractStringConfigProperty {
+
+ @Override
+ public String getDefaultValue() {
+ return "org.apache.derby.jdbc.EmbeddedDriver";
+ }
+
+ @Override
+ public String getKey() {
+ return "persistence.sql.driver";
+ }
+
+ @Override
+ public String description() {
+ return "JDBC driver to use.";
+ }
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/AbstractRepository.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/AbstractRepository.java
new file mode 100644
index 0000000..409ce51
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/AbstractRepository.java
@@ -0,0 +1,83 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.persistence.common;
+
+import java.util.Optional;
+import java.util.stream.Stream;
+
+import org.eclipse.scout.rt.platform.BEANS;
+import org.eclipse.scout.rt.platform.dataobject.DoEntity;
+import org.jooq.DSLContext;
+import org.jooq.Record;
+import org.jooq.Table;
+
+import ${package}.persistence.IJooqService;
+
+public abstract class AbstractRepository<TABLE extends Table<RECORD>, RECORD extends Record, DO extends DoEntity> implements IBaseService<TABLE, RECORD, DO> {
+
+ abstract protected DoEntityBeanMappings<DO, RECORD> mappings();
+
+ /**
+ * Returns true if a record with the provided id exists using the specified context
+ */
+ protected boolean exists(DSLContext context, String id) {
+ return context.fetchExists(
+ context.select()
+ .from(getTable())
+ .where(getIdColumn().eq(id)));
+ }
+
+ @Override
+ public RECORD newRecord() {
+ return BEANS.get(IJooqService.class).apply(c -> c.newRecord(getTable()));
+ }
+
+ @Override
+ public int remove(String id) {
+ return BEANS.get(IJooqService.class).apply(c -> c
+ .deleteFrom(getTable())
+ .where(getIdColumn().eq(id))
+ .execute());
+ }
+
+ @Override
+ public Optional<RECORD> get(String id) {
+ return BEANS.get(IJooqService.class).apply(C -> Optional.ofNullable(C
+ .selectFrom(getTable())
+ .where(getIdColumn().eq(id))
+ .fetchOne()));
+ }
+
+ @Override
+ public Stream<RECORD> getAll() {
+ return BEANS.get(IJooqService.class).apply(c -> c.selectFrom(getTable()).fetchStream());
+ }
+
+ @Override
+ public void store(String id, RECORD record) {
+ BEANS.get(IJooqService.class).accept(c -> {
+ if (exists(c, id)) {
+ c.update(getTable())
+ .set(record)
+ .where(getIdColumn().eq(id))
+ .execute();
+ }
+ else {
+ c.insertInto(getTable())
+ .set(record)
+ .execute();
+ }
+ });
+ }
+
+ protected RECORD fromDoToRecord(DO cDo, RECORD cBean) {
+ mappings().fromDoToRecord(cDo, cBean);
+ return cBean;
+ }
+
+ protected DO fromRecordToDo(RECORD cBean, DO cDo) {
+ mappings().fromEntityBeanToDo(cBean, cDo);
+ return cDo;
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/DateConverter.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/DateConverter.java
new file mode 100644
index 0000000..10363cd
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/DateConverter.java
@@ -0,0 +1,35 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.persistence.common;
+
+import java.sql.Timestamp;
+import java.util.Date;
+import java.util.Optional;
+
+import org.jooq.Converter;
+
+public class DateConverter implements Converter<Timestamp, Date> {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public Date from(Timestamp databaseObject) {
+ return Optional.ofNullable(databaseObject).map(dod -> new Date(dod.getTime())).orElse(null);
+ }
+
+ @Override
+ public Timestamp to(Date userObject) {
+ return Optional.ofNullable(userObject).map(ud -> new Timestamp(ud.getTime())).orElse(null);
+ }
+
+ @Override
+ public Class<Timestamp> fromType() {
+ return Timestamp.class;
+ }
+
+ @Override
+ public Class<Date> toType() {
+ return Date.class;
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/DoEntityBeanMapping.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/DoEntityBeanMapping.java
new file mode 100644
index 0000000..a0b4ed6
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/DoEntityBeanMapping.java
@@ -0,0 +1,57 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.persistence.common;
+
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+
+import org.eclipse.scout.rt.platform.dataobject.DoEntity;
+import org.eclipse.scout.rt.platform.dataobject.DoValue;
+import org.eclipse.scout.rt.platform.util.Assertions;
+
+public class DoEntityBeanMapping<DO_ENTITY extends DoEntity, ENTITY_BEAN, VALUE> {
+
+ private final Function<DO_ENTITY, DoValue<VALUE>> m_doRef;
+ private final Function<ENTITY_BEAN, VALUE> m_entityBeanGetter;
+ private final BiConsumer<ENTITY_BEAN, VALUE> m_entityBeanSetter;
+
+ public DoEntityBeanMapping(Function<DO_ENTITY, DoValue<VALUE>> doRef, Function<ENTITY_BEAN, VALUE> entityBeanGetter, BiConsumer<ENTITY_BEAN, VALUE> entityBeanSetter) {
+ m_doRef = Assertions.assertNotNull(doRef, "doRef must be set");
+ m_entityBeanGetter = entityBeanGetter;
+ m_entityBeanSetter = entityBeanSetter;
+ }
+
+ protected Function<DO_ENTITY, DoValue<VALUE>> getDoRef() {
+ return m_doRef;
+ }
+
+ protected Function<ENTITY_BEAN, VALUE> getEntityBeanGetter() {
+ return m_entityBeanGetter;
+ }
+
+ protected BiConsumer<ENTITY_BEAN, VALUE> getEntityBeanSetter() {
+ return m_entityBeanSetter;
+ }
+
+ public void fromEntityBeanToDo(ENTITY_BEAN entityBean, DO_ENTITY doNode) {
+ if (getEntityBeanGetter() == null) {
+ return;
+ }
+
+ VALUE value = getEntityBeanGetter().apply(entityBean);
+ DoValue<VALUE> doRef = getDoRef().apply(doNode);
+ doRef.set(value);
+ }
+
+ public void fromDoToEntityBean(DO_ENTITY doNode, ENTITY_BEAN entityBean) {
+ if (getEntityBeanSetter() == null) {
+ return;
+ }
+
+ DoValue<VALUE> doRef = getDoRef().apply(doNode);
+ if (doRef.exists()) {
+ getEntityBeanSetter().accept(entityBean, doRef.get());
+ }
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/DoEntityBeanMappings.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/DoEntityBeanMappings.java
new file mode 100644
index 0000000..31bf9f4
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/DoEntityBeanMappings.java
@@ -0,0 +1,45 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.persistence.common;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+
+import org.eclipse.scout.rt.platform.dataobject.DoEntity;
+import org.eclipse.scout.rt.platform.dataobject.DoValue;
+
+public class DoEntityBeanMappings<DO_ENTITY extends DoEntity, ENTITY_BEAN> {
+
+ private List<DoEntityBeanMapping<DO_ENTITY, ENTITY_BEAN, ?>> m_mappings = new LinkedList<>();
+
+ public List<DoEntityBeanMapping<DO_ENTITY, ENTITY_BEAN, ?>> getMappings() {
+ return m_mappings;
+ }
+
+ /**
+ * Read-only, no setter for entity bean.
+ */
+ public <VALUE> DoEntityBeanMappings<DO_ENTITY, ENTITY_BEAN> with(Function<DO_ENTITY, DoValue<VALUE>> doRef, Function<ENTITY_BEAN, VALUE> entityBeanGetter) {
+ return with(doRef, entityBeanGetter, null);
+ }
+
+ /**
+ * There is no duplicate detection meaning that adding a DO node multiple times will execute the corresponding action
+ * multiple times.
+ */
+ public <VALUE> DoEntityBeanMappings<DO_ENTITY, ENTITY_BEAN> with(Function<DO_ENTITY, DoValue<VALUE>> doRef, Function<ENTITY_BEAN, VALUE> entityBeanGetter, BiConsumer<ENTITY_BEAN, VALUE> entityBeanSetter) {
+ getMappings().add(new DoEntityBeanMapping<>(doRef, entityBeanGetter, entityBeanSetter));
+ return this;
+ }
+
+ public void fromEntityBeanToDo(ENTITY_BEAN entityBean, DO_ENTITY doNode) {
+ getMappings().stream().forEach(n -> n.fromEntityBeanToDo(entityBean, doNode));
+ }
+
+ public void fromDoToRecord(DO_ENTITY doNode, ENTITY_BEAN entityBean) {
+ getMappings().stream().forEach(n -> n.fromDoToEntityBean(doNode, entityBean));
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/IBaseService.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/IBaseService.java
new file mode 100644
index 0000000..ea1154e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/common/IBaseService.java
@@ -0,0 +1,54 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.persistence.common;
+
+import java.util.Optional;
+import java.util.stream.Stream;
+
+import org.eclipse.scout.rt.platform.ApplicationScoped;
+import org.eclipse.scout.rt.platform.dataobject.DoEntity;
+import org.jooq.Field;
+import org.jooq.Record;
+import org.jooq.Table;
+
+@ApplicationScoped
+public interface IBaseService<TABLE extends Table<RECORD>, RECORD extends Record, DO extends DoEntity> {
+
+ /**
+ * Returns the table object associated with this service.
+ */
+ TABLE getTable();
+
+ /**
+ * Returns the id column for the table object associated with this service.
+ */
+ Field<String> getIdColumn();
+
+ /**
+ * Deletes the record with the specified id Returns number of records deleted
+ */
+ int remove(String id);
+
+ /**
+ * Returns the record for the specified id. Returns null if no such record exists.
+ */
+ Optional<RECORD> get(String id);
+
+ /**
+ * Returns all available records.
+ */
+ Stream<RECORD> getAll();
+
+ /**
+ * Persists the provided record based on the id specified. If no record with this id exists a new record is created,
+ * otherwise the existing record is updated.
+ */
+ void store(String id, RECORD record);
+
+ /**
+ * @return
+ */
+ RECORD newRecord();
+
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/person/PersonRepository.java b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/person/PersonRepository.java
new file mode 100644
index 0000000..50825c9
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/java/persistence/person/PersonRepository.java
@@ -0,0 +1,73 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.persistence.person;
+
+import java.util.Optional;
+import java.util.UUID;
+import java.util.stream.Stream;
+
+import org.eclipse.scout.rt.platform.BEANS;
+import org.jooq.Field;
+
+import ${package}.data.person.IPersonRepository;
+import ${package}.data.person.PersonDo;
+import ${package}.persistence.common.AbstractRepository;
+import ${package}.persistence.common.DoEntityBeanMappings;
+import ${package}.persistence.tables.Person;
+import ${package}.persistence.tables.records.PersonRecord;
+
+public class PersonRepository extends AbstractRepository<Person, PersonRecord, PersonDo> implements IPersonRepository {
+
+ @Override
+ public Person getTable() {
+ return Person.PERSON;
+ }
+
+ @Override
+ public Field<String> getIdColumn() {
+ return Person.PERSON.PERSON_ID;
+ }
+
+ @Override
+ public void store(String id, PersonDo person) {
+ super.store(id, doToRec(person));
+ }
+
+ @Override
+ public Stream<PersonDo> list() {
+ return getAll().map(this::recToDo);
+ }
+
+ @Override
+ public Optional<PersonDo> getById(String personId) {
+ return get(personId).map(this::recToDo);
+ }
+
+ @Override
+ public PersonDo create(PersonDo person) {
+ PersonRecord newPersonRecord = newRecord();
+ String newPersonId = UUID.randomUUID().toString();
+
+ fromDoToRecord(person, newPersonRecord)
+ .setPersonId(newPersonId);
+ newPersonRecord.store();
+ return fromRecordToDo(newPersonRecord, person);
+ }
+
+ protected PersonDo recToDo(PersonRecord PersonRecord) {
+ return fromRecordToDo(PersonRecord, BEANS.get(PersonDo.class));
+ }
+
+ protected PersonRecord doToRec(PersonDo person) {
+ return fromDoToRecord(person, new PersonRecord());
+ }
+
+ @Override
+ protected DoEntityBeanMappings<PersonDo, PersonRecord> mappings() {
+ return new DoEntityBeanMappings<PersonDo, PersonRecord>()
+ .with(PersonDo::personId, PersonRecord::getPersonId) // read-only (primary key)
+ .with(PersonDo::lastName, PersonRecord::getLastName, PersonRecord::setLastName)
+ .with(PersonDo::firstName, PersonRecord::getFirstName, PersonRecord::setFirstName);
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/resources/META-INF/scout.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/resources/META-INF/scout.xml
new file mode 100644
index 0000000..760933e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.persistence/src/main/resources/META-INF/scout.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scout>
+</scout>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/.jshintrc b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/.jshintrc
new file mode 100644
index 0000000..de9a7cc
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/.jshintrc
@@ -0,0 +1,37 @@
+{
+ "expr": true,
+ "newcap": true,
+ "evil": true,
+ "undef": true,
+ "browser": true,
+ "curly": true,
+ "globals": {
+ "__include": false,
+ "${simpleArtifactName}": false,
+ "scout": false,
+ "JSON": false,
+ "jQuery": false,
+ "$": false,
+ "jasmine": false,
+ "describe": false,
+ "beforeEach": false,
+ "afterEach": false,
+ "it": false,
+ "setFixtures": false,
+ "sandbox": false,
+ "expect": false,
+ "spyOn": false,
+ "fail": false,
+ "sandboxSession": false,
+ "sandboxDesktop": false,
+ "mostRecentJsonRequest": false,
+ "createUniqueId": false,
+ "sendQueuedAjaxCalls": false,
+ "receiveResponseForAjaxCall": false,
+ "uninstallUnloadHandlers": false,
+ "createPropertyChangeEvent": false,
+ "createAdapterData": false,
+ "createAdapter": false,
+ "createSimpleModel": false
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/Jasmine test server.launch b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/Jasmine test server.launch
new file mode 100644
index 0000000..ef6d222
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/Jasmine test server.launch
@@ -0,0 +1,24 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType">
+<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/>
+<stringAttribute key="M2_GOALS" value="jasmine:bdd"/>
+<booleanAttribute key="M2_NON_RECURSIVE" value="false"/>
+<booleanAttribute key="M2_OFFLINE" value="false"/>
+<stringAttribute key="M2_PROFILES" value=""/>
+<listAttribute key="M2_PROPERTIES"/>
+<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>
+<booleanAttribute key="M2_SKIP_TESTS" value="false"/>
+<intAttribute key="M2_THREADS" value="1"/>
+<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>
+<stringAttribute key="M2_USER_SETTINGS" value=""/>
+<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>
+<stringAttribute key="bad_container_name" value="jasmine.server"/>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${symbol_dollar}{workspace_loc:/${rootArtifactId}.ui}"/>
+</launchConfiguration>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/pom.xml
new file mode 100644
index 0000000..68efab1
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/pom.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <relativePath>../${rootArtifactId}</relativePath>
+ </parent>
+
+ <artifactId>${rootArtifactId}.ui</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.ui.html</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.svg.ui.html</artifactId>
+ </dependency>
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.ui.html.test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <!-- Loads phantomjs executable, necessary for jasmine plugin -->
+ <groupId>com.github.klieber</groupId>
+ <artifactId>phantomjs-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>install</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Prepare JS test dependencies with Jasmine -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack ui.html dependencies</id>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <outputDirectory>${project.build.directory}/ext</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <includes>**/*.js, **/*.css, **/*.png, **/*.json</includes>
+ <stripVersion>true</stripVersion>
+ <includeArtifactIds>org.eclipse.scout.rt.ui.html</includeArtifactIds>
+ </configuration>
+ </execution>
+ <execution>
+ <id>unpack ui.html.test dependencies</id>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <outputDirectory>${project.build.directory}/ext</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <includes>**/*.js, **/*.css, **/*.png, **/*.json</includes>
+ <stripVersion>true</stripVersion>
+ <includeArtifactIds>org.eclipse.scout.rt.ui.html.test</includeArtifactIds>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- JS testing with Jasmine -->
+ <plugin>
+ <groupId>com.github.searls</groupId>
+ <artifactId>jasmine-maven-plugin</artifactId>
+ <configuration>
+ <additionalContexts>
+ <additionalContext>
+ <contextRoot>ext</contextRoot>
+ <directory>${project.build.directory}/ext</directory>
+ </additionalContext>
+ </additionalContexts>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__-module.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__-module.js
new file mode 100644
index 0000000..e7d264e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__-module.js
@@ -0,0 +1,10 @@
+(function(${simpleArtifactName}, scout, $, undefined) {
+ __include("${simpleArtifactName}/common/ajax.js");
+ __include("${simpleArtifactName}/App.js");
+ __include("${simpleArtifactName}/repository/Repository.js");
+
+ __include("${simpleArtifactName}/person/PersonForm.js");
+ __include("${simpleArtifactName}/person/PersonRepository.js");
+ __include("${simpleArtifactName}/person/Person.js");
+ __include("${simpleArtifactName}/person/PersonTablePage.js");
+}(window.${simpleArtifactName} = window.${simpleArtifactName} || {}, scout, jQuery));
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__-module.json b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__-module.json
new file mode 100644
index 0000000..b8f61ef
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__-module.json
@@ -0,0 +1,7 @@
+{
+ "files": [
+ "${simpleArtifactName}/desktop/Desktop.json",
+ "${simpleArtifactName}/person/PersonForm.json",
+ "${simpleArtifactName}/person/PersonTablePage.json"
+ ]
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__-module.less b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__-module.less
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__-module.less
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/App.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/App.js
new file mode 100644
index 0000000..96f2668
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/App.js
@@ -0,0 +1,77 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+ ${simpleArtifactName}.App = function() {
+ ${simpleArtifactName}.App.parent.call(this);
+ this.apiUrl = '../api/';
+ this.appPrefix = '${simpleArtifactName}.';
+ this.desktop = null;
+};
+scout.inherits(${simpleArtifactName}.App, scout.App);
+
+${simpleArtifactName}.App.prototype._createSession = function(options) {
+ var session = ${simpleArtifactName}.App.parent.prototype._createSession.call(this, options);
+ session.on('localeSwitch', this._onLocaleSwitch.bind(this));
+ return session;
+};
+
+${simpleArtifactName}.App.prototype._createDesktop = function(parent) {
+ this.desktop = scout.create('Desktop', scout.models.getModel('${simpleArtifactName}.Desktop', parent));
+
+ var myDataOutline = this._createMyDataOutline();
+ var myDataViewButton = scout.create('scout.OutlineViewButton', {
+ parent: this.desktop,
+ text: '${symbol_dollar}{textKey:MyDataOutlineTitle}',
+ outline: myDataOutline,
+ displayStyle: 'TAB',
+ iconId: scout.icons.PERSON_SOLID
+ });
+ this.desktop._setViewButtons([myDataViewButton]);
+ this.desktop.setOutline(myDataOutline);
+
+ return this.desktop;
+};
+
+${simpleArtifactName}.App.prototype._createMyDataOutline = function() {
+ var myDataOutline = scout.create('scout.Outline', {
+ parent: this.desktop,
+ title: '${symbol_dollar}{textKey:MyDataOutlineTitle}'
+ });
+
+ var personTablePage = scout.create('${simpleArtifactName}.PersonTablePage', {
+ parent: myDataOutline
+ });
+
+ myDataOutline.insertNodes([personTablePage]);
+ myDataOutline.selectNode(personTablePage);
+ return myDataOutline;
+};
+
+${simpleArtifactName}.App.prototype._loadLocale = function() {
+ var localeTag = scout.webstorage.getItem(sessionStorage, "locale");
+ if (scout.strings.hasText(localeTag)) {
+ var locale = scout.locales.get(localeTag);
+ if (locale) {
+ return locale;
+ }
+ }
+
+ // Use the default locale
+ ${symbol_dollar}.log.warn('Unsupported languageTag in settings found: ' + localeTag + '. Using navigator locale.');
+ return scout.locales.getNavigatorLocale();
+};
+
+${simpleArtifactName}.App.prototype._onLocaleSwitch = function(event) {
+ scout.webstorage.setItem(sessionStorage, "locale", event.locale.languageTag);
+ var session = event.source;
+ var busyIndicator = scout.create('BusyIndicator', {
+ parent: session.desktop,
+ cancellable: false,
+ showTimeout: 0,
+ details: session.text('LanguageSwitchLoading')
+ });
+ busyIndicator.render();
+ setTimeout(function() {
+ window.location.reload();
+ }, 100);
+};
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/common/ajax.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/common/ajax.js
new file mode 100644
index 0000000..c887140
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/common/ajax.js
@@ -0,0 +1,95 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+scout.ajax = {
+
+ post: function(url, data, opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ url: url,
+ data: data,
+ type: 'POST'
+ }, opts);
+ return this.call(options);
+ },
+
+ get: function(url, opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ url: url,
+ type: 'GET'
+ }, opts);
+ return this.call(options);
+ },
+
+ remove: function(url, opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ url: url,
+ type: 'DELETE'
+ }, opts);
+ return this.call(options);
+ },
+
+ put: function(url, opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ url: url,
+ type: 'PUT'
+ }, opts);
+ return this.call(options);
+ },
+
+ putJson: function(url, data, opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ url: url,
+ type: 'PUT',
+ data: data
+ }, opts);
+ return this.callJson(options);
+ },
+
+ removeJson: function(url, opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ type: 'DELETE',
+ url: url
+ }, opts);
+ return this.callJson(options);
+ },
+
+ getJson: function(url, opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ url: url,
+ type: 'GET'
+ }, opts);
+ return this.callJson(options);
+ },
+
+ postJson: function(url, data, opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ type: 'POST',
+ url: url,
+ data: data
+ }, opts);
+ return this.callJson(options);
+ },
+
+ callJson: function(opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ dataType: 'json',
+ contentType: 'application/json; charset=UTF-8',
+ }, opts);
+ return this.call(options);
+ },
+
+ call: function(opts) {
+ var options = ${symbol_dollar}.extend({}, {
+ cache: false
+ }, opts);
+
+ var ajaxCall = scout.create('AjaxCall', {
+ ajaxOptions: options,
+ maxRetries: 0
+ }, {
+ ensureUniqueId: false
+ });
+ return ajaxCall.call();
+ }
+
+};
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/desktop/Desktop.json b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/desktop/Desktop.json
new file mode 100644
index 0000000..bb9d3f4
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/desktop/Desktop.json
@@ -0,0 +1,10 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+{
+ "id": "${simpleArtifactName}.Desktop",
+ "title": "${symbol_dollar}{textKey:ApplicationTitle}",
+ "objectType": "Desktop",
+ "type": "model",
+ "logoUrl": "res/img/eclipse_scout_logo.png"
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/Person.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/Person.js
new file mode 100644
index 0000000..458e1d1
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/Person.js
@@ -0,0 +1,27 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${simpleArtifactName}.Person = function() {
+ this.resourceType = 'Person';
+ this.personId = null;
+ this.firstName = null;
+ this.lastName = null;
+};
+
+${simpleArtifactName}.Person.EVENT_TYPE = 'person';
+
+${simpleArtifactName}.Person.prototype.init = function(model) {
+ ${symbol_dollar}.extend(this, model);
+};
+
+${simpleArtifactName}.Person.prototype.setFirstName = function(firstName) {
+ this.firstName = firstName;
+};
+
+${simpleArtifactName}.Person.prototype.setLastName = function(lastName) {
+ this.lastName = lastName;
+};
+
+${simpleArtifactName}.Person.prototype.setPersonId = function(id) {
+ this.personId = id;
+};
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonForm.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonForm.js
new file mode 100644
index 0000000..9ccb49d
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonForm.js
@@ -0,0 +1,63 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${simpleArtifactName}.PersonForm = function() {
+ ${simpleArtifactName}.PersonForm.parent.call(this);
+
+ this.firstNameField = null;
+ this.lastNameField = null;
+};
+scout.inherits(${simpleArtifactName}.PersonForm, scout.Form);
+
+${simpleArtifactName}.PersonForm.prototype._jsonModel = function() {
+ return scout.models.getModel('${simpleArtifactName}.PersonForm');
+};
+
+${simpleArtifactName}.PersonForm.prototype._init = function(model) {
+ ${simpleArtifactName}.PersonForm.parent.prototype._init.call(this, model);
+ this._initFields();
+};
+
+/**
+ * Override this method if you have different fields.
+ * Then you need to customize importData and exportData too.
+ */
+${simpleArtifactName}.PersonForm.prototype._initFields = function() {
+ this.firstNameField = this.widget('FirstNameField');
+ this.lastNameField = this.widget('LastNameField');
+};
+
+${simpleArtifactName}.PersonForm.prototype.exportData = function() {
+ var person = this.data;
+ person.setFirstName(this.firstNameField.value);
+ person.setLastName(this.lastNameField.value);
+ return person;
+};
+
+${simpleArtifactName}.PersonForm.prototype.importData = function() {
+ var person = this.data;
+ this.firstNameField.setValue(person.firstName);
+ this.lastNameField.setValue(person.lastName);
+};
+
+${simpleArtifactName}.PersonForm.prototype._save = function(data) {
+ return (data.personId ? ${simpleArtifactName}.persons.store(data) : ${simpleArtifactName}.persons.create(data))
+ .then(this._onSaveDone.bind(this));
+};
+
+${simpleArtifactName}.PersonForm.prototype._onSaveDone = function(person) {
+ this.session.desktop.dataChange({
+ dataType: ${simpleArtifactName}.Person.EVENT_TYPE,
+ data: person
+ });
+
+ return ${symbol_dollar}.resolvedPromise();
+};
+
+${simpleArtifactName}.PersonForm.prototype._load = function() {
+ if (this.data.personId) {
+ // refresh data from server
+ return ${simpleArtifactName}.persons.load(this.data.personId);
+ }
+ return ${symbol_dollar}.resolvedPromise(this.data);
+};
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonForm.json b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonForm.json
new file mode 100644
index 0000000..ad37d9a
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonForm.json
@@ -0,0 +1,44 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+{
+ "id": "${simpleArtifactName}.PersonForm",
+ "type": "model",
+ "displayHint": "view",
+ "rootGroupBox": {
+ "id": "MainBox",
+ "objectType": "GroupBox",
+ "menus": [
+ {
+ "id": "OkMenu",
+ "objectType": "OkMenu",
+ "tooltipText": "${symbol_dollar}{textKey:OkMenuTooltip}"
+ },
+ {
+ "id": "CancelMenu",
+ "objectType": "CancelMenu",
+ "tooltipText": "${symbol_dollar}{textKey:CancelMenuTooltip}"
+ }
+ ],
+ "fields": [
+ {
+ "id": "DetailBox",
+ "objectType": "GroupBox",
+ "fields": [
+ {
+ "id": "FirstNameField",
+ "objectType": "StringField",
+ "label": "${symbol_dollar}{textKey:FirstName}",
+ "mandatory": true
+ },
+ {
+ "id": "LastNameField",
+ "objectType": "StringField",
+ "label": "${symbol_dollar}{textKey:LastName}",
+ "mandatory": true
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonRepository.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonRepository.js
new file mode 100644
index 0000000..880193d
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonRepository.js
@@ -0,0 +1,56 @@
+${simpleArtifactName}.PersonRepository = function() {
+ ${simpleArtifactName}.PersonRepository.parent.call(this);
+ this.entityType = 'Person';
+ this.targetUrl = scout.app.apiUrl + 'persons/';
+};
+scout.inherits(${simpleArtifactName}.PersonRepository, ${simpleArtifactName}.Repository);
+
+/**
+ * Loads a single person
+ * @param personId The id of the person to fetch. Must not be null.
+ * @returns Person
+ */
+${simpleArtifactName}.PersonRepository.prototype.load = function(personId) {
+ return this.getJson(this.targetUrl + personId)
+ .then(this._first.bind(this));
+};
+
+/**
+ * get all persons
+ * @returns promise with person array
+ */
+${simpleArtifactName}.PersonRepository.prototype.list = function() {
+ return this.getJson(this.targetUrl);
+};
+
+/**
+ * Update existing Person
+ * @param person The person to update
+ * @returns The updated person
+ */
+${simpleArtifactName}.PersonRepository.prototype.store = function(person) {
+ return this.putJson(this.targetUrl + person.personId, JSON.stringify(person))
+ .then(this._first.bind(this));
+};
+
+/**
+ * Delete person
+ * @param personId The id of the person to delete.
+ * @returns nothing
+ */
+${simpleArtifactName}.PersonRepository.prototype.remove = function(personId) {
+ return this.removeJson(this.targetUrl + personId);
+};
+
+/**
+ * Create new person
+ * @param person The person to create
+ * @returns the created person
+ */
+${simpleArtifactName}.PersonRepository.prototype.create = function(person) {
+ return this.postJson(this.targetUrl, JSON.stringify(person));
+};
+
+scout.addAppListener('bootstrap', function() {
+ ${simpleArtifactName}.persons = ${simpleArtifactName}.Repository.register('${simpleArtifactName}.PersonRepository');
+});
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonTablePage.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonTablePage.js
new file mode 100644
index 0000000..cd8ea25
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonTablePage.js
@@ -0,0 +1,112 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${simpleArtifactName}.PersonTablePage = function() {
+ ${simpleArtifactName}.PersonTablePage.parent.call(this);
+
+ this._dataChangeListener = null;
+};
+scout.inherits(${simpleArtifactName}.PersonTablePage, scout.PageWithTable);
+
+${simpleArtifactName}.PersonTablePage.prototype._jsonModel = function() {
+ return scout.models.getModel('${simpleArtifactName}.PersonTablePage');
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._init = function(model) {
+ var m = ${symbol_dollar}.extend({}, this._jsonModel(), model);
+ ${simpleArtifactName}.PersonTablePage.parent.prototype._init.call(this, m);
+ this._initListeners();
+};
+
+/**
+ * Override this method if you want to customize the menu entries.
+ */
+${simpleArtifactName}.PersonTablePage.prototype._initListeners = function() {
+ this._dataChangeListener = this._onDataChange.bind(this);
+ this.session.desktop.on('dataChange', this._dataChangeListener);
+
+ var editPersonMenu = this.detailTable.widget('EditPersonMenu');
+ editPersonMenu.on('action', this._onEditPersonMenuAction.bind(this));
+
+ var deletePersonMenu = this.detailTable.widget('DeletePersonMenu');
+ deletePersonMenu.on('action', this._onDeletePersonMenuAction.bind(this));
+
+ var createPersonMenu = this.detailTable.widget('CreatePersonMenu');
+ createPersonMenu.on('action', this._onCreatePersonMenuAction.bind(this));
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._destroy = function() {
+ this.session.desktop.off('dataChange', this._dataChangeListener);
+ ${simpleArtifactName}.PersonTablePage.parent.prototype._destroy.call(this);
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._onDataChange = function(event) {
+ if (event.dataType === ${simpleArtifactName}.Person.EVENT_TYPE) {
+ this.reloadPage();
+ }
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._loadTableData = function() {
+ return ${simpleArtifactName}.persons.list();
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._transformTableDataToTableRows = function(tableData) {
+ return tableData
+ .map(function(person) {
+ return {
+ person: person,
+ cells: [
+ person.personId,
+ person.firstName,
+ person.lastName
+ ]
+ };
+ });
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._getSelectedPerson = function() {
+ var selection = this.detailTable.selectedRow();
+ if (selection) {
+ return selection.person;
+ }
+ return null;
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._createPersonForm = function() {
+ var outline = this.getOutline();
+ var personForm = scout.create('${simpleArtifactName}.PersonForm', {
+ parent: outline
+ });
+ return personForm;
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._onEditPersonMenuAction = function(event) {
+ var personForm = this._createPersonForm();
+ personForm.setData(this._getSelectedPerson());
+ personForm.open();
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._onDeletePersonMenuAction = function(event) {
+ scout.MessageBoxes.openYesNo(this.session.desktop, this.session.text('DeleteConfirmationTextNoItemList'))
+ .then(function(button) {
+ if (button === scout.MessageBox.Buttons.YES) {
+ ${simpleArtifactName}.persons.remove(this._getSelectedPerson().personId)
+ .then(this._onPersonDeleted.bind(this));
+ }
+ }.bind(this));
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._onPersonDeleted = function() {
+ this.session.desktop.dataChange({
+ dataType: ${simpleArtifactName}.Person.EVENT_TYPE
+ });
+};
+
+${simpleArtifactName}.PersonTablePage.prototype._onCreatePersonMenuAction = function(event) {
+ var personForm = this._createPersonForm();
+ var emptyPerson = scout.create('${simpleArtifactName}.Person', {}, {
+ ensureUniqueId: false
+ });
+ personForm.setData(emptyPerson);
+ personForm.open();
+};
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonTablePage.json b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonTablePage.json
new file mode 100644
index 0000000..d348ded
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/person/PersonTablePage.json
@@ -0,0 +1,63 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+{
+ "id": "${simpleArtifactName}.PersonTablePage",
+ "objectType": "PageWithTable",
+ "type": "model",
+ "leaf": true,
+ "text": "${symbol_dollar}{textKey:Persons}",
+ "detailTable": {
+ "id": "${simpleArtifactName}.PersonTablePage.Table",
+ "objectType": "Table",
+ "autoResizeColumns": true,
+ "columns": [
+ {
+ "id": "PersonIdColumn",
+ "objectType": "Column",
+ "visible": false
+ },
+ {
+ "id": "FirstNameColumn",
+ "objectType": "Column",
+ "text": "${symbol_dollar}{textKey:FirstName}",
+ "width": 200
+ },
+ {
+ "id": "LastNameColumn",
+ "objectType": "Column",
+ "text": "${symbol_dollar}{textKey:LastName}",
+ "width": 250
+ }
+ ],
+ "menus": [
+ {
+ "id": "EditPersonMenu",
+ "objectType": "Menu",
+ "text": "${symbol_dollar}{textKey:EditPerson}",
+ "iconId": "${symbol_dollar}{iconId:PENCIL}",
+ "menuTypes": [
+ "Table.SingleSelection"
+ ]
+ },
+ {
+ "id": "CreatePersonMenu",
+ "objectType": "Menu",
+ "text": "${symbol_dollar}{textKey:CreatePerson}",
+ "iconId": "${symbol_dollar}{iconId:PLUS}",
+ "menuTypes": [
+ "Table.EmptySpace"
+ ]
+ },
+ {
+ "id": "DeletePersonMenu",
+ "objectType": "Menu",
+ "text": "${symbol_dollar}{textKey:DeletePerson}",
+ "iconId": "${symbol_dollar}{iconId:REMOVE}",
+ "menuTypes": [
+ "Table.SingleSelection"
+ ]
+ }
+ ]
+ }
+}
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/repository/Repository.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/repository/Repository.js
new file mode 100644
index 0000000..5384287
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/js/__simpleArtifactName__/repository/Repository.js
@@ -0,0 +1,93 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+ * Subclasses of Repository must set the resourceType property.
+ *
+ * @abstract
+ * @class
+ */
+${simpleArtifactName}.Repository = function() {
+ this.entityType = null;
+};
+
+${simpleArtifactName}.Repository.prototype.getJson = function(url, opts) {
+ return ${simpleArtifactName}.Repository.map(scout.ajax.getJson(url, this._ensureConverter(opts)));
+};
+
+${simpleArtifactName}.Repository.prototype.postJson = function(url, data, opts) {
+ return ${simpleArtifactName}.Repository.map(scout.ajax.postJson(url, data, this._ensureConverter(opts)));
+};
+
+${simpleArtifactName}.Repository.prototype.removeJson = function(url, opts) {
+ return ${simpleArtifactName}.Repository.map(scout.ajax.removeJson(url, this._ensureConverter(opts)));
+};
+
+${simpleArtifactName}.Repository.prototype.putJson = function(url, data, opts) {
+ return ${simpleArtifactName}.Repository.map(scout.ajax.putJson(url, data, this._ensureConverter(opts)));
+};
+
+${simpleArtifactName}.Repository.prototype._ensureConverter = function(opts) {
+ return ${symbol_dollar}.extend({}, {
+ converters: {
+ "text json": this._mapJson
+ }
+ }, opts);
+};
+
+${simpleArtifactName}.Repository.prototype._mapJson = function(data) {
+ return JSON.parse(data, function(key, value) {
+ if (key === '_type') {
+ this.objectType = scout.app.appPrefix + value;
+ }
+ return value;
+ });
+};
+
+${simpleArtifactName}.Repository.prototype._first = function(items) {
+ return items[0];
+};
+
+// ---- Static Objects ---- //
+
+${simpleArtifactName}.repositories = {};
+
+/**
+ * @static
+ * @param {string} objectName
+ * @returns {${simpleArtifactName}.Repository}
+ */
+${simpleArtifactName}.Repository.register = function(objectName) {
+ var repository = scout.create(objectName);
+ ${simpleArtifactName}.repositories[repository.entityType] = repository;
+ return repository;
+};
+
+${simpleArtifactName}.Repository.map = function(promise) {
+ return promise
+ .then(function(response) {
+ if (!response || !response.items) {
+ return response;
+ }
+
+ return response.items
+ .map(function(item) {
+ return scout.create(item, {
+ ensureUniqueId: false
+ });
+ });
+ });
+};
+
+/**
+ * @static
+ * @param {string} resourceType
+ * @returns {${simpleArtifactName}.Repository} a repository for the given resourceType
+ */
+${simpleArtifactName}.Repository.get = function(resourceType) {
+ var repository = ${simpleArtifactName}.repositories[resourceType];
+ if (!repository) {
+ throw new Error('no repository found for resourceType ' + resourceType);
+ }
+ return repository;
+};
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/resources/META-INF/scout.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/resources/META-INF/scout.xml
new file mode 100644
index 0000000..760933e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/main/resources/META-INF/scout.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scout>
+</scout>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/test/js/SpecRunnerMaven.html b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/test/js/SpecRunnerMaven.html
new file mode 100644
index 0000000..3fd3c53
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/test/js/SpecRunnerMaven.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<!--
+ This spec runner is used by the maven build.
+ You can use it too while developing by executing
+ mvn jasmine:bdd and connecting to http://localhost:8234/ with your browser.
+ When using mvn verify, the server is started on http://localhost:64600/.
+ -->
+<html>
+<head>
+ <meta charset="UTF-8">
+ $if(autoRefresh)$
+ <meta http-equiv="refresh" content="$autoRefreshInterval$">
+ $endif$
+ <title>Jasmine Spec Runner</title>
+ <script type="text/javascript">
+ window.onerror = function(msg,url,line) {
+ if (document.head) {
+ var jserror = document.head.getAttribute('jmp_jserror') || '';
+ if (jserror) {
+ jserror += ':!:';
+ }
+ jserror += msg;
+ document.head.setAttribute('jmp_jserror',jserror);
+ }
+ };
+ </script>
+ <link rel="shortcut icon" type="image/png" href="ext/WebContent/res/jasmine-2.5.2/jasmine_favicon.png">
+ <link rel="stylesheet" type="text/css" href="ext/WebContent/res/jasmine-2.5.2/jasmine.css">
+ <link rel="stylesheet" type="text/css" href="ext/jasmine/JasmineScout.css">
+
+ <script type="text/javascript" src="ext/WebContent/res/jquery-3.3.1.js"></script>
+ <script type="text/javascript" src="ext/WebContent/res/log4javascript-1.4.9/log4javascript.js"></script>
+ <script type="text/javascript" src="ext/WebContent/res/jasmine-2.5.2/jasmine.js"></script>
+ <script type="text/javascript" src="ext/WebContent/res/jasmine-2.5.2/jasmine-html.js"></script>
+ <script type="text/javascript" src="ext/WebContent/res/jasmine-2.5.2/boot.js"></script>
+ <script type="text/javascript" src="ext/WebContent/res/jasmine-2.5.2/plugins/jasmine-jquery.js"></script>
+ <script type="text/javascript" src="ext/WebContent/res/jasmine-2.5.2/plugins/mock-ajax.js"></script>
+ <script type="text/javascript" src="ext/jasmine/JasmineScoutModuleUtil.js"></script>
+ <script type="text/javascript" src="ext/jasmine/JasmineScout.js"></script>
+ <script type="text/javascript" src="ext/jasmine/boot.ext.js"></script>
+
+ <script type="text/javascript">loadDynamicScript('ext/scout-module.js');</script>
+ <script type="text/javascript">loadDynamicScript('ext/scout-login-module.js');</script>
+ <script type="text/javascript">loadDynamicScript('ext/scout-test-module.js');</script>
+ <script type="text/javascript">loadDynamicScript('src/main/js/${simpleArtifactName}-module.js');</script>
+
+</head>
+<body>
+ <script type="text/javascript">
+ // app initialization uses promises which are executed asynchronously
+ // -> Use the clock to make sure all promise callbacks are executed before any test starts.
+ jasmine.clock().install();
+ scout.models.bootstrap = function(url) {
+ return loadJsonModule(url).then(this.init.bind(this));
+ };
+ new ${simpleArtifactName}.App().init({
+ bootstrap: {
+ modelsUrl: 'src/main/js/${simpleArtifactName}-module.json'
+ }
+ });
+ jasmine.clock().tick(1000);
+ jasmine.clock().uninstall();
+ </script>
+
+ $specScriptTags$
+
+</body>
+</html>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/test/js/__rootArtifactId__/person/PersonFormSpec.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/test/js/__rootArtifactId__/person/PersonFormSpec.js
new file mode 100644
index 0000000..7d628a3
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/test/js/__rootArtifactId__/person/PersonFormSpec.js
@@ -0,0 +1,39 @@
+describe('PersonForm', function() {
+ var session;
+
+ beforeEach(function() {
+ setFixtures(sandbox());
+ session = sandboxSession({
+ desktop: {
+ // Bench is not visible by default for sandbox sessions.
+ // It is required here because forms with display style view are opened
+ benchVisible: true
+ }
+ });
+ });
+
+ describe('open with person', function() {
+
+ it('shows firstName and LastName', function(done) {
+ var personForm = scout.create('${simpleArtifactName}.PersonForm', {
+ parent: session.desktop
+ });
+
+ var person = scout.create('${simpleArtifactName}.Person', {
+ firstName: 'first',
+ lastName: 'last'
+ });
+ personForm.setData(person);
+ personForm.open()
+ .then(function() {
+ expect(personForm.firstNameField.rendered).toBe(true);
+ expect(personForm.lastNameField.rendered).toBe(true);
+ expect(personForm.firstNameField.value).toBe(person.firstName);
+ expect(personForm.lastNameField.value).toBe(person.lastName);
+ personForm.close();
+ })
+ .catch(fail)
+ .always(done);
+ });
+ });
+});
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/test/js/__rootArtifactId__/person/PersonSpec.js b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/test/js/__rootArtifactId__/person/PersonSpec.js
new file mode 100644
index 0000000..73fe87e
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__.ui/src/test/js/__rootArtifactId__/person/PersonSpec.js
@@ -0,0 +1,31 @@
+describe('Person', function() {
+
+ it('stores values correctly', function() {
+ var person = scout.create('${simpleArtifactName}.Person');
+ var values = ['first', 'last', 'id'];
+ person.setFirstName(values[0]);
+ person.setLastName(values[1]);
+ person.setPersonId(values[2]);
+
+ expect(person.firstName).toBe(values[0]);
+ expect(person.lastName).toBe(values[1]);
+ expect(person.personId).toBe(values[2]);
+ expect(person.resourceType).toBe('Person');
+ });
+
+ it('initializes correctly from model', function() {
+ var values = ['first', 'last', 'id'];
+ var model = {
+ personId: values[2],
+ firstName: values[0],
+ lastName: values[1]
+ };
+ var person = scout.create('${simpleArtifactName}.Person', model);
+
+ expect(person.firstName).toBe(values[0]);
+ expect(person.lastName).toBe(values[1]);
+ expect(person.personId).toBe(values[2]);
+ expect(person.resourceType).toBe('Person');
+ });
+
+});
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__/pom.xml
new file mode 100644
index 0000000..6b5df22
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/__rootArtifactId__/pom.xml
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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</groupId>
+ <artifactId>maven_rt_plugin_config-master</artifactId>
+ <version>3.0.0</version>
+ <relativePath />
+ </parent>
+
+ <properties>
+ <jdk.source.version>${javaVersion}</jdk.source.version>
+ <org.eclipse.scout.rt.version>8.0.0-SNAPSHOT</org.eclipse.scout.rt.version>
+ <org.glassfish.jersey.version>2.27</org.glassfish.jersey.version>
+ <org.jooq.version>3.11.1</org.jooq.version>
+ <derby.version>10.14.2.0</derby.version>
+ </properties>
+
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ <packaging>pom</packaging>
+ <name>${displayName}</name>
+
+ <modules>
+ <!-- Core modules -->
+ <module>../${rootArtifactId}.ui</module>
+ <module>../${rootArtifactId}.api</module>
+ <module>../${rootArtifactId}.core</module>
+ <module>../${rootArtifactId}.data</module>
+ <module>../${rootArtifactId}.persistence</module>
+
+ <!-- App modules -->
+ <module>../${rootArtifactId}.app</module>
+ <module>../${rootArtifactId}.app.war</module>
+
+ <!-- Test modules -->
+ <module>../${rootArtifactId}.core.test</module>
+ <module>../${rootArtifactId}.persistence.test</module>
+
+ <!-- DB modules -->
+ <module>../${rootArtifactId}.db</module>
+ </modules>
+
+ <dependencyManagement>
+ <dependencies>
+ <!-- Scout Dependencies -->
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt</artifactId>
+ <version>${org.eclipse.scout.rt.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+
+ <!-- External Dependencies -->
+ <dependency>
+ <groupId>org.glassfish.jersey</groupId>
+ <artifactId>jersey-bom</artifactId>
+ <version>${org.glassfish.jersey.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jooq</groupId>
+ <artifactId>jooq-parent</artifactId>
+ <version>${org.jooq.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>${derby.version}</version>
+ </dependency>
+
+ <!-- Application dependencies -->
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.ui</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.app</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.app.dev</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.app.war</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.persistence</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.data</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.core.test</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}.db</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.scout</groupId>
+ <artifactId>eclipse-settings-maven-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt-settings</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.10</version>
+ <configuration>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>webapp_src_folder</id>
+ <activation>
+ <file>
+ <exists>${basedir}/src/main/webapp</exists>
+ </file>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>add-webapp-resource</id>
+ <goals>
+ <goal>add-resource</goal>
+ </goals>
+ <phase>generate-resources</phase>
+ <configuration>
+ <resources>
+ <resource>
+ <directory>src/main/webapp</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+ <repositories>
+ <repository>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <id>eclipse.release</id>
+ <name>eclipse-release-repo</name>
+ <url>https://repo.eclipse.org/content/groups/releases/</url>
+ </repository>
+ <repository>
+ <snapshots></snapshots>
+ <id>eclipse.snapshot</id>
+ <name>eclipse-snapshot-repo</name>
+ <url>https://repo.eclipse.org/content/groups/snapshots/</url>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <id>eclipse.release</id>
+ <name>eclipse-release-repo</name>
+ <url>https://repo.eclipse.org/content/groups/releases/</url>
+ </pluginRepository>
+ <pluginRepository>
+ <snapshots></snapshots>
+ <id>eclipse.snapshot</id>
+ <name>eclipse-snapshot-repo</name>
+ <url>https://repo.eclipse.org/content/groups/snapshots/</url>
+ </pluginRepository>
+ </pluginRepositories>
+</project>
diff --git a/scout-hellojs-app/src/main/resources/archetype-resources/pom.xml b/scout-hellojs-app/src/main/resources/archetype-resources/pom.xml
new file mode 100644
index 0000000..5504193
--- /dev/null
+++ b/scout-hellojs-app/src/main/resources/archetype-resources/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}-root</artifactId>
+ <version>${version}</version>
+ <packaging>pom</packaging>
+
+ <name>${displayName} ROOT Module</name>
+
+ <prerequisites>
+ <maven>3.2.2</maven>
+ </prerequisites>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.8.2</version>
+ <inherited>false</inherited>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>2.5.2</version>
+ <inherited>false</inherited>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/scout-hellojs-app/src/test/resources/projects/basic/archetype.properties b/scout-hellojs-app/src/test/resources/projects/basic/archetype.properties
new file mode 100644
index 0000000..5d5c37f
--- /dev/null
+++ b/scout-hellojs-app/src/test/resources/projects/basic/archetype.properties
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2015 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
+#
+
+#Fri Oct 30 12:41:40 CET 2015
+package=org.eclipse.scout.apps.hellojs
+version=1.0.0-SNAPSHOT
+displayName=My Application
+groupId=org.eclipse.scout.apps
+artifactId=hellojs
+javaVersion=1.8
+scoutAuthPublicKeyDev=changeme_database_password
+simpleArtifactName=hellojs
diff --git a/scout-hellojs-app/src/test/resources/projects/basic/goal.txt b/scout-hellojs-app/src/test/resources/projects/basic/goal.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/scout-hellojs-app/src/test/resources/projects/basic/goal.txt
diff --git a/scout-helloworld-app/.project b/scout-helloworld-app/.project
index 9d3ae72..ca88999 100644
--- a/scout-helloworld-app/.project
+++ b/scout-helloworld-app/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/scout-helloworld-app/.settings/org.eclipse.jdt.ui.prefs b/scout-helloworld-app/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/scout-helloworld-app/.settings/org.eclipse.jdt.ui.prefs
+++ b/scout-helloworld-app/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/scout-helloworld-app/.settings/org.eclipse.wst.jsdt.core.prefs b/scout-helloworld-app/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/scout-helloworld-app/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/scout-helloworld-app/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/scout-helloworld-app/.settings/org.sonarlint.eclipse.core.prefs b/scout-helloworld-app/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..aac1181 100644
--- a/scout-helloworld-app/.settings/org.sonarlint.eclipse.core.prefs
+++ b/scout-helloworld-app/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
-autoEnabled=true
+autoEnabled=false
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/scout-helloworld-app/pom.xml b/scout-helloworld-app/pom.xml
index b376cf3..4ea8fca 100644
--- a/scout-helloworld-app/pom.xml
+++ b/scout-helloworld-app/pom.xml
@@ -23,7 +23,7 @@
<groupId>org.eclipse.scout.archetypes</groupId>
<artifactId>scout-helloworld-app</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<packaging>maven-archetype</packaging>
<name>Scout Hello World Sample Application</name>
@@ -31,7 +31,7 @@
<url>https://eclipse.org/scout</url>
<properties>
- <scout.base.version>7.0.300</scout.base.version>
+ <scout.base.version>8.0.0</scout.base.version>
<base.version>${scout.base.version}</base.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -108,7 +108,7 @@
<scm>
<connection>scm:git:git://git.eclipse.org/gitroot/scout/org.eclipse.scout.sdk.git</connection>
<developerConnection>scm:git:ssh://${eclipse_gerrit_username}@git.eclipse.org:29418/scout/org.eclipse.scout.sdk</developerConnection>
- <tag>releases/7.0.x</tag>
+ <tag>releases/8.0.x</tag>
<url>http://git.eclipse.org/c/scout/org.eclipse.scout.sdk.git/</url>
</scm>
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/pom.xml b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/pom.xml
index c884a31..3803fd7 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/pom.xml
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/pom.xml
@@ -16,8 +16,12 @@
<dependencies>
<dependency>
- <artifactId>org.eclipse.scout.rt.client</artifactId>
<groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.client</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.svg.client</artifactId>
</dependency>
<dependency>
<groupId>${groupId}</groupId>
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/ClientSession.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/ClientSession.java
index 5a9d370..7c2c9c5 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/ClientSession.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/ClientSession.java
@@ -11,8 +11,6 @@
import ${package}.client.Desktop;
/**
- * <h3>{@link ClientSession}</h3>
- *
* @author ${userName}
*/
public class ClientSession extends AbstractClientSession {
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/DefaultIconProviderService.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/DefaultIconProviderService.java
index 9d1d548..959cdb5 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/DefaultIconProviderService.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/DefaultIconProviderService.java
@@ -8,8 +8,6 @@
import org.eclipse.scout.rt.client.services.common.icon.AbstractIconProviderService;
/**
- * <h3>{@link DefaultIconProviderService}</h3>
- *
* @author ${userName}
*/
public class DefaultIconProviderService extends AbstractIconProviderService {
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/Desktop.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/Desktop.java
index 566a4e4..d9b91e2 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/Desktop.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/Desktop.java
@@ -3,8 +3,12 @@
#set( $symbol_escape = '\' )
package ${package}.client;
+import java.security.AccessController;
+import java.security.Principal;
import java.util.List;
+import javax.security.auth.Subject;
+
import org.eclipse.scout.rt.client.session.ClientSessionProvider;
import org.eclipse.scout.rt.client.ui.action.keystroke.IKeyStroke;
import org.eclipse.scout.rt.client.ui.action.menu.AbstractMenu;
@@ -13,8 +17,9 @@
import org.eclipse.scout.rt.client.ui.desktop.outline.IOutline;
import org.eclipse.scout.rt.client.ui.form.ScoutInfoForm;
import org.eclipse.scout.rt.platform.Order;
+import org.eclipse.scout.rt.platform.text.TEXTS;
import org.eclipse.scout.rt.platform.util.CollectionUtility;
-import org.eclipse.scout.rt.shared.TEXTS;
+import org.eclipse.scout.rt.platform.util.StringUtility;
import ${package}.client.search.SearchOutline;
import ${package}.client.settings.SettingsOutline;
@@ -22,8 +27,6 @@
import ${package}.shared.Icons;
/**
- * <h3>{@link Desktop}</h3>
- *
* @author ${userName}
*/
public class Desktop extends AbstractDesktop {
@@ -58,34 +61,23 @@
}
@Order(1000)
- public class FileMenu extends AbstractMenu {
+ public class UserProfileMenu extends AbstractMenu {
+
+ @Override
+ protected String getConfiguredKeyStroke() {
+ return IKeyStroke.F10;
+ }
+
+ @Override
+ protected String getConfiguredIconId() {
+ return Icons.PersonSolid;
+ }
@Override
protected String getConfiguredText() {
- return TEXTS.get("File");
- }
-
- @Order(1000)
- public class ExitMenu extends AbstractMenu {
-
- @Override
- protected String getConfiguredText() {
- return TEXTS.get("Exit");
- }
-
- @Override
- protected void execAction() {
- ClientSessionProvider.currentSession(ClientSession.class).stop();
- }
- }
- }
-
- @Order(2000)
- public class HelpMenu extends AbstractMenu {
-
- @Override
- protected String getConfiguredText() {
- return TEXTS.get("Help");
+ Subject subject = Subject.getSubject(AccessController.getContext());
+ Principal firstPrincipal = CollectionUtility.firstElement(subject.getPrincipals());
+ return StringUtility.uppercaseFirst(firstPrincipal.getName());
}
@Order(1000)
@@ -102,6 +94,20 @@
form.startModify();
}
}
+
+ @Order(2000)
+ public class LogoutMenu extends AbstractMenu {
+
+ @Override
+ protected String getConfiguredText() {
+ return TEXTS.get("Logout");
+ }
+
+ @Override
+ protected void execAction() {
+ ClientSessionProvider.currentSession().stop();
+ }
+ }
}
@Order(1000)
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/ResourceBase.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/ResourceBase.java
index d065c73..8d71f9a 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/ResourceBase.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/ResourceBase.java
@@ -4,9 +4,9 @@
package ${package}.client;
/**
- * <h3>{@link ResourceBase}</h3>
- * This class is the base for resources contained in this module.<br>
- * Do not move it to another package, the package is part of the resource name.<br>
+ * This class is the base for resources contained in this module. <b>Do not move it to another package</b>, as the
+ * package is part of the resource name.
+ * <p>
* Usage: <code>ResourceBase.class.getResource("relativeFolder/file.ext")</code>
*
* @author ${userName}
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/helloworld/HelloWorldForm.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/helloworld/HelloWorldForm.java
index fd5e036..aaa10d3 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/helloworld/HelloWorldForm.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/helloworld/HelloWorldForm.java
@@ -10,8 +10,8 @@
import org.eclipse.scout.rt.client.ui.form.fields.groupbox.AbstractGroupBox;
import org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField;
import org.eclipse.scout.rt.platform.BEANS;
+import org.eclipse.scout.rt.platform.text.TEXTS;
import org.eclipse.scout.rt.shared.AbstractIcons;
-import org.eclipse.scout.rt.shared.TEXTS;
import ${package}.client.helloworld.HelloWorldForm.MainBox.TopBox;
import ${package}.client.helloworld.HelloWorldForm.MainBox.TopBox.MessageField;
@@ -19,8 +19,6 @@
import ${package}.shared.helloworld.IHelloWorldService;
/**
- * <h3>{@link HelloWorldForm}</h3>
- *
* @author ${userName}
*/
@FormData(value = HelloWorldFormData.class, sdkCommand = FormData.SdkCommand.CREATE)
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/helloworld/HelloWorldPage.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/helloworld/HelloWorldPage.java
index 42c449c..6a2658c 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/helloworld/HelloWorldPage.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/helloworld/HelloWorldPage.java
@@ -5,11 +5,9 @@
import org.eclipse.scout.rt.client.ui.desktop.outline.pages.AbstractPageWithNodes;
import org.eclipse.scout.rt.client.ui.form.IForm;
-import org.eclipse.scout.rt.shared.TEXTS;
+import org.eclipse.scout.rt.platform.text.TEXTS;
/**
- * <h3>{@link HelloWorldPage}</h3>
- *
* @author ${userName}
*/
public class HelloWorldPage extends AbstractPageWithNodes {
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/search/SearchOutline.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/search/SearchOutline.java
index 98b6a4e..7199b66 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/search/SearchOutline.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/search/SearchOutline.java
@@ -11,8 +11,6 @@
import ${package}.shared.Icons;
/**
- * <h3>{@link SearchOutline}</h3>
- *
* @author ${userName}
*/
@Order(2000)
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/settings/SettingsOutline.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/settings/SettingsOutline.java
index 8e6925d..e52ea98 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/settings/SettingsOutline.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/settings/SettingsOutline.java
@@ -5,13 +5,11 @@
import org.eclipse.scout.rt.platform.Order;
import org.eclipse.scout.rt.client.ui.desktop.outline.AbstractOutline;
-import org.eclipse.scout.rt.shared.TEXTS;
+import org.eclipse.scout.rt.platform.text.TEXTS;
import ${package}.shared.Icons;
/**
- * <h3>{@link SettingsOutline}</h3>
- *
* @author ${userName}
*/
@Order(3000)
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/work/WorkOutline.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/work/WorkOutline.java
index 2b7191d..e88693a 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/work/WorkOutline.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/main/java/client/work/WorkOutline.java
@@ -8,14 +8,12 @@
import org.eclipse.scout.rt.platform.Order;
import org.eclipse.scout.rt.client.ui.desktop.outline.AbstractOutline;
import org.eclipse.scout.rt.client.ui.desktop.outline.pages.IPage;
-import org.eclipse.scout.rt.shared.TEXTS;
+import org.eclipse.scout.rt.platform.text.TEXTS;
import ${package}.client.helloworld.HelloWorldPage;
import ${package}.shared.Icons;
/**
- * <h3>{@link WorkOutline}</h3>
- *
* @author ${userName}
*/
@Order(1000)
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/test/java/client/helloworld/HelloWorldFormTest.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/test/java/client/helloworld/HelloWorldFormTest.java
index 62aba0b..e927bc6 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/test/java/client/helloworld/HelloWorldFormTest.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.client/src/test/java/client/helloworld/HelloWorldFormTest.java
@@ -21,8 +21,7 @@
import org.junit.runner.RunWith;
/**
- * <h3>{@link HelloWorldFormTest}</h3> Contains Tests for the
- * {@link HelloWorldForm}.
+ * Contains Tests for the {@link HelloWorldForm}.
*
* @author ${userName}
*/
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.dev/src/main/resources/config.properties b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.dev/src/main/resources/config.properties
index 1294e11..c606e2f 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.dev/src/main/resources/config.properties
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.dev/src/main/resources/config.properties
@@ -6,7 +6,7 @@
scout.application.version=development
$symbol_pound$symbol_pound$symbol_pound Environment
-scout.dev.mode=true
+scout.devMode=true
$symbol_pound$symbol_pound$symbol_pound Service tunnel
-scout.auth.publickey=${scoutAuthPublicKeyDev}
+scout.auth.publicKey=${scoutAuthPublicKeyDev}
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.dev/src/main/webapp/WEB-INF/web.xml b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.dev/src/main/webapp/WEB-INF/web.xml
index 3049a30..57c09d3 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.dev/src/main/webapp/WEB-INF/web.xml
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.dev/src/main/webapp/WEB-INF/web.xml
@@ -23,7 +23,6 @@
</param-value>
</init-param>
</filter>
-
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/*</url-pattern>
@@ -33,17 +32,15 @@
<servlet-name>process</servlet-name>
<servlet-class>org.eclipse.scout.rt.server.ServiceTunnelServlet</servlet-class>
</servlet>
-
- <servlet>
- <servlet-name>diagnostics</servlet-name>
- <servlet-class>org.eclipse.scout.rt.server.admin.diagnostic.DiagnosticServlet</servlet-class>
- </servlet>
-
<servlet-mapping>
<servlet-name>process</servlet-name>
<url-pattern>/process</url-pattern>
</servlet-mapping>
+ <servlet>
+ <servlet-name>diagnostics</servlet-name>
+ <servlet-class>org.eclipse.scout.rt.server.admin.diagnostic.DiagnosticServlet</servlet-class>
+ </servlet>
<servlet-mapping>
<servlet-name>diagnostics</servlet-name>
<url-pattern>/diagnostics</url-pattern>
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.war/src/main/resources/config.properties b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.war/src/main/resources/config.properties
index 7cbb8b0..8665b50 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.war/src/main/resources/config.properties
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.war/src/main/resources/config.properties
@@ -6,4 +6,4 @@
scout.application.version=${symbol_dollar}{project.version}
$symbol_pound$symbol_pound$symbol_pound Service tunnel
-scout.auth.publickey=${scoutAuthPublicKey}
+scout.auth.publicKey=${scoutAuthPublicKey}
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.war/src/main/webapp/WEB-INF/web.xml b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.war/src/main/webapp/WEB-INF/web.xml
index 749d430..63c705e 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.war/src/main/webapp/WEB-INF/web.xml
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server.app.war/src/main/webapp/WEB-INF/web.xml
@@ -23,7 +23,6 @@
</param-value>
</init-param>
</filter>
-
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/*</url-pattern>
@@ -33,17 +32,15 @@
<servlet-name>process</servlet-name>
<servlet-class>org.eclipse.scout.rt.server.ServiceTunnelServlet</servlet-class>
</servlet>
-
- <servlet>
- <servlet-name>diagnostics</servlet-name>
- <servlet-class>org.eclipse.scout.rt.server.admin.diagnostic.DiagnosticServlet</servlet-class>
- </servlet>
-
<servlet-mapping>
<servlet-name>process</servlet-name>
<url-pattern>/process</url-pattern>
</servlet-mapping>
+ <servlet>
+ <servlet-name>diagnostics</servlet-name>
+ <servlet-class>org.eclipse.scout.rt.server.admin.diagnostic.DiagnosticServlet</servlet-class>
+ </servlet>
<servlet-mapping>
<servlet-name>diagnostics</servlet-name>
<url-pattern>/diagnostics</url-pattern>
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/ServerServletFilter.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/ServerServletFilter.java
index 14bc975..1c99e9a 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/ServerServletFilter.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/ServerServletFilter.java
@@ -21,7 +21,6 @@
import org.eclipse.scout.rt.server.commons.authentication.TrivialAccessController.TrivialAuthConfig;
/**
- * <h3>{@link ServerServletFilter}</h3>
* This is the main server side servlet filter.
*
* @author ${userName}
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/ServerSession.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/ServerSession.java
index 40fc1f4..72b1e42 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/ServerSession.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/ServerSession.java
@@ -9,8 +9,6 @@
import org.slf4j.LoggerFactory;
/**
- * <h3>{@link ServerSession}</h3>
- *
* @author ${userName}
*/
public class ServerSession extends AbstractServerSession {
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/helloworld/HelloWorldService.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/helloworld/HelloWorldService.java
index e175c76..913186b 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/helloworld/HelloWorldService.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/helloworld/HelloWorldService.java
@@ -8,8 +8,6 @@
import ${package}.shared.helloworld.IHelloWorldService;
/**
- * <h3>{@link HelloWorldService}</h3>
- *
* @author ${userName}
*/
public class HelloWorldService implements IHelloWorldService {
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/security/ServerAccessControlService.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/security/ServerAccessControlService.java
index ecae679..952e5ff 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/security/ServerAccessControlService.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/main/java/server/security/ServerAccessControlService.java
@@ -11,8 +11,6 @@
import org.eclipse.scout.rt.shared.security.RemoteServiceAccessPermission;
/**
- * <h3>{@link AccessControlService}</h3>
- *
* @author ${userName}
*/
@Replace
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/test/java/server/helloworld/HelloWorldServiceTest.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/test/java/server/helloworld/HelloWorldServiceTest.java
index b50cfe4..107a576 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/test/java/server/helloworld/HelloWorldServiceTest.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.server/src/test/java/server/helloworld/HelloWorldServiceTest.java
@@ -16,8 +16,6 @@
import ${package}.shared.helloworld.IHelloWorldService;
/**
- * <h3>{@link HelloWorldServiceTest}</h3>
- *
* @author ${userName}
*/
@RunWith(ServerTestRunner.class)
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/Icons.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/Icons.java
index b95e0bc..fa42ab0 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/Icons.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/Icons.java
@@ -6,8 +6,6 @@
import org.eclipse.scout.rt.shared.AbstractIcons;
/**
- * <h3>{@link Icons}</h3>
- *
* @author ${userName}
*/
public class Icons extends AbstractIcons {
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/helloworld/IHelloWorldService.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/helloworld/IHelloWorldService.java
index 4fa30bc..220f708 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/helloworld/IHelloWorldService.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/helloworld/IHelloWorldService.java
@@ -9,8 +9,6 @@
import ${package}.shared.helloworld.HelloWorldFormData;
/**
- * <h3>{@link IHelloWorldService}</h3>
- *
* @author ${userName}
*/
@TunnelToServer
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/security/AccessControlService.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/security/AccessControlService.java
index e54c565..6e122b4 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/security/AccessControlService.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/security/AccessControlService.java
@@ -10,8 +10,6 @@
import org.eclipse.scout.rt.shared.services.common.security.IAccessControlService;
/**
- * <h3>{@link UserIdAccessControlService}</h3>
- *
* {@link IAccessControlService} service that uses {@link ISession#getUserId()} as internal cache key required by
* {@link AbstractAccessControlService} implementation.
* <p>
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/text/DefaultTextProviderService.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/text/DefaultTextProviderService.java
index de3630e..0897718 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/text/DefaultTextProviderService.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/java/shared/text/DefaultTextProviderService.java
@@ -4,11 +4,9 @@
package ${package}.shared.text;
import org.eclipse.scout.rt.platform.Order;
-import org.eclipse.scout.rt.shared.services.common.text.AbstractDynamicNlsTextProviderService;
+import org.eclipse.scout.rt.platform.text.AbstractDynamicNlsTextProviderService;
/**
- * <h3>{@link DefaultTextProviderService}</h3>
- *
* @author ${userName}
*/
@Order(-2000)
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts.properties b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts.properties
index 06d0c7a..7bb0f89 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts.properties
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts.properties
@@ -1,10 +1,9 @@
About=About
ApplicationTitle=${displayName}
-Exit=Exit
-File=File
+AuthorizationFailed=Permission denied
HelloWorld=Hello World
+Logout=Logout
Message=Message
MessageFromServer=Message from Server
Settings=Settings
Work=Work
-AuthorizationFailed=Permission denied
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts_de.properties b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts_de.properties
index b9a4506..ab45d96 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts_de.properties
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts_de.properties
@@ -1,9 +1,8 @@
About=Info
ApplicationTitle=${displayName}
-Exit=Beenden
-File=Datei
+AuthorizationFailed=Zugriff verweigert
+Logout=Abmelden
Message=Nachricht
MessageFromServer=Nachricht vom Server
Settings=Einstellungen
Work=Arbeit
-AuthorizationFailed=Zugriff verweigert
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts_fr.properties b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts_fr.properties
index 6be7298..ad40535 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts_fr.properties
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.shared/src/main/resources/shared/texts/Texts_fr.properties
@@ -1,9 +1,8 @@
About=Info
ApplicationTitle=${displayName}
-Exit=Terminer
-File=Fichier
+AuthorizationFailed=Acc\u00E8s refus\u00E9
+Logout=Annuler
Message=Message
MessageFromServer=Message du serveur
Settings=Param\u00E8tres
Work=Travail
-AuthorizationFailed=Acc\u00E8s refus\u00E9
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.dev/src/main/resources/config.properties b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.dev/src/main/resources/config.properties
index 19910aa..a99f5ab 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.dev/src/main/resources/config.properties
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.dev/src/main/resources/config.properties
@@ -5,22 +5,17 @@
scout.application.name=${displayName}
scout.application.version=development
-$symbol_pound$symbol_pound$symbol_pound UI
-scout.ui.theme=application
-scout.ui.prebuild=false
-scout.ui.prebuild.files=/index.html,/login.html,/logout.html,/popup-window.html
-
$symbol_pound$symbol_pound$symbol_pound Environment
-scout.dev.mode=true
-scout.auth.cookie.session.validate.secure=false
+scout.devMode=true
+scout.auth.cookieSessionValidateSecure=false
$symbol_pound$symbol_pound$symbol_pound Service tunnel
-scout.server.url=http://localhost:8080
-scout.auth.privatekey=${scoutAuthPrivateKeyDev}
+scout.backendUrl=http://localhost:8080
+scout.auth.privateKey=${scoutAuthPrivateKeyDev}
$symbol_pound$symbol_pound$symbol_pound Security
scout.auth.credentials=admin:admin;scott:tiger
-scout.auth.credentials.plaintext=true
+scout.auth.credentialsPlaintext=true
$symbol_pound$symbol_pound$symbol_pound Storage location for FileSystemUserPreferencesStorageService
-user.area=${symbol_dollar}{user.home}/${groupId}-${rootArtifactId}.ui.html.dev
+scout.client.userArea=${symbol_dollar}{user.home}/${groupId}-${rootArtifactId}.ui.html.dev
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.dev/src/main/webapp/WEB-INF/web.xml b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.dev/src/main/webapp/WEB-INF/web.xml
index 0d15d27..3f49f9f 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.dev/src/main/webapp/WEB-INF/web.xml
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.dev/src/main/webapp/WEB-INF/web.xml
@@ -11,7 +11,6 @@
<listener>
<listener-class>org.eclipse.scout.rt.server.commons.WebappEventListener</listener-class>
</listener>
-
<listener>
<listener-class>org.eclipse.scout.rt.server.commons.HttpSessionMutex</listener-class>
</listener>
@@ -26,17 +25,24 @@
</param-value>
</init-param>
</filter>
-
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+ <filter>
+ <filter-name>GzipServletFilter</filter-name>
+ <filter-class>org.eclipse.scout.rt.server.commons.servlet.filter.gzip.GzipServletFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>GzipServletFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
<servlet>
<servlet-name>UiServlet</servlet-name>
<servlet-class>org.eclipse.scout.rt.ui.html.UiServlet</servlet-class>
</servlet>
-
<servlet-mapping>
<servlet-name>UiServlet</servlet-name>
<url-pattern>/*</url-pattern>
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.war/src/main/resources/config.properties b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.war/src/main/resources/config.properties
index b737e91..a052406 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.war/src/main/resources/config.properties
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.war/src/main/resources/config.properties
@@ -6,16 +6,15 @@
scout.application.version=${symbol_dollar}{project.version}
$symbol_pound$symbol_pound$symbol_pound UI
-scout.ui.theme=application
scout.ui.prebuild=true
scout.ui.prebuild.files=/index.html,/login.html,/logout.html,/popup-window.html
$symbol_pound$symbol_pound$symbol_pound Service tunnel
-scout.server.url=https://localhost:8443/${groupId}.${rootArtifactId}.server
-scout.auth.privatekey=${scoutAuthPrivateKey}
+scout.backendUrl=https://localhost:8443/${groupId}.${rootArtifactId}.server
+scout.auth.privateKey=${scoutAuthPrivateKey}
$symbol_pound$symbol_pound$symbol_pound Security
scout.auth.credentials=admin:Q5hBRXwi25yU57UdwZESrw==.cvvCvJLQmtdQSu2VI8Di4f0j/bmf6q3YFOfb3esdRLiXnNnWIl3wHjBI8QSu8K1TfO1lvADmb9aOc1GEEfXztA==;scott:xeCQwEtqP6sRfuvAYYUPHw==.6plBwhPiyYurpq8EysozTOrXe/FTw+pA3uyM0jnuPYz0zx16a4yDxVmhHik/YFiWGhTwMnhx4+bSk3rb5IOn+A==
$symbol_pound$symbol_pound$symbol_pound Storage location for FileSystemUserPreferencesStorageService
-user.area=${symbol_escape}${symbol_dollar}{user.home}/${groupId}-${rootArtifactId}.ui.html
+scout.client.userArea=${symbol_escape}${symbol_dollar}{user.home}/${groupId}-${rootArtifactId}.ui.html
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.war/src/main/webapp/WEB-INF/web.xml b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.war/src/main/webapp/WEB-INF/web.xml
index fa482ec..5d63016 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.war/src/main/webapp/WEB-INF/web.xml
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html.app.war/src/main/webapp/WEB-INF/web.xml
@@ -11,7 +11,6 @@
<listener>
<listener-class>org.eclipse.scout.rt.server.commons.WebappEventListener</listener-class>
</listener>
-
<listener>
<listener-class>org.eclipse.scout.rt.server.commons.HttpSessionMutex</listener-class>
</listener>
@@ -26,17 +25,24 @@
</param-value>
</init-param>
</filter>
-
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+ <filter>
+ <filter-name>GzipServletFilter</filter-name>
+ <filter-class>org.eclipse.scout.rt.server.commons.servlet.filter.gzip.GzipServletFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>GzipServletFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
<servlet>
<servlet-name>UiServlet</servlet-name>
<servlet-class>org.eclipse.scout.rt.ui.html.UiServlet</servlet-class>
</servlet>
-
<servlet-mapping>
<servlet-name>UiServlet</servlet-name>
<url-pattern>/*</url-pattern>
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/pom.xml b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/pom.xml
index 4a581fc..805006b 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/pom.xml
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/pom.xml
@@ -20,6 +20,10 @@
<artifactId>org.eclipse.scout.rt.ui.html</artifactId>
</dependency>
<dependency>
+ <groupId>org.eclipse.scout.rt</groupId>
+ <artifactId>org.eclipse.scout.rt.svg.ui.html</artifactId>
+ </dependency>
+ <dependency>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}.client</artifactId>
</dependency>
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/java/ui/html/UiServletFilter.java b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/java/ui/html/UiServletFilter.java
index c4373d9..5c9b0da 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/java/ui/html/UiServletFilter.java
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/java/ui/html/UiServletFilter.java
@@ -24,8 +24,7 @@
import org.eclipse.scout.rt.server.commons.authentication.TrivialAccessController.TrivialAuthConfig;
/**
- * <h3>{@link UiServletFilter}</h3>
- * This is the main servlet filter used for the HTML UI.
+ * This is the main servlet filter for the HTML UI.
*
* @author ${userName}
*/
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/__rootArtifactId__-module.js b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/__rootArtifactId__-module.js
new file mode 100644
index 0000000..d4f60aa
--- /dev/null
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/__rootArtifactId__-module.js
@@ -0,0 +1,7 @@
+/**
+ * Include your custom JavaScript files here.
+ */
+(function(${rootArtifactId}, scout, $, undefined) {
+ // Sample:
+ // __include("${rootArtifactId}/myCustomJs/myCustom.js");
+}(window.${rootArtifactId} = window.${rootArtifactId} || {}, scout, jQuery));
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/__rootArtifactId__-module.less b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/__rootArtifactId__-module.less
new file mode 100644
index 0000000..4489920
--- /dev/null
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/__rootArtifactId__-module.less
@@ -0,0 +1,6 @@
+/**
+ * Import your custom less files here
+ * Fore more details see the styling chapters in the Scout documentation (https://eclipsescout.github.io/)
+ */
+
+@import "${rootArtifactId}/style/colors.less";
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/__rootArtifactId__/style/colors.less b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/__rootArtifactId__/style/colors.less
new file mode 100644
index 0000000..3f6b696
--- /dev/null
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/__rootArtifactId__/style/colors.less
@@ -0,0 +1,7 @@
+/**
+ * Change colors here
+ * Fore more details see the styling chapters in the Scout documentation (https://eclipsescout.github.io/)
+ *
+ * Sample:
+ * @navigation-background-color: @palette-red-4;
+ */
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/scout/style/colors-application.less b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/scout/style/colors-application.less
deleted file mode 100644
index c1a8d6d..0000000
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/js/scout/style/colors-application.less
+++ /dev/null
@@ -1,15 +0,0 @@
-@import "scout/style/colors.less";
-
-/* ------------------------------------------------ */
-/* Color palette definition for theme "application" */
-/* ------------------------------------------------ */
-
-@palette-application-blue: #0083A2;
-@palette-application-orange: #FE9A0D;
-
-
-/* ------------------------- */
-/* Component specific colors */
-/* ------------------------- */
-
-@navigation-background-color: @palette-application-blue;
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/includes/head.html b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/includes/head.html
index 863de7d..0fe69c9 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/includes/head.html
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/includes/head.html
@@ -1,6 +1,6 @@
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
-<!-- >>> favicon >>> -->
+<!-- BEGIN favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="res/favicon/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="res/favicon/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="res/favicon/apple-touch-icon-72x72.png">
@@ -22,4 +22,4 @@
<meta name="apple-mobile-web-app-title" content="${displayName}">
<meta name="application-name" content="${displayName}">
<meta name="msapplication-config" content="res/favicon/browserconfig.xml">
-<!-- <<< favicon <<< -->
+<!-- END favicon -->
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/__rootArtifactId__-all-macro.js b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/__rootArtifactId__-all-macro.js
index bcbaaac..0e5591b 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/__rootArtifactId__-all-macro.js
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/__rootArtifactId__-all-macro.js
@@ -1 +1,3 @@
__include("scout-module.js");
+__include("${rootArtifactId}-module.js");
+__include("svg-module.js");
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/__rootArtifactId__-all-macro.less b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/__rootArtifactId__-all-macro.less
index eb95b2a..271912b 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/__rootArtifactId__-all-macro.less
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/__rootArtifactId__-all-macro.less
@@ -1 +1,3 @@
@import "scout-module.less";
+@import "${rootArtifactId}-module.less";
+@import "svg-module.less";
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/index.js b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/index.js
index 6f2486f..f2b471d 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/index.js
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/res/index.js
@@ -1,8 +1,4 @@
$(document).ready(function() {
var app = new scout.RemoteApp();
- app.init({
- bootstrap: {
- fonts: ['scoutIcons']
- }
- });
+ app.init();
});
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/unsupported-browser.html b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/unsupported-browser.html
index f9690e9..e429904 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/unsupported-browser.html
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__.ui.html/src/main/resources/WebContent/unsupported-browser.html
@@ -8,7 +8,9 @@
<ul>
<li><scout:message key="ui.BrowserChrome" /></li>
<li><scout:message key="ui.BrowserFirefox" /></li>
+ <li><scout:message key="ui.BrowserEdge" /></li>
<li><scout:message key="ui.BrowserInternetExplorer" /></li>
+ <li><scout:message key="ui.BrowserSafari" /></li>
</ul>
<div class="button-bar">
<button class="button"><scout:message key="ui.ContinueAnyway" /></button>
diff --git a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__/pom.xml b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__/pom.xml
index 341a332..ecfd12e 100644
--- a/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__/pom.xml
+++ b/scout-helloworld-app/src/main/resources/archetype-resources/__rootArtifactId__/pom.xml
@@ -20,7 +20,7 @@
<properties>
<${groupId}.${rootArtifactId}.version>${project.version}</${groupId}.${rootArtifactId}.version>
<jdk.source.version>${javaVersion}</jdk.source.version>
- <org.eclipse.scout.rt.version>7.0.300-SNAPSHOT</org.eclipse.scout.rt.version>
+ <org.eclipse.scout.rt.version>8.0.0-SNAPSHOT</org.eclipse.scout.rt.version>
</properties>
<modules>
diff --git a/scout-jaxws-module/.project b/scout-jaxws-module/.project
index cf78e45..95556d5 100644
--- a/scout-jaxws-module/.project
+++ b/scout-jaxws-module/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/scout-jaxws-module/.settings/org.eclipse.jdt.ui.prefs b/scout-jaxws-module/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/scout-jaxws-module/.settings/org.eclipse.jdt.ui.prefs
+++ b/scout-jaxws-module/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/scout-jaxws-module/.settings/org.eclipse.wst.jsdt.core.prefs b/scout-jaxws-module/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/scout-jaxws-module/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/scout-jaxws-module/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/scout-jaxws-module/.settings/org.sonarlint.eclipse.core.prefs b/scout-jaxws-module/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/scout-jaxws-module/.settings/org.sonarlint.eclipse.core.prefs
+++ b/scout-jaxws-module/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/scout-jaxws-module/pom.xml b/scout-jaxws-module/pom.xml
index f8d4861..fd27689 100644
--- a/scout-jaxws-module/pom.xml
+++ b/scout-jaxws-module/pom.xml
@@ -23,7 +23,7 @@
<groupId>org.eclipse.scout.archetypes</groupId>
<artifactId>scout-jaxws-module</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<packaging>maven-archetype</packaging>
<name>Scout JaxWs Module</name>
@@ -31,7 +31,7 @@
<url>https://eclipse.org/scout</url>
<properties>
- <scout.base.version>7.0.300</scout.base.version>
+ <scout.base.version>8.0.0</scout.base.version>
<base.version>${scout.base.version}</base.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -108,7 +108,7 @@
<scm>
<connection>scm:git:git://git.eclipse.org/gitroot/scout/org.eclipse.scout.sdk.git</connection>
<developerConnection>scm:git:ssh://${eclipse_gerrit_username}@git.eclipse.org:29418/scout/org.eclipse.scout.sdk</developerConnection>
- <tag>releases/7.0.x</tag>
+ <tag>releases/8.0.x</tag>
<url>http://git.eclipse.org/c/scout/org.eclipse.scout.sdk.git/</url>
</scm>
diff --git a/shell_scripts/release.sh b/shell_scripts/release.sh
index 81e51eb..96c9857 100755
--- a/shell_scripts/release.sh
+++ b/shell_scripts/release.sh
@@ -68,6 +68,8 @@
processError
mvn -Prelease.setversion -Dmaster_release_milestoneVersion=$RELEASE -Dorg.eclipse.scout.rt_version=$SCOUT_RT -f scout-jaxws-module -N $_MAVEN_OPTS
processError
+mvn -Prelease.setversion -Dmaster_release_milestoneVersion=$RELEASE -Dorg.eclipse.scout.rt_version=$SCOUT_RT -f scout-hellojs-app -N $_MAVEN_OPTS
+processError
mvn clean install -U -f org.eclipse.scout.sdk -Dmaster_unitTest_failureIgnore=false $_MAVEN_OPTS
processError
diff --git a/updatesite-maven-plugin/.project b/updatesite-maven-plugin/.project
index 14758fe..918248b 100644
--- a/updatesite-maven-plugin/.project
+++ b/updatesite-maven-plugin/.project
@@ -11,12 +11,12 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
diff --git a/updatesite-maven-plugin/.settings/org.eclipse.jdt.ui.prefs b/updatesite-maven-plugin/.settings/org.eclipse.jdt.ui.prefs
index 05988a5..c0e09bf 100644
--- a/updatesite-maven-plugin/.settings/org.eclipse.jdt.ui.prefs
+++ b/updatesite-maven-plugin/.settings/org.eclipse.jdt.ui.prefs
@@ -61,7 +61,7 @@
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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 7.0.300 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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>
+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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0\r\n */</template><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\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="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 * \r\n */</template><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">/**\r\n * <h3>{@link ${type_name}}</h3>\r\n *\r\n * @author ${user}\r\n * @since 8.0.0 ${date}\r\n */</template><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">/**\r\n * ${tags}\r\n */</template><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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><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
diff --git a/updatesite-maven-plugin/.settings/org.eclipse.wst.jsdt.core.prefs b/updatesite-maven-plugin/.settings/org.eclipse.wst.jsdt.core.prefs
index 4bab8fd..1b2735d 100644
--- a/updatesite-maven-plugin/.settings/org.eclipse.wst.jsdt.core.prefs
+++ b/updatesite-maven-plugin/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -171,6 +171,7 @@
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
diff --git a/updatesite-maven-plugin/.settings/org.sonarlint.eclipse.core.prefs b/updatesite-maven-plugin/.settings/org.sonarlint.eclipse.core.prefs
index 77f335c..0301c4e 100644
--- a/updatesite-maven-plugin/.settings/org.sonarlint.eclipse.core.prefs
+++ b/updatesite-maven-plugin/.settings/org.sonarlint.eclipse.core.prefs
@@ -1,6 +1,7 @@
autoEnabled=true
eclipse.preferences.version=1
extraProperties=
-moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
-projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_7.0.x
+fileExclusions=
+moduleKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
+projectKey=org.eclipse.scout.sdk\:org.eclipse.scout.sdk\:releases_8.0.x
serverId=Scout
diff --git a/updatesite-maven-plugin/pom.xml b/updatesite-maven-plugin/pom.xml
index ebe5431..f97718d 100644
--- a/updatesite-maven-plugin/pom.xml
+++ b/updatesite-maven-plugin/pom.xml
@@ -23,12 +23,12 @@
<groupId>org.eclipse.scout.sdk</groupId>
<artifactId>updatesite-maven-plugin</artifactId>
- <version>7.0.300-SNAPSHOT</version>
+ <version>8.0.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>${project.groupId}:${project.artifactId}</name>
<properties>
- <scout.base.version>7.0.300</scout.base.version>
+ <scout.base.version>8.0.0</scout.base.version>
<base.version>${scout.base.version}</base.version>
</properties>
diff --git a/updatesite-maven-plugin/src/main/java/org/eclipse/scout/maven/plugins/updatesite/FileUtility.java b/updatesite-maven-plugin/src/main/java/org/eclipse/scout/maven/plugins/updatesite/FileUtility.java
index 7a17318..20f750f 100644
--- a/updatesite-maven-plugin/src/main/java/org/eclipse/scout/maven/plugins/updatesite/FileUtility.java
+++ b/updatesite-maven-plugin/src/main/java/org/eclipse/scout/maven/plugins/updatesite/FileUtility.java
@@ -18,6 +18,7 @@
import java.io.OutputStream;
import java.net.URI;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
@@ -42,7 +43,10 @@
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
-public class FileUtility {
+public final class FileUtility {
+
+ private FileUtility() {
+ }
public static void copy(File inputFile, File outputFile) throws IOException {
if (inputFile.isDirectory()) {
@@ -148,6 +152,7 @@
return Files.readAllBytes(source.toPath());
}
+ @SuppressWarnings({"squid:S1166", "squid:S1141"})
public static void writeDOM(Document doc, File file) throws MojoExecutionException {
try {
TransformerFactory tf = TransformerFactory.newInstance();
@@ -155,16 +160,19 @@
tf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
}
catch (TransformerConfigurationException e) {
+ // nop
}
try {
tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
}
catch (IllegalArgumentException e) {
+ // nop
}
try {
tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
}
catch (IllegalArgumentException e) {
+ // nop
}
Transformer transformer = tf.newTransformer();
@@ -190,7 +198,9 @@
}
}
- public static void extractArchive(File archiveFile, File destinationDir) throws IOException {
+ public static void extractArchive(File archiveFile, File targetDir) throws IOException {
+ File destinationDir = targetDir.getCanonicalFile();
+ Path destinationPath = destinationDir.toPath();
destinationDir.mkdirs();
destinationDir.setLastModified(archiveFile.lastModified());
String localFile = destinationDir.getName();
@@ -205,8 +215,12 @@
while (name.startsWith("/") || name.startsWith("\\")) {
name = name.substring(1);
}
+ File f = new File(destinationDir, name).getCanonicalFile();
+ if (!f.toPath().startsWith(destinationPath)) {
+ // security check (see https://github.com/snyk/zip-slip-vulnerability)
+ throw new IllegalArgumentException("Entry is outside of the target dir: " + name);
+ }
- File f = new File(destinationDir, name);
if (file.isDirectory()) { // if its a directory, create it
ensureDirExists(f);
}
@@ -237,6 +251,7 @@
* @throws ParserConfigurationException
* if a {@link DocumentBuilder} cannot be created which satisfies the configuration requested.
*/
+ @SuppressWarnings("squid:S1166")
public static DocumentBuilder createDocumentBuilder() throws ParserConfigurationException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Map<String, Boolean> features = new HashMap<>(5);