[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; + } +}