[350474] Cannot create JPA Diagram because Eclipse try to puts XML file in the wrong folder
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/util/ModelIntegrationUtil.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/util/ModelIntegrationUtil.java
index c38d3ba..2196274 100644
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/util/ModelIntegrationUtil.java
+++ b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/util/ModelIntegrationUtil.java
@@ -25,7 +25,6 @@
import java.util.WeakHashMap;
import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileInfo;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.filesystem.IFileSystem;
import org.eclipse.core.resources.IContainer;
@@ -133,7 +132,7 @@
return null;
}
- private static IPath copyExistingXMIContentAndDeleteFile(IProject project,
+ public static IPath copyExistingXMIContentAndDeleteFile(IProject project,
String diagramName, IFileStore newXMIFile) throws JavaModelException, CoreException {
String xmiFileName = diagramName + "." + DIAGRAM_FILE_EXTENSION; //$NON-NLS-1$
IPath folderPath = copyExistingXMIContent(project, xmiFileName, newXMIFile);
@@ -141,11 +140,6 @@
return folderPath;
IPath projectPath = project.getFullPath();
folderPath = projectPath.append(getDiagramsXMLFolderPath(project));
- IFileStore xmlFileStore = EFS.getLocalFileSystem().getStore(folderPath.append(diagramName).addFileExtension(DIAGRAM_XML_FILE_EXTENSION));
- IFileInfo info = xmlFileStore.fetchInfo();
- if(!info.exists()){
- xmlFileStore.mkdir(EFS.NONE, null);
- }
return folderPath;
}
diff --git a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/META-INF/MANIFEST.MF b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/META-INF/MANIFEST.MF
index fb4ef4d..b8464c9 100644
--- a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/META-INF/MANIFEST.MF
+++ b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/META-INF/MANIFEST.MF
@@ -25,7 +25,8 @@
org.eclipse.wst.common.frameworks;bundle-version="[1.2.0,2.0.0)",
org.eclipse.wst.common.modulecore;bundle-version="[1.2.1,2.0.0)",
org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
- org.junit4;bundle-version="[4.8.1,5.0.0)"
+ org.junit4;bundle-version="[4.8.1,5.0.0)",
+ org.eclipse.core.filesystem;bundle-version="1.3.100"
Export-Package: org.eclipse.jpt.jpadiagrameditor.ui.tests.internal;x-internal:=true,
org.eclipse.jpt.jpadiagrameditor.ui.tests.internal.editor;x-internal:=true,
org.eclipse.jpt.jpadiagrameditor.ui.tests.internal.feature;x-internal:=true,
diff --git a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/src/org/eclipse/jpt/jpadiagrameditor/ui/tests/internal/modelintegration/util/ModelIntegrationUtilTest.java b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/src/org/eclipse/jpt/jpadiagrameditor/ui/tests/internal/modelintegration/util/ModelIntegrationUtilTest.java
index 692bbd5..4d947ab 100644
--- a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/src/org/eclipse/jpt/jpadiagrameditor/ui/tests/internal/modelintegration/util/ModelIntegrationUtilTest.java
+++ b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/src/org/eclipse/jpt/jpadiagrameditor/ui/tests/internal/modelintegration/util/ModelIntegrationUtilTest.java
@@ -24,8 +24,17 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.util.BasicInternalEList;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jpt.jpa.core.JpaProject;
+import org.eclipse.jpt.jpa.core.JptJpaCorePlugin;
+import org.eclipse.jpt.jpadiagrameditor.ui.internal.JPADiagramEditorPlugin;
import org.eclipse.jpt.jpadiagrameditor.ui.internal.modelintegration.util.ModelIntegrationUtil;
+import org.eclipse.jpt.jpadiagrameditor.ui.internal.preferences.JPAEditorPreferenceInitializer;
+import org.eclipse.jpt.jpadiagrameditor.ui.tests.internal.JPACreateFactory;
import org.junit.Test;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleListener;
@SuppressWarnings("unchecked")
@@ -55,5 +64,28 @@
assertNotNull(p);
assertEquals(2, p.segmentCount());
assertEquals(p.segment(0), "src");
- }
+ }
+
+ @Test
+ public void copyExistingXMIContentAndDeleteFileTest() throws Exception {
+ Bundle b = EasyMock.createMock(Bundle.class);
+ BundleContext bc = EasyMock.createMock(BundleContext.class);
+ EasyMock.expect(bc.getBundle()).andStubReturn(b);
+ EasyMock.expect(b.getSymbolicName()).andStubReturn("jpa_editor");
+ bc.addBundleListener(EasyMock.isA(BundleListener.class));
+ EasyMock.replay(bc, b);
+
+ JPADiagramEditorPlugin p = new JPADiagramEditorPlugin();
+ p.start(bc);
+ JptJpaCorePlugin.getJpaProjectManager();
+
+ IPreferenceStore store = JPADiagramEditorPlugin.getDefault().getPreferenceStore();
+ store.putValue(JPAEditorPreferenceInitializer.PROPERTY_DIAGRAM_FOLDER, "diagrams");
+ store.getString(JPAEditorPreferenceInitializer.PROPERTY_DIAGRAM_FOLDER);
+
+ JPACreateFactory factory = JPACreateFactory.instance();
+ JpaProject jpaProject = factory.createJPAProject("Test_" + System.currentTimeMillis());
+ assertNotNull(jpaProject);
+ ModelIntegrationUtil.copyExistingXMIContentAndDeleteFile(jpaProject.getProject(), "diagram_name", null);
+ }
}