Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrbrooks2009-12-08 19:22:09 +0000
committerrbrooks2009-12-08 19:22:09 +0000
commit19933bcbec1422af07df8bec31e720ec5a5b85d8 (patch)
treea646911f7cb540f91289a0bc46c45aabef09e777 /org.eclipse.osee.framework.branch.management
parentd972143f24be17c7d908f8554e607f30f790abeb (diff)
downloadorg.eclipse.osee-19933bcbec1422af07df8bec31e720ec5a5b85d8.tar.gz
org.eclipse.osee-19933bcbec1422af07df8bec31e720ec5a5b85d8.tar.xz
org.eclipse.osee-19933bcbec1422af07df8bec31e720ec5a5b85d8.zip
Diffstat (limited to 'org.eclipse.osee.framework.branch.management')
-rw-r--r--org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java1
-rw-r--r--org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeIntegrity.java3
-rw-r--r--org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java34
-rw-r--r--org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseExportImportSaxHandler.java8
-rw-r--r--org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java7
-rw-r--r--org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java2
-rw-r--r--org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/RelationalSaxHandler.java40
-rw-r--r--org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/RelationalTypeCheckSaxHandler.java77
-rw-r--r--org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/transform/V0_8_3_BranchRule.java16
9 files changed, 74 insertions, 114 deletions
diff --git a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java
index 8aff910dacb..6d815627ba3 100644
--- a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java
+++ b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java
@@ -42,6 +42,7 @@ public class ExchangeDb {
private static final String BRANCH_ID = "branch_id";
public static final String CONFLICT_ID = "conflict_id";
public static final String CONFLICT_TYPE = "conflict_type";
+ public static final String TYPE_GUID = "type_guid";
private static final String[] BRANCH_ID_NEG_ONE_ALIASES = new String[] {"parent_branch_id"};
diff --git a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeIntegrity.java b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeIntegrity.java
index 7f3d5e7208e..8a00cb29149 100644
--- a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeIntegrity.java
+++ b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeIntegrity.java
@@ -23,6 +23,7 @@ import org.eclipse.osee.framework.branch.management.exchange.handler.IOseeDbExpo
import org.eclipse.osee.framework.branch.management.exchange.handler.ManifestSaxHandler;
import org.eclipse.osee.framework.branch.management.exchange.handler.RelationalSaxHandler;
import org.eclipse.osee.framework.core.enums.ConflictType;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.jdk.core.util.xml.Xml;
@@ -112,7 +113,7 @@ public class ExchangeIntegrity {
private final List<IndexCollector> checkList;
private final String fileBeingProcessed;
- protected CheckSaxHandler(IOseeDbExportDataProvider exportDataProvider, List<IndexCollector> checkList, String fileBeingProcessed) {
+ protected CheckSaxHandler(IOseeDbExportDataProvider exportDataProvider, List<IndexCollector> checkList, String fileBeingProcessed) throws OseeCoreException {
super(exportDataProvider, true, 0);
this.checkList = checkList;
this.fileBeingProcessed = Lib.removeExtension(fileBeingProcessed);
diff --git a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java
index 89515f7effb..d033f15fa6c 100644
--- a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java
+++ b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java
@@ -213,11 +213,7 @@ public final class ImportController {
importBranchesTx.execute();
currentSavePoint = "init.relational.objects";
- RelationalSaxHandler relationalSaxHandler =
- RelationalSaxHandler.createWithLimitedCache(exportDataProvider, 50000);
- relationalSaxHandler.setSelectedBranchIds(branchesToImport);
-
- processImportFiles(manifestHandler.getImportFiles(), relationalSaxHandler);
+ processImportFiles(manifestHandler.getImportFiles());
importBranchesTx.updateBranchParentTransactionId();
@@ -238,20 +234,18 @@ public final class ImportController {
handler.setTranslator(translator);
}
- private void process(BaseDbSaxHandler handler, OseeConnection connection, IExportItem importSourceFile) throws OseeCoreException {
- MetaData metadata = checkMetadata(importSourceFile);
+ private void process(BaseDbSaxHandler handler, OseeConnection connection, IExportItem exportItem) throws OseeCoreException {
+ MetaData metadata = checkMetadata(exportItem);
initializeHandler(connection, handler, metadata);
- if (importSourceFile.getPriority() > 0) {
- boolean cleanDataTable = options.getBoolean(ImportOptions.CLEAN_BEFORE_IMPORT.name());
- cleanDataTable &= !doesSavePointExist(currentSavePoint);
- OseeLog.log(this.getClass(), Level.INFO, String.format("Importing: [%s] %s Meta: %s",
- importSourceFile.getSource(), cleanDataTable ? "clean before import" : "", metadata.getColumnNames()));
- if (cleanDataTable) {
- handler.clearDataTable();
- }
+ boolean cleanDataTable = options.getBoolean(ImportOptions.CLEAN_BEFORE_IMPORT.name());
+ cleanDataTable &= !doesSavePointExist(currentSavePoint);
+ OseeLog.log(this.getClass(), Level.INFO, String.format("Importing: [%s] %s Meta: %s", exportItem.getSource(),
+ cleanDataTable ? "clean before import" : "", metadata.getColumnNames()));
+ if (cleanDataTable) {
+ handler.clearDataTable();
}
try {
- exportDataProvider.saxParse(importSourceFile, handler);
+ exportDataProvider.saxParse(exportItem, handler);
} catch (Exception ex) {
if (ex instanceof OseeCoreException) {
throw (OseeCoreException) ex;
@@ -268,9 +262,13 @@ public final class ImportController {
return metadata;
}
- private void processImportFiles(Collection<IExportItem> importFiles, final RelationalSaxHandler handler) throws Exception {
- for (final IExportItem item : importFiles) {
+ private void processImportFiles(Collection<IExportItem> importItems) throws Exception {
+ final RelationalSaxHandler handler = RelationalSaxHandler.createWithLimitedCache(exportDataProvider, 50000);
+ handler.setSelectedBranchIds(branchesToImport);
+
+ for (final IExportItem item : importItems) {
currentSavePoint = item.getSource();
+ handler.setExportItem(item);
if (!doesSavePointExist(currentSavePoint)) {
DbTransaction importTx = new DbTransaction() {
@Override
diff --git a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseExportImportSaxHandler.java b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseExportImportSaxHandler.java
index 6e5aeade2db..57a3ce5b050 100644
--- a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseExportImportSaxHandler.java
+++ b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseExportImportSaxHandler.java
@@ -87,13 +87,9 @@ public abstract class BaseExportImportSaxHandler extends AbstractSaxHandler {
this.dataMap.put(BINARY_CONTENT_LOCATION, attributes.getValue("location"));
}
- private void finishEntry() {
+ private void finishEntry() throws Exception {
if (this.dataMap.isEmpty() != true) {
- try {
- processData(this.dataMap);
- } catch (Exception ex) {
- throw new IllegalStateException("Processing data - ", ex);
- }
+ processData(this.dataMap);
}
this.dataMap.clear();
}
diff --git a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java
index 683348f40b5..d2a74695f30 100644
--- a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java
+++ b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java
@@ -20,6 +20,7 @@ import java.util.Set;
import org.eclipse.osee.framework.branch.management.ImportOptions;
import org.eclipse.osee.framework.branch.management.exchange.ExchangeDb;
import org.eclipse.osee.framework.core.enums.BranchType;
+import org.eclipse.osee.framework.core.enums.CoreBranches;
import org.eclipse.osee.framework.core.exception.OseeDataStoreException;
import org.eclipse.osee.framework.database.core.ConnectionHandler;
import org.eclipse.osee.framework.database.core.IOseeStatement;
@@ -110,10 +111,16 @@ public class BranchDataSaxHandler extends BaseDbSaxHandler {
public int[] store(boolean writeToDb, int... branchesToImport) throws OseeDataStoreException {
checkSelectedBranches(branchesToImport);
Collection<BranchData> branchesToStore = getSelectedBranchesToImport(branchesToImport);
+
branchesToStore = checkTargetDbBranches(branchesToStore);
int[] toReturn = new int[branchesToStore.size()];
int index = 0;
for (BranchData branchData : branchesToStore) {
+ if (!getOptions().getBoolean(ImportOptions.CLEAN_BEFORE_IMPORT.name()) && branchData.getBranchGuid().equals(
+ CoreBranches.SYSTEM_ROOT.getGuid())) {
+ continue;
+ }
+
toReturn[index] = branchData.getId();
if (getOptions().getBoolean(ImportOptions.ALL_AS_ROOT_BRANCHES.name())) {
branchData.setParentBranchId(1);
diff --git a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java
index 94d346b5d99..dd3a88fa47f 100644
--- a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java
+++ b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java
@@ -146,7 +146,7 @@ public class ManifestSaxHandler extends BaseExportImportSaxHandler {
return false;
}
IExportItem other = (IExportItem) obj;
- return this.priority == other.getPriority() && this.fileName.equals(other.getFileName());
+ return getSource().equals(other.getSource());
}
@Override
diff --git a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/RelationalSaxHandler.java b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/RelationalSaxHandler.java
index c05acb18028..40b6128b4b5 100644
--- a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/RelationalSaxHandler.java
+++ b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/RelationalSaxHandler.java
@@ -22,8 +22,10 @@ import org.eclipse.osee.framework.branch.management.exchange.ExportImportXml;
import org.eclipse.osee.framework.branch.management.exchange.resource.ZipBinaryResource;
import org.eclipse.osee.framework.branch.management.internal.Activator;
import org.eclipse.osee.framework.core.enums.ConflictType;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.exception.OseeDataStoreException;
import org.eclipse.osee.framework.core.exception.OseeStateException;
+import org.eclipse.osee.framework.core.services.IOseeCachingService;
import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLog;
@@ -35,24 +37,23 @@ import org.eclipse.osee.framework.resource.management.Options;
* @author Roberto E. Escobar
*/
public class RelationalSaxHandler extends BaseDbSaxHandler {
+ private final IOseeCachingService service;
- public static RelationalSaxHandler createWithCacheAll(IOseeDbExportDataProvider exportDataProvider) {
- return new RelationalSaxHandler(exportDataProvider, true, 0);
- }
-
- public static RelationalSaxHandler createWithLimitedCache(IOseeDbExportDataProvider exportDataProvider, int cacheLimit) {
+ public static RelationalSaxHandler createWithLimitedCache(IOseeDbExportDataProvider exportDataProvider, int cacheLimit) throws OseeCoreException {
return new RelationalSaxHandler(exportDataProvider, false, cacheLimit);
}
private final List<IResourceLocator> transferredBinaryContent;
private final Set<Integer> branchesToImport;
private final IOseeDbExportDataProvider exportDataProvider;
+ private IExportItem exportItem;
- protected RelationalSaxHandler(IOseeDbExportDataProvider exportDataProvider, boolean isCacheAll, int cacheLimit) {
+ protected RelationalSaxHandler(IOseeDbExportDataProvider exportDataProvider, boolean isCacheAll, int cacheLimit) throws OseeCoreException {
super(isCacheAll, cacheLimit);
this.branchesToImport = new HashSet<Integer>();
this.transferredBinaryContent = new ArrayList<IResourceLocator>();
this.exportDataProvider = exportDataProvider;
+ service = Activator.getInstance().getOseeCachingService();
}
public void setSelectedBranchIds(int... branchIds) {
@@ -77,12 +78,11 @@ public class RelationalSaxHandler extends BaseDbSaxHandler {
String name = uriValue.substring(uriValue.lastIndexOf('\\') + 1, uriValue.length());
IResourceLocator locatorHint =
- Activator.getInstance().getResourceLocatorManager().generateResourceLocator("attr",
- gammaId, name);
+ Activator.getInstance().getResourceLocatorManager().generateResourceLocator("attr", gammaId, name);
IResourceLocator locator =
Activator.getInstance().getResourceManager().save(locatorHint,
- new ZipBinaryResource(entry, locatorHint), new Options());
+ new ZipBinaryResource(entry, locatorHint), new Options());
transferredBinaryContent.add(locator);
return locator.getLocation().toASCIIString();
} else {
@@ -120,6 +120,21 @@ public class RelationalSaxHandler extends BaseDbSaxHandler {
fieldMap.put("value", stringValue);
}
+ if (exportItem.equals(ExportItem.OSEE_ARTIFACT_DATA)) {
+ int typeId = service.getArtifactTypeCache().getByGuid(fieldMap.get(ExchangeDb.TYPE_GUID)).getId();
+ fieldMap.put("art_type_id", String.valueOf(typeId));
+ }
+
+ if (exportItem.equals(ExportItem.OSEE_ATTRIBUTE_DATA)) {
+ int typeId = service.getAttributeTypeCache().getByGuid(fieldMap.get(ExchangeDb.TYPE_GUID)).getId();
+ fieldMap.put("attr_type_id", String.valueOf(typeId));
+ }
+
+ if (exportItem.getSource().equals(ExportItem.OSEE_RELATION_LINK_DATA)) {
+ int typeId = service.getRelationTypeCache().getByGuid(fieldMap.get(ExchangeDb.TYPE_GUID)).getId();
+ fieldMap.put("rel_link_type_id", String.valueOf(typeId));
+ }
+
String conflictId = fieldMap.get(ExchangeDb.CONFLICT_ID);
String conflictType = fieldMap.get(ExchangeDb.CONFLICT_TYPE);
if (Strings.isValid(conflictId) && Strings.isValid(conflictType)) {
@@ -190,4 +205,11 @@ public class RelationalSaxHandler extends BaseDbSaxHandler {
super.clearDataTable();
}
}
+
+ /**
+ * @param exportItem the exportItem to set
+ */
+ public void setExportItem(IExportItem exportItem) {
+ this.exportItem = exportItem;
+ }
}
diff --git a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/RelationalTypeCheckSaxHandler.java b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/RelationalTypeCheckSaxHandler.java
deleted file mode 100644
index ad8dbac3fcf..00000000000
--- a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/RelationalTypeCheckSaxHandler.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Boeing.
- * 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:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.framework.branch.management.exchange.handler;
-
-import java.util.Map;
-import org.eclipse.osee.framework.database.core.ConnectionHandler;
-import org.eclipse.osee.framework.database.core.IOseeStatement;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-
-/**
- * @author Roberto E. Escobar
- */
-public class RelationalTypeCheckSaxHandler extends RelationalSaxHandler {
-
- public static RelationalTypeCheckSaxHandler createWithCacheAll(IOseeDbExportDataProvider exportDataProvider) {
- return new RelationalTypeCheckSaxHandler(exportDataProvider, true, 0);
- }
-
- public static RelationalTypeCheckSaxHandler createWithLimitedCache(IOseeDbExportDataProvider exportDataProvider, int cacheLimit) {
- return new RelationalTypeCheckSaxHandler(exportDataProvider, false, cacheLimit);
- }
-
- private final StringBuffer errorCheck;
-
- private RelationalTypeCheckSaxHandler(IOseeDbExportDataProvider exportDataProvider, boolean isCacheAll, int cacheLimit) {
- super(exportDataProvider, isCacheAll, cacheLimit);
- this.errorCheck = new StringBuffer();
- }
-
- @Override
- protected void processData(Map<String, String> fieldMap) throws Exception {
- String typeField = "art_type_id";
- String nameField = "name";
- String name = fieldMap.get(nameField);
- String typeId = fieldMap.get(typeField);
- if (Strings.isValid(name)) {
- if (!Strings.isValid(typeId)) {
- typeField = "attr_type_id";
- }
- } else {
- typeField = "rel_link_type_id";
- nameField = "type_name";
- }
- name = fieldMap.get(nameField);
- typeId = fieldMap.get(typeField);
- Long original = Strings.isValid(typeId) ? new Long(typeId) : -1;
-
- IOseeStatement chStmt = ConnectionHandler.getStatement(getConnection());
- try {
- chStmt.runPreparedQuery(String.format("select %s from %s where %s = ?", typeField,
- getMetaData().getTableName(), nameField), name);
- if (chStmt.next()) {
- getTranslator().checkIdMapping(typeField, original, chStmt.getLong(chStmt.getColumnName(1)));
- } else {
- this.errorCheck.append(String.format("Type not found in target db. type:[%s] - [%s (%s)]\n", name,
- typeField, typeId));
- }
- } finally {
- chStmt.close();
- }
- }
-
- @Override
- protected void finishData() {
- if (this.errorCheck.length() > 0) {
- throw new IllegalStateException(this.errorCheck.toString());
- }
- }
-}
diff --git a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/transform/V0_8_3_BranchRule.java b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/transform/V0_8_3_BranchRule.java
index 5112cca0391..f4f23ad7b45 100644
--- a/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/transform/V0_8_3_BranchRule.java
+++ b/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/transform/V0_8_3_BranchRule.java
@@ -7,12 +7,14 @@ package org.eclipse.osee.framework.branch.management.exchange.transform;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.eclipse.osee.framework.core.enums.CoreBranches;
import org.eclipse.osee.framework.jdk.core.text.Rule;
import org.eclipse.osee.framework.jdk.core.text.change.ChangeSet;
import org.eclipse.osee.framework.jdk.core.util.GUID;
public class V0_8_3_BranchRule extends Rule {
- private static final Pattern branchPattern = Pattern.compile("<entry ()branch_type");
+ private static final Pattern branchPattern =
+ Pattern.compile("<entry ()branch_type=\"(\\d+)\" .*\\s+<branch_name>(.*?)</branch_name>");
public V0_8_3_BranchRule() {
super(null);
@@ -24,7 +26,17 @@ public class V0_8_3_BranchRule extends Rule {
Matcher branchMatcher = branchPattern.matcher(seq);
while (branchMatcher.find()) {
- changeSet.insertBefore(branchMatcher.end(1), "branch_guid=\"" + GUID.create() + "\" branch_state=\"2\" ");
+ if (branchMatcher.group(2).equals("1")) {
+ changeSet.replace(branchMatcher.start(2), branchMatcher.end(2), '2');
+ }
+
+ String guid = GUID.create();
+ for (CoreBranches branch : CoreBranches.values()) {
+ if (branchMatcher.group(3).equals(branch.getName())) {
+ guid = branch.getGuid();
+ }
+ }
+ changeSet.insertBefore(branchMatcher.end(1), "branch_guid=\"" + guid + "\" branch_state=\"2\" ");
ruleWasApplicable = true;
}

Back to the top