Merge remote-tracking branch 'origin/releases/5.2.x' into releases/6.0.x
diff --git a/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/SimpleForm.java b/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/SimpleForm.java
index aea3285..ff51f9e 100644
--- a/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/SimpleForm.java
+++ b/org.eclipse.scout.sdk.core.s.test/src/main/client/formdata/client/ui/forms/SimpleForm.java
@@ -44,6 +44,9 @@
@FormData(value = SimpleFormData.class, sdkCommand = SdkCommand.CREATE, interfaces = {IFormDataInterface01.class, IFormDataInterface02.class, IFormDataInterface03.class})
public class SimpleForm extends AbstractForm {
+ /**
+ *
+ */
private Long simpleNr;
public SimpleForm() throws ProcessingException {
diff --git a/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/structured/WellformTest.java b/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/structured/WellformTest.java
index 902f560..2dd980e 100644
--- a/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/structured/WellformTest.java
+++ b/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/structured/WellformTest.java
@@ -14,6 +14,7 @@
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.CoreTestingUtils;
+import org.junit.Assert;
import org.junit.Test;
import formdata.client.ui.desktop.outline.pages.ExtendedTablePage;
@@ -33,6 +34,20 @@
public class WellformTest {
@Test
+ public void testEmptyCommentRegex() {
+ Assert.assertTrue(Wellformer.EMPTY_COMMENT_REGEX.matcher("/**\n *\n */").matches());
+ Assert.assertTrue(Wellformer.EMPTY_COMMENT_REGEX.matcher("/**\n\t*\n\t*/").matches());
+
+ Assert.assertTrue(Wellformer.EMPTY_COMMENT_REGEX.matcher("/**\n * \n */").matches());
+ Assert.assertTrue(Wellformer.EMPTY_COMMENT_REGEX.matcher("/**\n\t* \n\t*/").matches());
+
+ Assert.assertTrue(Wellformer.EMPTY_COMMENT_REGEX.matcher("/**\n *\n *\n *\n */").matches());
+ Assert.assertTrue(Wellformer.EMPTY_COMMENT_REGEX.matcher("/**\n\t*\n\t*\n\t*/").matches());
+
+ Assert.assertFalse(Wellformer.EMPTY_COMMENT_REGEX.matcher("/**\n * whatever \n */").matches());
+ }
+
+ @Test
public void testWellform() {
Wellformer wf = new Wellformer("\n", true);
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/structured/Wellformer.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/structured/Wellformer.java
index 529ce8b..f71fddf 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/structured/Wellformer.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/structured/Wellformer.java
@@ -16,6 +16,7 @@
import org.eclipse.scout.sdk.core.model.api.IField;
import org.eclipse.scout.sdk.core.model.api.IJavaElement;
+import org.eclipse.scout.sdk.core.model.api.IMember;
import org.eclipse.scout.sdk.core.model.api.IMethod;
import org.eclipse.scout.sdk.core.model.api.ISourceRange;
import org.eclipse.scout.sdk.core.model.api.IType;
@@ -28,6 +29,7 @@
*/
public class Wellformer {
+ protected static final Pattern EMPTY_COMMENT_REGEX = Pattern.compile("/\\*\\*[/\\*\\s]+", Pattern.DOTALL | Pattern.MULTILINE);
private static final Pattern LEADING_SPACES_REGEX = Pattern.compile("\\s*$");
private static final Pattern TRAILING_SPACES_REGEX = Pattern.compile("^\\s*");
@@ -41,13 +43,29 @@
protected void appendFields(List<IField> fields, StringBuilder builder) {
for (IField f : fields) {
- builder.append(m_lineDelimiter).append(f.source());
+ builder.append(m_lineDelimiter);
+ appendMemberSource(f, builder);
}
}
+ protected void appendMemberSource(IMember m, StringBuilder builder) {
+ ISourceRange javaDoc = m.javaDoc();
+ ISourceRange source = m.source();
+
+ if (javaDoc.isAvailable() && EMPTY_COMMENT_REGEX.matcher(javaDoc.toString()).matches()) {
+ // workaround for a bug in the javadoc formatter. See bug 491387 for details.
+ int javaDocEndRel = javaDoc.end() - source.start() + 1 + m_lineDelimiter.length();
+ builder.append("/**").append(m_lineDelimiter).append(" *").append(m_lineDelimiter).append(" */"); // default empty comment
+ builder.append(source.toString().substring(javaDocEndRel));
+ return;
+ }
+ builder.append(source);
+ }
+
protected void appendMethods(List<IMethod> methods, StringBuilder builder) {
for (IMethod m : methods) {
- builder.append(m_lineDelimiter).append(m.source());
+ builder.append(m_lineDelimiter);
+ appendMemberSource(m, builder);
}
}
@@ -58,7 +76,8 @@
buildSource(t, builder);
}
else {
- builder.append(m_lineDelimiter).append(t.source());
+ builder.append(m_lineDelimiter);
+ appendMemberSource(t, builder);
}
}
}
diff --git a/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/ui/fields/AbstractSmartFieldItem.java b/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/ui/fields/AbstractSmartFieldItem.java
index 178e34e..85f6ab7 100644
--- a/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/ui/fields/AbstractSmartFieldItem.java
+++ b/org.eclipse.scout.sdk.s2e.nls/src/main/java/org/eclipse/scout/sdk/s2e/nls/internal/ui/fields/AbstractSmartFieldItem.java
@@ -10,9 +10,9 @@
******************************************************************************/
package org.eclipse.scout.sdk.s2e.nls.internal.ui.fields;
-import org.eclipse.swt.graphics.Image;
+import java.util.Objects;
-import com.google.common.base.Objects;
+import org.eclipse.swt.graphics.Image;
public abstract class AbstractSmartFieldItem implements Comparable<AbstractSmartFieldItem> {
@@ -37,7 +37,7 @@
return false;
}
AbstractSmartFieldItem other = (AbstractSmartFieldItem) obj;
- return Objects.equal(getText(), other.getText());
+ return Objects.equals(getText(), other.getText());
}
@Override
diff --git a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/SourceFormatOperation.java b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/SourceFormatOperation.java
index 55c19b4..19a0d30 100644
--- a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/SourceFormatOperation.java
+++ b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/SourceFormatOperation.java
@@ -65,7 +65,7 @@
@Override
public void run(IProgressMonitor monitor, IWorkingCopyManager workingCopyManager) throws CoreException {
- if (monitor.isCanceled()) {
+ if (monitor != null && monitor.isCanceled()) {
return;
}
try {
diff --git a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/wellform/WellformScoutTypeOperation.java b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/wellform/WellformScoutTypeOperation.java
index 7d88712..a053eac 100644
--- a/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/wellform/WellformScoutTypeOperation.java
+++ b/org.eclipse.scout.sdk.s2e/src/main/java/org/eclipse/scout/sdk/s2e/operation/wellform/WellformScoutTypeOperation.java
@@ -15,7 +15,6 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.IBuffer;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.ISourceRange;
@@ -88,26 +87,32 @@
}
protected void wellformType(IType type, IWorkingCopyManager workingCopyManager) throws CoreException {
- ICompilationUnit icu = type.getCompilationUnit();
- workingCopyManager.register(icu, null);
- IBuffer icuBuffer = icu.getBuffer();
-
- Document sourceDoc = new Document(icuBuffer.getContents());
- String lineSeparator = icu.findRecommendedLineSeparator();
-
ISourceRange typeRange = type.getSourceRange();
- StringBuilder sourceBuilder = new StringBuilder();
+ if (!SourceRange.isAvailable(typeRange)) {
+ return;
+ }
+ ICompilationUnit icu = type.getCompilationUnit();
+ String lineSeparator = icu.findRecommendedLineSeparator();
Wellformer w = new Wellformer(lineSeparator, isRecursive());
+
+ StringBuilder sourceBuilder = new StringBuilder(typeRange.getLength() * 2);
boolean success = w.buildSource(m_envProvider.jdtTypeToScoutType(type), sourceBuilder);
if (success) {
- ReplaceEdit edit = new ReplaceEdit(typeRange.getOffset(), typeRange.getLength(), sourceBuilder.toString());
- // format
try {
+ workingCopyManager.register(icu, null);
+
+ // apply changes
+ ReplaceEdit edit = new ReplaceEdit(typeRange.getOffset(), typeRange.getLength(), sourceBuilder.toString());
+ IBuffer icuBuffer = icu.getBuffer();
+ Document sourceDoc = new Document(icuBuffer.getContents());
edit.apply(sourceDoc);
- SourceRange range = new SourceRange(0, sourceDoc.getLength());
- SourceFormatOperation op = new SourceFormatOperation(type.getJavaProject(), sourceDoc, range);
- op.run(new NullProgressMonitor(), workingCopyManager);
+
+ // format
+ SourceFormatOperation op = new SourceFormatOperation(type.getJavaProject(), sourceDoc);
+ op.run(null, workingCopyManager);
+
+ // write new content to file
icuBuffer.setContents(sourceDoc.get());
}
catch (Exception e) {
diff --git a/updatesite-maven-plugin/pom.xml b/updatesite-maven-plugin/pom.xml
index 594244b..8e16893 100644
--- a/updatesite-maven-plugin/pom.xml
+++ b/updatesite-maven-plugin/pom.xml
@@ -44,18 +44,11 @@
<version>3.3.3</version>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- <version>3.0.22</version>
- </dependency>
-
- <dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.4</version>
<scope>provided</scope>
</dependency>
-
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>