[272014] Define facet and facet version for web fragments
diff --git a/tests/org.eclipse.jst.j2ee.tests/defect-tests/org/eclipse/jst/j2ee/defect/tests/DefectVerificationTests.java b/tests/org.eclipse.jst.j2ee.tests/defect-tests/org/eclipse/jst/j2ee/defect/tests/DefectVerificationTests.java
index d0e8219..c60a8bf 100644
--- a/tests/org.eclipse.jst.j2ee.tests/defect-tests/org/eclipse/jst/j2ee/defect/tests/DefectVerificationTests.java
+++ b/tests/org.eclipse.jst.j2ee.tests/defect-tests/org/eclipse/jst/j2ee/defect/tests/DefectVerificationTests.java
@@ -332,7 +332,7 @@
Thread.sleep(5000);
- String earOutputName = "d:\\temp\\Output" + System.currentTimeMillis() + ".ear";
+ String earOutputName = "c:\\temp\\Output" + System.currentTimeMillis() + ".ear";
IDataModel export = DataModelFactory.createDataModel(new EARComponentExportDataModelProvider());
export.setProperty(IEARComponentExportDataModelProperties.PROJECT_NAME, comp.getProject().getName());
export.setProperty(IEARComponentExportDataModelProperties.ARCHIVE_DESTINATION, earOutputName);
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE6ModelTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE6ModelTest.java
index f4a6bc1..38f9e69 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE6ModelTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE6ModelTest.java
@@ -45,8 +45,10 @@
import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
import org.eclipse.jst.j2ee.internal.plugin.J2EEPreferences;
+import org.eclipse.jst.j2ee.internal.plugin.J2EEPreferences.Keys;
import org.eclipse.jst.j2ee.jca.project.facet.IConnectorFacetInstallDataModelProperties;
import org.eclipse.jst.j2ee.project.facet.IAppClientFacetInstallDataModelProperties;
+import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants;
import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetInstallDataModelProperties;
import org.eclipse.jst.j2ee.web.project.facet.IWebFacetInstallDataModelProperties;
import org.eclipse.jst.javaee.application.Application;
@@ -58,7 +60,9 @@
import org.eclipse.jst.javaee.jca.Connector;
import org.eclipse.jst.javaee.jca.internal.util.JcaResourceImpl;
import org.eclipse.jst.javaee.web.WebApp;
+import org.eclipse.jst.javaee.web.WebFragment;
import org.eclipse.jst.javaee.web.internal.util.WebResourceImpl;
+import org.eclipse.jst.javaee.webfragment.internal.util.WebfragmentResourceImpl;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetInstallDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
@@ -72,7 +76,9 @@
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
import org.eclipse.wst.common.tests.SimpleTestSuite;
+import org.eclipse.wtp.j2ee.headless.tests.j2ee.operations.JavaEEFacetConstants;
import org.eclipse.wtp.j2ee.headless.tests.web.operations.WebProjectCreationOperationTest;
+import org.eclipse.wtp.j2ee.headless.tests.webfragment.operations.WebFragmentProjectCreationOperationTest;
public class JEE6ModelTest extends GeneralEMFPopulationTest {
@@ -307,6 +313,27 @@
}
+public void testWebFragmentModel() throws Exception {
+
+ String projName = "TestEE6WebFragmentProject";//$NON-NLS-1$
+ createWebfragmentProject(projName);
+
+ EMFAttributeFeatureGenerator.reset();
+ String modelPathURI = J2EEConstants.WEBFRAGMENT_DD_URI;
+ URI uri = URI.createURI( "src/" + modelPathURI);
+ ProjectResourceSet resSet = getResourceSet(projName);
+
+ WebfragmentResourceImpl webRes = (WebfragmentResourceImpl) resSet.getResource(uri,true);
+ Assert.assertTrue(webRes.getContents().size() > 0);
+
+ if (webRes.getContents().size() > 0) {
+ WebFragment fragment = webRes.getWebFragment();
+ populateRoot((EObjectImpl)fragment);
+ webRes.save(null);
+ }
+
+}
+
private ProjectResourceSet getResourceSet(String projName) {
IProject proj = getProject(projName);
return (ProjectResourceSet)WorkbenchResourceHelperBase.getResourceSet(proj);
@@ -325,6 +352,23 @@
return webProj;
}
+ private IProject createWebfragmentProject(String projName) throws ExecutionException {
+
+ String webFragmentVersionString = J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.WEBFRAGMENT_3_0_ID);
+ IProjectFacet javaFacet = ProjectFacetsManager.getProjectFacet(IJ2EEFacetConstants.JAVA);
+ IDataModel javaFacetModel = DataModelFactory.createDataModel(new JavaFacetInstallDataModelProvider());
+ javaFacetModel.setProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME, projName);
+ javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_6);
+ javaFacetModel.setProperty(IJavaFacetInstallDataModelProperties.DEFAULT_OUTPUT_FOLDER_NAME,
+ J2EEPlugin.getDefault().getJ2EEPreferences().getString(Keys.DYN_WEB_OUTPUT_FOLDER) );
+ javaFacetModel.getDefaultOperation().execute(new NullProgressMonitor(), null);
+ IProjectFacet webFragmentFacet = ProjectFacetsManager.getProjectFacet(IJ2EEFacetConstants.WEBFRAGMENT);
+ IProjectFacetVersion webFragmentFacetVersion = webFragmentFacet.getVersion(webFragmentVersionString);
+ IDataModel dataModel = WebFragmentProjectCreationOperationTest.getWebFragmentDataModel(projName, null, null, webFragmentFacetVersion, true);
+ dataModel.getDefaultOperation().execute(new NullProgressMonitor(), null);
+ IProject webFragmentProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+ return webFragmentProj;
+ }
private IProject createEjbProject(String projName) throws ExecutionException {
IDataModel dataModel = DataModelFactory.createDataModel(IEjbFacetInstallDataModelProperties.class);
String versionString = J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.EJB_3_1_ID);
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/j2ee/operations/JavaEEFacetConstants.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/j2ee/operations/JavaEEFacetConstants.java
index 3af1726..287f332 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/j2ee/operations/JavaEEFacetConstants.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/j2ee/operations/JavaEEFacetConstants.java
@@ -45,4 +45,7 @@
public static final IProjectFacetVersion JAVA_14 = JAVA_FACET.getVersion("1.4"); //$NON-NLS-1$
public static final IProjectFacetVersion JAVA_5 = JAVA_FACET.getVersion("5.0"); //$NON-NLS-1$
public static final IProjectFacetVersion JAVA_6 = JAVA_FACET.getVersion("6.0"); //$NON-NLS-1$
+
+ public static final IProjectFacet WEBFRAGMENT_FACET = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEBFRAGMENT_MODULE);
+ public static final IProjectFacetVersion WEBFRAGMENT_30 = WEBFRAGMENT_FACET.getVersion("3.0"); //$NON-NLS-1$
}
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/webfragment/operations/WebFragmentProjectCreationOperationTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/webfragment/operations/WebFragmentProjectCreationOperationTest.java
new file mode 100644
index 0000000..44a0950
--- /dev/null
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/webfragment/operations/WebFragmentProjectCreationOperationTest.java
@@ -0,0 +1,219 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wtp.j2ee.headless.tests.webfragment.operations;
+
+import junit.framework.Test;
+
+import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetInstallDataModelProperties;
+import org.eclipse.jst.j2ee.project.facet.IJ2EEModuleFacetInstallDataModelProperties;
+import org.eclipse.jst.j2ee.web.project.facet.IWebFacetInstallDataModelProperties;
+import org.eclipse.jst.j2ee.web.project.facet.WebFragmentFacetInstallDataModelProvider;
+import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
+import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.tests.OperationTestCase;
+import org.eclipse.wst.common.tests.SimpleTestSuite;
+import org.eclipse.wtp.j2ee.headless.tests.j2ee.operations.JavaEEFacetConstants;
+import org.eclipse.wtp.j2ee.headless.tests.j2ee.operations.ModuleProjectCreationOperationTest;
+
+
+public class WebFragmentProjectCreationOperationTest extends ModuleProjectCreationOperationTest {
+
+ public WebFragmentProjectCreationOperationTest() {
+ super("WebProjectCreationOperationTests");
+ }
+
+ public WebFragmentProjectCreationOperationTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ return new SimpleTestSuite(WebFragmentProjectCreationOperationTest.class);
+ }
+
+ public void testWeb30_Defaults() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("badWeb", null, null, JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContentDir() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("madWeb", "madContent", null, JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedJavaSrcDir() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("booWeb", null, "booSrc", JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContentDir_ChangedJavaSrcDir() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("eeWeb", "contentEE", "srcTry", JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_Defaults_WithEAR() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("badWeb", null, null, JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_WithEAR() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("herWeb", null, null, JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContentDir_WithEAR() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("madWeb", "madContent", null, JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedJavaSrcDir_WithEAR() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("booWeb", null, "booSrc", JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_ChangedContentDir_WithEAR() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("pinkWeb", "pinkContent", null, JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_ChangedJavaSrcDir_WithEAR() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("veryfarWeb", null, "verybadSrc", JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContentDir_ChangedJavaSrcDir_WithEAR() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("eeWeb", "contentEE", "srcTry", JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_ChangedContentDir_ChangedJavaSrcDir_WithEAR() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("iiWeb", "iiContDir", "srgII", JavaEEFacetConstants.WEBFRAGMENT_30, false);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_Defaults_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("badWeb", null, null, JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("herWeb", null, null, JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContentDir_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("madWeb", "madContent", null, JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_ChangedContentDir_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("pinkWeb", "tryContent", null, JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_ChangedJavaSrcDir_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("farawayWeb", null, "farSrc", JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContentDir_ChangedJavaSrcDir_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("eeWeb", "contentE", "srcTry", JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_Defaults_WithEAR_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("badWeb", null, null, JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_WithEAR_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("herWeb", null, null, JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContentDir_WithEAR_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("madWeb", "madContent", null, JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedJavaSrcDir_WithEAR_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("booWeb", null, "booSrc", JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_ChangedContentDir_WithEAR_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("pinkWeb", "pinkContent", null, JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_ChangedJavaSrcDir_WithEAR_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("veryfarWeb", null, "verybadSrc", JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContentDir_ChangedJavaSrcDir_WithEAR_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("eeWeb", "contentEE", "srcTry", JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+ public void testWeb30_ChangedContextRoot_ChangedContentDir_ChangedJavaSrcDir_WithEAR_WithDD() throws Exception {
+ IDataModel dm = getWebFragmentDataModel("iiWeb", "iiContDir", "srgII", JavaEEFacetConstants.WEBFRAGMENT_30, true);
+ OperationTestCase.runAndVerify(dm);
+ }
+
+
+ /**
+ * Creates and returns a Web Fragment Data Model with the given name and of the given version.
+ * Can also be used to specify none default context root, content directory, and/or
+ * the java source directory.
+ * If earName is not null then Web will be added to the EAR with earName, and if appropriate
+ * with or without a deployment descriptor.
+ *
+ * @param projName name of the project to create
+ * @param contentDir the content directory to use for this project, use default if NULL
+ * @param javaSrcDir the java source directory to use for this project, use default if NULL
+ * @param version version of Web to use
+ * @param createDD - if true then create DD else don't
+ * @return a Web Fragment Data Model with the appropriate properties set
+ */
+ public static IDataModel getWebFragmentDataModel(String projName, String contentDir, String javaSrcDir, IProjectFacetVersion version, boolean createDD){
+ IDataModel dm = DataModelFactory.createDataModel(new WebFragmentFacetInstallDataModelProvider());
+ dm.setProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME, projName);
+ dm.setProperty(IFacetDataModelProperties.FACET_VERSION, version);
+
+ //if no contentDir provided use default
+ if(contentDir != null) {
+ dm.setStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER, contentDir);
+ }
+
+ //if no javaSrcDir provided use default
+ if(javaSrcDir != null) {
+ dm.setStringProperty(IWebFacetInstallDataModelProperties.SOURCE_FOLDER, javaSrcDir);
+ }
+
+ dm.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, createDD);
+
+/* does the Java version get set correctly?
+ if(version.equals(JavaEEFacetConstants.WEBFRAGMENT_30)) {
+ IDataModel javaFacetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.JAVA);
+ javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_6);
+ }
+ else{
+ IDataModel javaFacetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.JAVA);
+ javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_5);
+ }
+*/
+
+ return dm;
+ }
+}