diff options
author | bvosburgh | 2007-10-10 16:25:28 +0000 |
---|---|---|
committer | bvosburgh | 2007-10-10 16:25:28 +0000 |
commit | 4575fe951ae35c03d3b72756563ebcda9a77d656 (patch) | |
tree | 2f6fbf32056c4d0bc7ce4f6f6addfcfef370606a /jpa/tests/org.eclipse.jpt.core.tests | |
parent | ce78078caefe4a478e47e72e8d1fcdd768210ae2 (diff) | |
download | webtools.dali-4575fe951ae35c03d3b72756563ebcda9a77d656.tar.gz webtools.dali-4575fe951ae35c03d3b72756563ebcda9a77d656.tar.xz webtools.dali-4575fe951ae35c03d3b72756563ebcda9a77d656.zip |
[201159] model rework
Diffstat (limited to 'jpa/tests/org.eclipse.jpt.core.tests')
10 files changed, 138 insertions, 202 deletions
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF index 1123842f52..c9ccb4ebfb 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF +++ b/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF @@ -15,6 +15,8 @@ Require-Bundle: org.eclipse.core.resources, org.eclipse.jpt.core.tests.extension.resource, org.eclipse.jpt.utility, org.eclipse.wst.common.emf, + org.eclipse.wst.common.frameworks, + org.eclipse.wst.common.modulecore, org.eclipse.wst.common.project.facet.core, org.junit Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JpaJavaTestCase.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JpaJavaTestCase.java index b2f08d0723..86ce68f602 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JpaJavaTestCase.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JpaJavaTestCase.java @@ -9,6 +9,8 @@ ******************************************************************************/ package org.eclipse.jpt.core.tests.internal.content.java.mappings; +import java.util.Iterator; + import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jdt.core.JavaCore; @@ -40,12 +42,10 @@ public abstract class JpaJavaTestCase extends AnnotationTestCase { } protected JavaPersistentType javaPersistentTypeNamed(String typeName) { - for (IJpaFile jpaFile : this.jpaProject().getJpaProject().jpaFiles(JavaCore.JAVA_SOURCE_CONTENT_TYPE)) { - JpaCompilationUnit cu = (JpaCompilationUnit) jpaFile.getContent(); - for (JavaPersistentType pt : cu.getTypes()) { - if (pt.fullyQualifiedTypeName().equals(typeName)) { - return pt; - } + for (Iterator<JavaPersistentType> stream = this.jpaProject().getJpaProject().javaPersistentTypes(); stream.hasNext(); ) { + JavaPersistentType jpt = stream.next(); + if (jpt.fullyQualifiedTypeName().equals(typeName)) { + return jpt; } } throw new IllegalArgumentException("missing type: " + typeName); diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/ModelInitializationTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/ModelInitializationTests.java index 175b9224fe..10c0829d28 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/ModelInitializationTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/ModelInitializationTests.java @@ -9,10 +9,8 @@ ******************************************************************************/ package org.eclipse.jpt.core.tests.internal.model; -import junit.framework.TestCase; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; -import org.eclipse.jpt.core.internal.IJpaModel; import org.eclipse.jpt.core.internal.IJpaProject; import org.eclipse.jpt.core.internal.JptCorePlugin; import org.eclipse.jpt.core.tests.internal.ProjectUtility; @@ -20,10 +18,10 @@ import org.eclipse.jpt.core.tests.internal.projects.TestFacetedProject; import org.eclipse.jpt.utility.internal.ClassTools; import org.eclipse.jpt.utility.internal.CollectionTools; +import junit.framework.TestCase; + public class ModelInitializationTests extends TestCase { - private IJpaModel jpaModel; - public ModelInitializationTests(String name) { super(name); @@ -33,13 +31,11 @@ public class ModelInitializationTests extends TestCase protected void setUp() throws Exception { super.setUp(); ProjectUtility.deleteAllProjects(); - this.jpaModel = JptCorePlugin.getJpaModel(); } @Override protected void tearDown() throws Exception { ProjectUtility.deleteAllProjects(); - this.jpaModel = null; super.tearDown(); } @@ -61,31 +57,31 @@ public class ModelInitializationTests extends TestCase } public void testBasic() { - assertNotNull(this.jpaModel); + assertNotNull(JptCorePlugin.jpaModel()); } public void testFacetInstallation() throws CoreException { TestFacetedProject testProject = buildTestProject(); - assertNull(this.jpaModel.getJpaProject(testProject.getProject())); + assertNull(JptCorePlugin.jpaProject(testProject.getProject())); testProject.installFacet("jpt.jpa", "1.0"); - assertEquals(1, CollectionTools.size(this.jpaModel.jpaProjects())); - IJpaProject jpaProject = this.jpaModel.getJpaProject(testProject.getProject()); + assertEquals(1, JptCorePlugin.jpaModel().jpaProjectsSize()); + IJpaProject jpaProject = JptCorePlugin.jpaProject(testProject.getProject()); assertNotNull(jpaProject); assertEquals(4, CollectionTools.size(jpaProject.jpaFiles())); - assertNotNull(jpaProject.getJpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity.java")))); - assertNotNull(jpaProject.getJpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity2.java")))); + assertNotNull(jpaProject.jpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity.java")))); + assertNotNull(jpaProject.jpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity2.java")))); } public void testProjectOpening() throws CoreException { - TestFacetedProject testProject = buildTestProject(); - testProject.installFacet("jpt.jpa", "1.0"); - testProject.close(); - assertTrue(! testProject.getProject().isOpen()); - testProject.open(); - IJpaProject jpaProject = this.jpaModel.getJpaProject(testProject.getProject()); + TestFacetedProject helper = buildTestProject(); + helper.installFacet("jpt.jpa", "1.0"); + helper.getProject().close(null); + assertFalse(helper.getProject().isOpen()); + helper.getProject().open(null); + IJpaProject jpaProject = JptCorePlugin.jpaProject(helper.getProject()); assertNotNull(jpaProject); - assertNotNull(jpaProject.getJpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity.java")))); - assertNotNull(jpaProject.getJpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity2.java")))); + assertNotNull(jpaProject.jpaFile(helper.getProject().getFile(new Path("src/test.pkg/TestEntity.java")))); + assertNotNull(jpaProject.jpaFile(helper.getProject().getFile(new Path("src/test.pkg/TestEntity2.java")))); } } diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java index cf908dc2f2..3266cb3693 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java @@ -1,3 +1,12 @@ +/******************************************************************************* + * Copyright (c) 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ package org.eclipse.jpt.core.tests.internal.platform; import java.io.IOException; @@ -52,12 +61,12 @@ public class BaseJpaPlatformTests extends TestCase public void testPersistentTypes() throws CoreException, IOException { IFile persistenceXmlIFile = jpaProject.getProject().getFile(PERSISTENCE_XML_LOCATION); - IJpaFile persistenceXmlJpaFile = jpaProject.getJpaProject().getJpaFile(persistenceXmlIFile); + IJpaFile persistenceXmlJpaFile = jpaProject.getJpaProject().jpaFile(persistenceXmlIFile); PersistenceXmlRootContentNode persistenceRoot = (PersistenceXmlRootContentNode) persistenceXmlJpaFile.getContent(); Persistence persistence = persistenceRoot.getPersistence(); IFile ormXmlIFile = jpaProject.getProject().getFile(ORM_XML_LOCATION); - IJpaFile ormXmlJpaFile = jpaProject.getJpaProject().getJpaFile(ormXmlIFile); + IJpaFile ormXmlJpaFile = jpaProject.getJpaProject().jpaFile(ormXmlIFile); XmlRootContentNode ormRoot = (XmlRootContentNode) ormXmlJpaFile.getContent(); EntityMappingsInternal entityMappings = ormRoot.getEntityMappings(); @@ -66,7 +75,7 @@ public class BaseJpaPlatformTests extends TestCase xmlEntity.setSpecifiedName("XmlEntity"); entityMappings.getTypeMappings().add(xmlEntity); entityMappings.eResource().save(null); - assertEquals(1, CollectionTools.size(jpaProject.getJpaProject().getPlatform().persistentTypes(PROJECT_NAME))); + assertEquals(1, CollectionTools.size(jpaProject.getJpaProject().jpaPlatform().persistentTypes(PROJECT_NAME))); // add java persistent type jpaProject.createType(PACKAGE_NAME, "JavaEntity.java", @@ -77,6 +86,6 @@ public class BaseJpaPlatformTests extends TestCase persistence.getPersistenceUnits().get(0).getClasses().add(javaClassRef); persistence.eResource().save(null); - assertEquals(2, CollectionTools.size(jpaProject.getJpaProject().getPlatform().persistentTypes(PROJECT_NAME))); + assertEquals(2, CollectionTools.size(jpaProject.getJpaProject().jpaPlatform().persistentTypes(PROJECT_NAME))); } } diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformExtensionTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformExtensionTests.java index 1057c85361..e3a0a8e091 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformExtensionTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformExtensionTests.java @@ -1,13 +1,12 @@ /******************************************************************************* - * Copyright (c) 2007 Oracle. - * 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: - * Oracle - initial API and implementation - *******************************************************************************/ + * Copyright (c) 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ package org.eclipse.jpt.core.tests.internal.platform; import junit.framework.TestCase; @@ -23,7 +22,7 @@ import org.eclipse.jpt.utility.internal.CollectionTools; public class JpaPlatformExtensionTests extends TestCase { - public static final String TEST_PLATFORM_ID = TestJpaPlatform.PLATFORM_ID; + public static final String TEST_PLATFORM_ID = TestJpaPlatform.ID; public static final String TEST_PLATFORM_LABEL = "Test Jpa Platform"; public JpaPlatformExtensionTests(String name) { @@ -58,7 +57,7 @@ public class JpaPlatformExtensionTests extends TestCase } public void testAllJpaPlatformIds() { - assertTrue(CollectionTools.size(JpaPlatformRegistry.instance().allJpaPlatformIds()) >= 2); + assertTrue(CollectionTools.size(JpaPlatformRegistry.instance().jpaPlatformIds()) >= 2); } public void testJpaPlatformLabel() { diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformTests.java index c5fb8413e6..312981191c 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformTests.java @@ -1,16 +1,14 @@ /******************************************************************************* - * Copyright (c) 2007 Oracle. - * 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: - * Oracle - initial API and implementation - *******************************************************************************/ + * Copyright (c) 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ package org.eclipse.jpt.core.tests.internal.platform; -import junit.framework.TestCase; import org.eclipse.jpt.core.internal.IJpaPlatform; import org.eclipse.jpt.core.internal.IJpaProject; import org.eclipse.jpt.core.internal.IMappingKeys; @@ -18,8 +16,8 @@ import org.eclipse.jpt.core.internal.content.java.IJavaAttributeMappingProvider; import org.eclipse.jpt.core.internal.content.java.IJavaTypeMappingProvider; import org.eclipse.jpt.core.internal.content.java.mappings.JavaBasicProvider; import org.eclipse.jpt.core.internal.content.java.mappings.JavaEntityProvider; -import org.eclipse.jpt.core.internal.platform.generic.GenericJpaFactory; -import org.eclipse.jpt.core.internal.platform.generic.GenericPlatform; +import org.eclipse.jpt.core.internal.facet.IJpaFacetDataModelProperties; +import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider; import org.eclipse.jpt.core.tests.extension.resource.ExtensionTestPlugin; import org.eclipse.jpt.core.tests.extension.resource.TestAttributeMappingProvider; import org.eclipse.jpt.core.tests.extension.resource.TestJpaFactory; @@ -28,6 +26,10 @@ import org.eclipse.jpt.core.tests.extension.resource.TestTypeMappingProvider; import org.eclipse.jpt.core.tests.internal.ProjectUtility; import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject; import org.eclipse.jpt.core.tests.internal.projects.TestPlatformProject; +import org.eclipse.wst.common.frameworks.datamodel.IDataModel; +import org.eclipse.wst.common.project.facet.core.IActionConfigFactory; + +import junit.framework.TestCase; public class JpaPlatformTests extends TestCase { @@ -39,8 +41,7 @@ public class JpaPlatformTests extends TestCase public static final String TEST_PLUGIN_CLASS = ExtensionTestPlugin.class.getName(); public static final String TEST_PLUGIN_ID = "org.eclipse.jpt.core.tests.extension.resource"; - public static final String TEST_PLATFORM_ID = TestJpaPlatform.PLATFORM_ID; - public static final String TEST_PLATFORM_CLASS = TestJpaPlatform.class.getName(); + public static final String TEST_PLATFORM_CLASS_NAME = TestJpaPlatform.class.getName(); public static final String TEST_PLATFORM_LABEL = "Test Jpa Platform"; public static final String TEST_JPA_FACTORY = TestJpaFactory.class.getName(); public static final String TEST_TYPE_MAPPING_PROVIDER_CLASS = TestTypeMappingProvider.class.getName(); @@ -55,18 +56,25 @@ public class JpaPlatformTests extends TestCase super.setUp(); JpaPlatformExtensionTests.verifyExtensionTestProjectExists(); ProjectUtility.deleteAllProjects(); - testProject = this.buildJpaProject(TestPlatformProject.uniqueProjectName(PROJECT_NAME), false); // false = no auto-build + this.testProject = this.buildJpaProject(TestPlatformProject.uniqueProjectName(PROJECT_NAME), false); // false = no auto-build } protected TestJpaProject buildJpaProject(String projectName, boolean autoBuild) throws Exception { - return new TestJpaProject(projectName, autoBuild); // false = no auto-build + return new TestJpaProject(projectName, autoBuild, this.buildConfig()); + } + + protected IDataModel buildConfig() throws Exception { + IActionConfigFactory configFactory = new JpaFacetDataModelProvider(); + IDataModel config = (IDataModel) configFactory.create(); + config.setProperty(IJpaFacetDataModelProperties.PLATFORM_ID, TestJpaPlatform.ID); + return config; } @Override protected void tearDown() throws Exception { - testProject = null; + this.testProject = null; ProjectUtility.deleteAllProjects(); -// testProject.dispose(); +// this.testProject.dispose(); super.tearDown(); } @@ -74,59 +82,28 @@ public class JpaPlatformTests extends TestCase return this.testProject.getJpaProject(); } - public void testSetPlatform() { - assertTrue(jpaPlatform() instanceof GenericPlatform); - - jpaProject().setPlatform(TEST_PLATFORM_ID); - - assertTrue(jpaPlatform().getClass().getName().equals(TEST_PLATFORM_CLASS)); + protected IJpaPlatform jpaPlatform() { + return this.jpaProject().jpaPlatform(); } - - public void testGetJpaFactory() { - assertTrue(jpaPlatform().getJpaFactory() instanceof GenericJpaFactory); - jpaProject().setPlatform(TEST_PLATFORM_ID); - + + public void testJpaFactory() { assertTrue(jpaPlatform().getJpaFactory().getClass().getName().equals(TEST_JPA_FACTORY)); } public void testJavaTypeMappingProvider() { - IJavaTypeMappingProvider provider = jpaProject().getPlatform().javaTypeMappingProvider(IMappingKeys.ENTITY_TYPE_MAPPING_KEY); - assertTrue(provider instanceof JavaEntityProvider); - - provider = jpaProject().getPlatform().javaTypeMappingProvider("test"); - assertNull(provider); - - jpaProject().setPlatform(TEST_PLATFORM_ID); - - provider = jpaProject().getPlatform().javaTypeMappingProvider(IMappingKeys.ENTITY_TYPE_MAPPING_KEY); + IJavaTypeMappingProvider provider = jpaProject().jpaPlatform().javaTypeMappingProvider(IMappingKeys.ENTITY_TYPE_MAPPING_KEY); assertTrue(provider instanceof JavaEntityProvider); - provider = jpaProject().getPlatform().javaTypeMappingProvider("test"); + provider = jpaProject().jpaPlatform().javaTypeMappingProvider("test"); assertTrue(provider.getClass().getName().equals(TEST_TYPE_MAPPING_PROVIDER_CLASS)); } public void testJavaAttributeMappingProvider() { - IJavaAttributeMappingProvider provider = jpaProject().getPlatform().javaAttributeMappingProvider(IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY); - assertTrue(provider instanceof JavaBasicProvider); - boolean exceptionCaught = false; - try { - provider = jpaProject().getPlatform().javaAttributeMappingProvider("test"); - } - catch (IllegalArgumentException e) { - exceptionCaught = true; - } - assertTrue(exceptionCaught); - - jpaProject().setPlatform(TEST_PLATFORM_ID); - - provider = jpaProject().getPlatform().javaAttributeMappingProvider(IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY); + IJavaAttributeMappingProvider provider = jpaProject().jpaPlatform().javaAttributeMappingProvider(IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY); assertTrue(provider instanceof JavaBasicProvider); - provider = jpaProject().getPlatform().javaAttributeMappingProvider("test"); + provider = jpaProject().jpaPlatform().javaAttributeMappingProvider("test"); assertTrue(provider.getClass().getName().equals(TEST_ATTRIBUTE_MAPPING_PROVIDER_CLASS)); } - private IJpaPlatform jpaPlatform() { - return jpaProject().jpaPlatform(); - } } diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestFacetedProject.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestFacetedProject.java index b3a75778bc..caef8b84b7 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestFacetedProject.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestFacetedProject.java @@ -10,13 +10,17 @@ package org.eclipse.jpt.core.tests.internal.projects; import org.eclipse.core.runtime.CoreException; +import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.common.project.facet.core.IFacetedProject; import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager; -public class TestFacetedProject extends TestPlatformProject -{ - private IFacetedProject facetedProject; +/** + * This builds and holds a "faceted" project. + * Support for installing facets. + */ +public class TestFacetedProject extends TestPlatformProject { + private final IFacetedProject facetedProject; // ********** builders ***************************** @@ -50,8 +54,16 @@ public class TestFacetedProject extends TestPlatformProject } public void installFacet(String facetName, String versionName) throws CoreException { + this.installFacet(facetName, versionName, null); + } + + /** + * if 'config' is null, the JPA project will be built with the defaults + * defined in JpaFacetDataModelProvider#getDefaultProperty(String) + */ + public void installFacet(String facetName, String versionName, IDataModel config) throws CoreException { IProjectFacetVersion facetVersion = ProjectFacetsManager.getProjectFacet(facetName).getVersion(versionName); - this.facetedProject.installProjectFacet(facetVersion, null, null); + this.facetedProject.installProjectFacet(facetVersion, config, null); } } diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJavaProject.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJavaProject.java index 03529be885..fb4b7cb044 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJavaProject.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJavaProject.java @@ -13,27 +13,24 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.core.search.IJavaSearchConstants; -import org.eclipse.jdt.core.search.SearchEngine; -import org.eclipse.jdt.core.search.SearchPattern; -import org.eclipse.jdt.core.search.TypeNameRequestor; import org.eclipse.jpt.utility.internal.CollectionTools; /** * This builds and holds a "Java" project. * Support for adding packages and types. + * + * "Java" projects aren't required to be "faceted" projects, but for JPA + * testing they are. */ -public class TestJavaProject extends TestFacetedProject -{ - private IJavaProject javaProject; - private IPackageFragmentRoot sourceFolder; +public class TestJavaProject extends TestFacetedProject { + private final IJavaProject javaProject; + private final IPackageFragmentRoot sourceFolder; // ********** builders ***************************** @@ -106,31 +103,6 @@ public class TestJavaProject extends TestFacetedProject return this.javaProject.findType(fullyQualifiedName); } - @Override - public void dispose() throws CoreException { - this.waitForIndexer(); - this.sourceFolder = null; - this.javaProject = null; - super.dispose(); - } - - - // ********** internal methods ********** - - private void waitForIndexer() throws JavaModelException { - new SearchEngine().searchAllTypeNames( - null, - SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE, - null, - SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE, - IJavaSearchConstants.CLASS, - SearchEngine.createJavaSearchScope(new IJavaElement[0]), - new TypeNameRequestor() {/* do nothing */}, - IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, - null - ); - } - // ********** member classes ********** diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJpaProject.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJpaProject.java index b5e33a14a9..30af1c30fa 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJpaProject.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJpaProject.java @@ -12,34 +12,45 @@ package org.eclipse.jpt.core.tests.internal.projects; import org.eclipse.core.runtime.CoreException; import org.eclipse.jpt.core.internal.IJpaProject; import org.eclipse.jpt.core.internal.JptCorePlugin; +import org.eclipse.wst.common.frameworks.datamodel.IDataModel; -public class TestJpaProject extends TestJavaProject -{ - private IJpaProject jpaProject; +/** + * This builds and holds a "JPA" project. + * Support for adding packages and types. + * + * The JPA project's settings (platform, database connection, etc.) can be + * controlled by building a data model and passing it into the constructor. + */ +public class TestJpaProject extends TestJavaProject { + private final IJpaProject jpaProject; public static final String JAR_NAME_SYSTEM_PROPERTY = "org.eclipse.jpt.jpa.jar"; - - - // ********** builders ***************************** - + + + // ********** builders ********** + public static TestJpaProject buildJpaProject(String baseProjectName, boolean autoBuild) throws CoreException { return new TestJpaProject(uniqueProjectName(baseProjectName), autoBuild); } - - + + // ********** constructors/initialization ********** public TestJpaProject(String projectName) throws CoreException { this(projectName, false); } - + public TestJpaProject(String projectName, boolean autoBuild) throws CoreException { + this(projectName, autoBuild, null); + } + + public TestJpaProject(String projectName, boolean autoBuild, IDataModel jpaConfig) throws CoreException { super(projectName, autoBuild); this.installFacet("jst.utility", "1.0"); - this.installFacet("jpt.jpa", "1.0"); + this.installFacet("jpt.jpa", "1.0", jpaConfig); this.addJar(this.jarName()); - this.jpaProject = JptCorePlugin.getJpaProject(this.getProject()); + this.jpaProject = JptCorePlugin.jpaProject(this.getProject()); } protected String jarName() { @@ -57,10 +68,4 @@ public class TestJpaProject extends TestJavaProject return this.jpaProject; } - @Override - public void dispose() throws CoreException { - this.jpaProject = null; - super.dispose(); - } - } diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestPlatformProject.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestPlatformProject.java index b162971ead..bf228e3e88 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestPlatformProject.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestPlatformProject.java @@ -11,6 +11,7 @@ package org.eclipse.jpt.core.tests.internal.projects; import java.io.ByteArrayInputStream; import java.io.InputStream; + import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; @@ -21,23 +22,20 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jpt.utility.internal.CollectionTools; /** - * This builds and holds a "general" project. + * This builds and holds a "general" Eclipse project. * Support for adding natures, folders, and files. */ -public class TestPlatformProject -{ +public class TestPlatformProject { + private final IProject project; + /** carriage return */ public static final String CR = System.getProperty("line.separator"); + - - private final IProject project; - - - // ********** builders ***************************** + // ********** builders ********** public static TestPlatformProject buildPlatformProject(String baseProjectName, boolean autoBuild) throws CoreException { @@ -54,7 +52,7 @@ public class TestPlatformProject public TestPlatformProject(String projectName, boolean autoBuild) throws CoreException { super(); this.setAutoBuild(autoBuild); // workspace-wide setting - this.project = this.createPlatformProject(projectName); + this.project = this.buildPlatformProject(projectName); } private void setAutoBuild(boolean autoBuild) throws CoreException { @@ -63,7 +61,7 @@ public class TestPlatformProject ResourcesPlugin.getWorkspace().setDescription(description); } - private IProject createPlatformProject(String projectName) throws CoreException { + private IProject buildPlatformProject(String projectName) throws CoreException { IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); p.create(null); p.open(null); @@ -127,7 +125,7 @@ public class TestPlatformProject public IFile createFile(IContainer container, String fileName, String content) throws CoreException { return createFile(container, new Path(fileName), content); } - + /** * Create a file in the project with the specified [relative] path * and content. @@ -147,8 +145,8 @@ public class TestPlatformProject * Create a file in the specified container with the specified path and contents. */ public IFile createFile(IContainer container, IPath filePath, InputStream content) throws CoreException { - int len = filePath.segmentCount() - 1; - for (int i = 0; i < len; i++) { + int pathCount = filePath.segmentCount() - 1; + for (int i = 0; i < pathCount; i++) { container = container.getFolder(new Path(filePath.segment(i))); if ( ! container.exists()) { ((IFolder) container).create(true, true, null); // true = "force"; true = "local" @@ -163,38 +161,4 @@ public class TestPlatformProject return file; } - public void open() throws CoreException { - this.project.open(null); - waitForJobs(); - } - - public void close() throws CoreException { - this.project.close(null); - waitForJobs(); - } - - public void dispose() throws CoreException { - this.project.delete(true, true, null); // true = "delete content"; true = "force" - for (int i = 1; this.project.exists(); i++) { - waitForJobs(); - System.out.println("Project still exists: " + i); - } - } - - - // ********** static methods ********** - - /** - * Wait until all background tasks are complete. - */ - public static void waitForJobs() { - while (Job.getJobManager().currentJob() != null) { - try { - Thread.sleep(100); // let other threads get something done - } catch (InterruptedException ex) { - throw new RuntimeException(ex); - } - } - } - } |