Merge "512441: Fix PolymorphicDispatcher selection algorithm"
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui.tests/src/org/eclipse/emf/parsley/dsl/tests/util/ui/TestableEmfParsleyDslNewProjectWizard.java b/dsl/org.eclipse.emf.parsley.dsl.ui.tests/src/org/eclipse/emf/parsley/dsl/tests/util/ui/TestableEmfParsleyDslNewProjectWizard.java
index 0ddc3f2..70f5ae4 100644
--- a/dsl/org.eclipse.emf.parsley.dsl.ui.tests/src/org/eclipse/emf/parsley/dsl/tests/util/ui/TestableEmfParsleyDslNewProjectWizard.java
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui.tests/src/org/eclipse/emf/parsley/dsl/tests/util/ui/TestableEmfParsleyDslNewProjectWizard.java
@@ -17,7 +17,7 @@
public class TestableEmfParsleyDslNewProjectWizard extends
EmfParsleyDslNewProjectWizard {
- public static final String TEST_PROJECT = "TestProject";
+ public static final String TEST_PROJECT = "testproject";
@Inject
public TestableEmfParsleyDslNewProjectWizard(IProjectCreator projectCreator) {
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui.tests/src/org/eclipse/emf/parsley/dsl/ui/tests/EmfParsleyDslWorkbenchTest.xtend b/dsl/org.eclipse.emf.parsley.dsl.ui.tests/src/org/eclipse/emf/parsley/dsl/ui/tests/EmfParsleyDslWorkbenchTest.xtend
index 65137b0..3600fe5 100644
--- a/dsl/org.eclipse.emf.parsley.dsl.ui.tests/src/org/eclipse/emf/parsley/dsl/ui/tests/EmfParsleyDslWorkbenchTest.xtend
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui.tests/src/org/eclipse/emf/parsley/dsl/ui/tests/EmfParsleyDslWorkbenchTest.xtend
@@ -44,7 +44,7 @@
@Inject PluginProjectHelper projectHelper
val TEST_MODULE = TestableEmfParsleyDslNewProjectWizard.TEST_PROJECT + "/" +
- TestableEmfParsleyDslNewProjectWizard.TEST_PROJECT + ".parsley"
+ TestableEmfParsleyDslNewProjectWizard.TEST_PROJECT.toFirstUpper + ".parsley"
val TEST_PLUGIN_XML_GEN =
EmfParsleyDslOutputConfigurationProvider.EMFPARSLEY_GEN + "/" + TEST_PROJECT + "/" +
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java
index fadd796..c6c1a5a 100644
--- a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java
@@ -78,10 +78,11 @@
@Override
protected String getActivatorClassName() {
- return getProjectInfo().getProjectName()
+ String projectName = getFixedProjectName();
+ return projectName
+ "."
+ projectFilesGenerator.activatorName(
- getProjectInfo().getProjectName()).toString();
+ projectName).toString();
}
@Override
@@ -101,7 +102,7 @@
@Override
protected void enhanceProject(final IProject project,
final IProgressMonitor monitor) throws CoreException {
- String projectName = getProjectInfo().getProjectName();
+ String projectName = getFixedProjectName();
String srcFolder = "src";
String projectPackagePath = srcFolder + "/"
@@ -137,4 +138,9 @@
project.refreshLocal(IResource.DEPTH_INFINITE, subMonitor.newChild(1));
subMonitor.done();
}
+
+ protected String getFixedProjectName() {
+ return NewEmfParsleyProjectSupport.getValidJavaName(
+ getProjectInfo().getProjectName());
+ }
}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectSupport.java b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectSupport.java
index 12e650c..7c14f48 100644
--- a/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectSupport.java
+++ b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectSupport.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013 RCP Vision (http://www.rcp-vision.com) and others.
+ * Copyright (c) 2013-2017 RCP Vision (http://www.rcp-vision.com) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -7,11 +7,13 @@
*
* Contributors:
* Lorenzo Bettini - Initial contribution and API
+ * Vincenzo Caselli - https://bugs.eclipse.org/bugs/show_bug.cgi?id=512356
*******************************************************************************/
package org.eclipse.emf.parsley.wizards;
import java.io.ByteArrayInputStream;
import java.nio.charset.Charset;
+import java.util.Locale;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
@@ -104,4 +106,13 @@
progressMonitor.done();
}
+ /**
+ * Replaces any character different from a-zA-Z0-9._ with _, then convert in lowercase
+ * @param name
+ * @return
+ */
+ public static String getValidJavaName(String name) {
+ return name.replaceAll("[^a-zA-Z0-9\\._]", "_").toLowerCase(Locale.ENGLISH);
+ }
+
}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleyDslUiAbstractTests.xtend b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleyDslUiAbstractTests.xtend
index e6aef62..f789ce6 100644
--- a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleyDslUiAbstractTests.xtend
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleyDslUiAbstractTests.xtend
@@ -17,10 +17,18 @@
public abstract class EmfParsleyDslUiAbstractTests extends EmfParsleySWTBotAbstractTests {
protected val TEST_PROJ_NAME = "my.emfparsley.proj"
+ protected val TEST_PROJ_NAME_BAD1 = "My-EmfParsley--project"
def createDslProjectWithWizard() {
createProjectWithoutTemplateInWorkspace(EMF_PARSLEY_CATEGORY,
NEW_EMF_PARSLEY_DSL_PROJECT, TEST_PROJ_NAME);
assertNoIssuesInProjectAfterAutoBuild();
}
+
+ def createDslProjectWithWizardFromBadProjectName1() {
+ createProjectWithoutTemplateInWorkspace(EMF_PARSLEY_CATEGORY,
+ NEW_EMF_PARSLEY_DSL_PROJECT, TEST_PROJ_NAME_BAD1);
+ assertNoIssuesInProjectAfterAutoBuild();
+ }
+
}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleyDslWizardsTests.xtend b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleyDslWizardsTests.xtend
index b787b43..e10593a 100644
--- a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleyDslWizardsTests.xtend
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleyDslWizardsTests.xtend
@@ -42,6 +42,12 @@
}
@Test
+ def canCreateDslProjectWithWizardFromBadProjectName1() {
+ createDslProjectWithWizardFromBadProjectName1;
+ assertNoIssuesInProjectAfterAutoBuild();
+ }
+
+ @Test
def canCreateDslProjectWithWizardAndTreeFormTemplate() {
createProjectWithTemplateInWorkspace(EMF_PARSLEY_CATEGORY,
NEW_EMF_PARSLEY_DSL_PROJECT, TEST_PROJ_NAME, TREE_FORM_TEMPLATE);
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleySWTBotAbstractTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleySWTBotAbstractTests.java
index 559e5f3..0888b3c 100644
--- a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleySWTBotAbstractTests.java
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/swtbot/EmfParsleySWTBotAbstractTests.java
@@ -828,7 +828,7 @@
}
protected void assertProjectIsCreated(String projectName) {
- assertTrue("Project doesn't exist", isProjectCreated(projectName));
+ assertTrue("Project doesn't exist: " + projectName, isProjectCreated(projectName));
}
protected void waitForBuild() throws CoreException {