Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJessy Mallet2014-09-30 12:40:09 +0000
committerLaurent Redor2014-11-13 10:49:26 +0000
commitb8054650f683fe0972ac5418ccf4954fe83b1b13 (patch)
tree61618b10866a6518ef1e33ababd8b693b646847a
parent54ab91e123c75d5fe28c2470069f3a20f031aaca (diff)
downloadorg.eclipse.sirius-b8054650f683fe0972ac5418ccf4954fe83b1b13.tar.gz
org.eclipse.sirius-b8054650f683fe0972ac5418ccf4954fe83b1b13.tar.xz
org.eclipse.sirius-b8054650f683fe0972ac5418ccf4954fe83b1b13.zip
[444578] Fix Manifest file generated by VSP wizard
Modification of the specified execution environment in Manifest content (generated by VSP wizard) should be the default one. Bug: 444578 Change-Id: I407183a2cd6091748ec5ebeaa3de704898927f54 Signed-off-by: Jessy Mallet <jessy.mallet@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/editor/vsm/ViewpointSpecificationProjectCreationTest.java34
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java4
-rw-r--r--plugins/org.eclipse.sirius.ui/META-INF/MANIFEST.MF3
-rw-r--r--plugins/org.eclipse.sirius.ui/resources/MANIFEST.MF2
-rw-r--r--plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/project/ViewpointSpecificationProject.java30
5 files changed, 69 insertions, 4 deletions
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/editor/vsm/ViewpointSpecificationProjectCreationTest.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/editor/vsm/ViewpointSpecificationProjectCreationTest.java
index cd81152b36..c1b741eaf8 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/editor/vsm/ViewpointSpecificationProjectCreationTest.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/editor/vsm/ViewpointSpecificationProjectCreationTest.java
@@ -10,6 +10,11 @@
*******************************************************************************/
package org.eclipse.sirius.tests.swtbot.editor.vsm;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectNature;
@@ -23,6 +28,7 @@ import org.eclipse.sirius.tests.support.api.TestsUtil;
import org.eclipse.sirius.tests.swtbot.support.api.AbstractSiriusSwtBotGefTestCase;
import org.eclipse.sirius.tests.swtbot.support.api.condition.ItemEnabledCondition;
import org.eclipse.sirius.tests.swtbot.support.utils.SWTBotUtils;
+import org.eclipse.sirius.ui.tools.api.project.ViewpointSpecificationProject;
import org.eclipse.swtbot.eclipse.gef.finder.SWTGefBot;
import org.eclipse.swtbot.swt.finder.waits.Conditions;
import org.eclipse.swtbot.swt.finder.waits.DefaultCondition;
@@ -105,6 +111,14 @@ public class ViewpointSpecificationProjectCreationTest extends AbstractSiriusSwt
assertNotNull(VSP_SHOULD_CONTAIN + ".project file.", project.getFile(".project"));
assertNotNull(VSP_SHOULD_CONTAIN + "MANIFEST.MF file.", project.getFile("META-INF/MANIFEST.MF"));
+ // Check that the created Manifest contains the default environment
+ // execution of the user
+ try {
+ checkManifestContent(project);
+ } catch (IOException e1) {
+ fail("Cannot read the Manifest");
+ }
+
// Check that the created odesign does not need migration (version tag
// must be initialized)
VSMVersionSAXParser parser = new VSMVersionSAXParser(URI.createPlatformResourceURI(vsm.getFullPath().toOSString()));
@@ -122,6 +136,26 @@ public class ViewpointSpecificationProjectCreationTest extends AbstractSiriusSwt
}
+ private void checkManifestContent(IProject project) throws IOException {
+ // Check the Manifest contents about environment execution
+ InputStream is = null;
+ try {
+ is = project.getFile("META-INF/MANIFEST.MF").getContents();
+ try {
+ Manifest manifest = new Manifest(is);
+ Attributes attributes = manifest.getMainAttributes();
+ String currentJseId = attributes.getValue("Bundle-RequiredExecutionEnvironment");
+ assertEquals("The JSE name should be the name of the default environment execution.", ViewpointSpecificationProject.getDefaultJseId(), currentJseId);
+ } catch (IOException ex) {
+ fail("Error while reading Bundle-RequiredExecutionEnvironment: " + ex.getMessage());
+ }
+ } catch (CoreException e) {
+ fail("Cannot read the Manifest content");
+ } finally {
+ is.close();
+ }
+ }
+
private void checkNatures(IProject project) {
// Check the natures
IProjectNature nature = null;
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
index 6895c3febb..5f1440e279 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
@@ -82,8 +82,8 @@ public class AllTestSuite extends TestCase {
public static Test suite() {
final TestSuite suite = new TestSuite("Sirius SwtBot tests");
- // TheViepointProjectCreationTest shud be done before the others ones :
- // to verifiy the behavior when a specifier first launches the product.
+ // TheViepointProjectCreationTest should be done before the others ones:
+ // to verify the behavior when a specifier first launches the product.
suite.addTestSuite(ViewpointSpecificationProjectCreationTest.class);
suite.addTestSuite(ContentAssistTest.class);
diff --git a/plugins/org.eclipse.sirius.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.ui/META-INF/MANIFEST.MF
index e4db4d4ca0..0cbaed6364 100644
--- a/plugins/org.eclipse.sirius.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.sirius.ui/META-INF/MANIFEST.MF
@@ -110,7 +110,8 @@ Require-Bundle: com.google.guava;bundle-version="[11.0.2,16.0)",
org.eclipse.ui.navigator;bundle-version="3.5.200",
org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.300",
org.eclipse.core.expressions;bundle-version="3.4.400",
- org.eclipse.ui.editors;bundle-version="3.8.0"
+ org.eclipse.ui.editors;bundle-version="3.8.0",
+ org.eclipse.jdt.launching;bundle-version="3.6.101"
Eclipse-LazyStart: true
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.sirius.ui/resources/MANIFEST.MF b/plugins/org.eclipse.sirius.ui/resources/MANIFEST.MF
index 9a693f81a4..95be991852 100644
--- a/plugins/org.eclipse.sirius.ui/resources/MANIFEST.MF
+++ b/plugins/org.eclipse.sirius.ui/resources/MANIFEST.MF
@@ -10,4 +10,4 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.sirius,
org.eclipse.sirius.common.acceleo.mtl
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: %jseId
diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/project/ViewpointSpecificationProject.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/project/ViewpointSpecificationProject.java
index 88e0120d00..67da3ad025 100644
--- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/project/ViewpointSpecificationProject.java
+++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/project/ViewpointSpecificationProject.java
@@ -50,6 +50,10 @@ import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jdt.launching.environments.IExecutionEnvironment;
+import org.eclipse.jdt.launching.environments.IExecutionEnvironmentsManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableContext;
@@ -205,6 +209,31 @@ public final class ViewpointSpecificationProject {
}
/**
+ * Get default execution environment based on strict match to default VM.
+ * This code is based on {@link
+ * org.eclipse.pde.internal.ui.wizards.plugin.PluginContentPage.
+ * createExecutionEnvironmentControls(Composite)}.
+ *
+ * @return The default execution environment.
+ */
+ public static String getDefaultJseId() {
+ String result = null;
+ IVMInstall defaultVM = JavaRuntime.getDefaultVMInstall();
+ IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager();
+ for (IExecutionEnvironment executionEnvironment : manager.getExecutionEnvironments()) {
+ if (executionEnvironment.isStrictlyCompatible(defaultVM)) {
+ result = executionEnvironment.getId();
+ break;
+ }
+ }
+ if (result == null) {
+ // Use java.version property to set the execution environment.
+ result = "JavaSE-" + System.getProperty("java.version").substring(0, 3);
+ }
+ return result;
+ }
+
+ /**
* Create a new folder in a project.
*
* @param prj
@@ -345,6 +374,7 @@ public final class ViewpointSpecificationProject {
replacements.put("projectName", projectName); //$NON-NLS-1$
replacements.put("modelName", modelNameWithoutExtension); //$NON-NLS-1$
replacements.put("packageName", packageName);
+ replacements.put("jseId", getDefaultJseId());
ViewpointSpecificationProject.createFileFromTemplate(prj, "build.properties", "resources/build.properties", replacements, monitor); //$NON-NLS-1$ $NON-NLS-2$
ViewpointSpecificationProject.createFileFromTemplate(prj, "src/" + packageName.replaceAll("\\.", "/") + "/Activator.java", "resources/Activator.java_", replacements, monitor);

Back to the top