diff options
author | kmoore | 2008-07-09 20:39:12 +0000 |
---|---|---|
committer | kmoore | 2008-07-09 20:39:12 +0000 |
commit | 66b852243723a556b20debdbb6131490581d8210 (patch) | |
tree | 9aa679afa031762ca83e3853c57fe94d12503e6c | |
parent | 095aad6e2671f04242bb2052428bbada9abf1fbd (diff) | |
download | webtools.dali-66b852243723a556b20debdbb6131490581d8210.tar.gz webtools.dali-66b852243723a556b20debdbb6131490581d8210.tar.xz webtools.dali-66b852243723a556b20debdbb6131490581d8210.zip |
235619 - removing persistence unit from persistence.xml, structure views not updated correctly
2 files changed, 32 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java index 3c3a0be534..9aa1a83e05 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java @@ -86,6 +86,7 @@ public class GenericPersistence extends AbstractPersistenceJpaContextNode throw new IllegalArgumentException(new Integer(index).toString()); } PersistenceUnit oldPersistenceUnit = persistenceUnit; + persistenceUnit.dispose(); persistenceUnit = null; xmlPersistence.getPersistenceUnits().remove(index); fireItemRemoved(PERSISTENCE_UNITS_LIST, index, oldPersistenceUnit); @@ -97,6 +98,7 @@ public class GenericPersistence extends AbstractPersistenceJpaContextNode } protected void removePersistenceUnit_(PersistenceUnit oldPersistenceUnit) { + persistenceUnit.dispose(); persistenceUnit = null; fireItemRemoved(PERSISTENCE_UNITS_LIST, 0, oldPersistenceUnit); } diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java index da8d498435..745987618b 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java @@ -290,6 +290,36 @@ public class JpaFileTests extends ContextModelTestCase assertEquals(persistenceUnit().impliedClassRefs().next(), javaJpaFile.rootStructureNodes().next().getParent()); } + public void testJavaRootStructureNodesPersistenceUnitRemovedFromResourceModel() throws Exception { + OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); + + ICompilationUnit cu = createTestEntity(); + JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource()); + + JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType(); + assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next()); + + persistenceResource().getPersistence().getPersistenceUnits().remove(0); + + assertFalse(javaJpaFile.rootStructureNodes().hasNext()); + assertEquals(0, javaJpaFile.rootStructureNodesSize()); + } + + public void testJavaRootStructureNodesPersistenceUnitRemoved() throws Exception { + OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); + + ICompilationUnit cu = createTestEntity(); + JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource()); + + JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType(); + assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next()); + + jpaProject().getRootContext().getPersistenceXml().getPersistence().removePersistenceUnit(0); + + assertFalse(javaJpaFile.rootStructureNodes().hasNext()); + assertEquals(0, javaJpaFile.rootStructureNodesSize()); + } + public void testJavaRootStructureNodesOrmPersistentTypeRemoved() throws Exception { OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); |