wlu: lib migration code
diff --git a/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/migration/MappingUtil.java b/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/migration/MappingUtil.java
index 30ba260..0f8e41f 100755
--- a/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/migration/MappingUtil.java
+++ b/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/migration/MappingUtil.java
@@ -58,8 +58,10 @@
}
}
+ private final static boolean localDebug = false;
private static Map migrators;
private static Set oldNsUris = new HashSet();
+ private static Map<String, String> adjustedLibNsURIMap = new HashMap<String,String>();
public static final IMigrator getMigrator(String libNsURI) {
if (migrators == null) {
@@ -120,6 +122,7 @@
VersionUtil.VersionCheckInfo info) {
String currentNsURI = PersistenceUtil.getUMANsURI();
String libNsURI = PersistenceUtil.getUMANsURI(libPath);
+ libNsURI = getAdjustedLibNsURI(libNsURI, info);
if (oldNsUris.contains(libNsURI)) {
return true;
@@ -134,21 +137,38 @@
return ret;
}
- private static String getAdjustedLibNsURI(String libNsURI) {
+ //This is an ugly piece, but we need it for migrating EPF 1.1.0
+ private static String getAdjustedLibNsURI(String libNsURI, VersionUtil.VersionCheckInfo info) {
+ String ret = getAdjustedLibNsURI_(libNsURI, info);
+ if (ret != libNsURI) {
+ if (localDebug) {
+ System.out.println("LD> libNsURI: " + libNsURI); //$NON-NLS-1$
+ System.out.println("LD> adjustedLibNsURI: " + ret); //$NON-NLS-1$
+ }
+ adjustedLibNsURIMap.put(libNsURI, ret);
+ }
+ return ret;
+ }
+ private static String getAdjustedLibNsURI_(String libNsURI, VersionUtil.VersionCheckInfo info) {
String currentNsURI = PersistenceUtil.getUMANsURI();
if (! currentNsURI.equals(libNsURI)) {
return libNsURI;
} else if (! libNsURI.equals("http://www.eclipse.org/epf/uma/1.0.4/uma.ecore")) { //$NON-NLS-1$
return libNsURI;
}
- EPFVersions epfVersions = VersionUtil.getVersions(EPFVersions.TOOL_ID);
-
+ if (info.toolVersion.equals(info.currentMinToolVersion)) {
+ return libNsURI;
+ }
return "http://www.eclipse.org/epf/uma/1.0.3/uma.ecore"; //$NON-NLS-1$
}
public static void migrate(String libPath, IProgressMonitor monitor, UpgradeCallerInfo info)
throws Exception {
String nsURI = PersistenceUtil.getUMANsURI(libPath);
+ String adjustedLibNsURI = adjustedLibNsURIMap.get(nsURI);
+ if (adjustedLibNsURI != null) {
+ nsURI = adjustedLibNsURI;
+ }
IMigrator migrator = getMigrator(nsURI);
if (migrator != null) {
migrator.migrate(libPath, monitor, info);