Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrescobar2011-08-31 23:34:52 +0000
committerRyan D. Brooks2011-08-31 23:34:52 +0000
commit573b960ba7333f1cdb26a3f70db533a5081538db (patch)
treeba8ee5da9c2161fd9010afa9b995c7ac68ef746b
parent27f67513af695f9ef1147cb137cecfe355f4c8b2 (diff)
downloadorg.eclipse.osee-573b960ba7333f1cdb26a3f70db533a5081538db.tar.gz
org.eclipse.osee-573b960ba7333f1cdb26a3f70db533a5081538db.tar.xz
org.eclipse.osee-573b960ba7333f1cdb26a3f70db533a5081538db.zip
feature[ats_M1Y56]: Update branch exchange for type changes
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java2
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportController.java27
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportImportXml.java1
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java31
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractDbExportItem.java2
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractExportItem.java29
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractXmlExportItem.java49
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/DbTableExportItem.java21
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/ManifestExportItem.java2
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/MetadataExportItem.java2
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/OseeTypeModelExportItem.java43
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java61
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java33
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/DbTableSaxHandler.java4
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ExportItem.java4
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ImportOseeModelHandler.java62
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java11
17 files changed, 279 insertions, 105 deletions
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java
index b251beb98ca..8fe21e77658 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExchangeDb.java
@@ -20,6 +20,7 @@ import org.eclipse.osee.framework.branch.management.exchange.export.AbstractExpo
import org.eclipse.osee.framework.branch.management.exchange.export.DbTableExportItem;
import org.eclipse.osee.framework.branch.management.exchange.export.ManifestExportItem;
import org.eclipse.osee.framework.branch.management.exchange.export.MetadataExportItem;
+import org.eclipse.osee.framework.branch.management.exchange.export.OseeTypeModelExportItem;
import org.eclipse.osee.framework.branch.management.exchange.handler.ExportItem;
import org.eclipse.osee.framework.core.exception.OseeArgumentException;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
@@ -136,6 +137,7 @@ public final class ExchangeDb {
List<AbstractExportItem> items = new ArrayList<AbstractExportItem>();
items.add(new ManifestExportItem(items));
items.add(new MetadataExportItem(items, services.getDatabaseService().getConnection().getMetaData()));
+ items.add(new OseeTypeModelExportItem(services.getModelingService()));
items.add(new DbTableExportItem(services, ExportItem.OSEE_BRANCH_DATA, BRANCH_TABLE_QUERY));
items.add(new DbTableExportItem(services, ExportItem.OSEE_TX_DETAILS_DATA, TX_DETAILS_TABLE_QUERY));
items.add(new DbTableExportItem(services, ExportItem.OSEE_TXS_DATA, TXS_TABLE_QUERY));
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportController.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportController.java
index 007ebc3171f..5bae8dc2512 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportController.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportController.java
@@ -11,7 +11,6 @@
package org.eclipse.osee.framework.branch.management.exchange;
import java.io.File;
-import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -20,7 +19,6 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.logging.Level;
-import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.osee.framework.branch.management.ExportOptions;
import org.eclipse.osee.framework.branch.management.IExchangeTaskListener;
import org.eclipse.osee.framework.branch.management.exchange.export.AbstractDbExportItem;
@@ -136,12 +134,10 @@ final class ExportController implements IExchangeTaskListener {
String zipTargetName = getExchangeFileName() + ZIP_EXTENSION;
if (this.options.getBoolean(ExportOptions.COMPRESS.name())) {
- OseeLog.logf(this.getClass(), Level.INFO,
- "Compressing Branch Export Data - [%s]", zipTargetName);
+ OseeLog.logf(this.getClass(), Level.INFO, "Compressing Branch Export Data - [%s]", zipTargetName);
File zipTarget = new File(tempFolder.getParent(), zipTargetName);
Lib.compressDirectory(tempFolder, zipTarget.getAbsolutePath(), true);
- OseeLog.logf(this.getClass(), Level.INFO,
- "Deleting Branch Export Temp Folder - [%s]", tempFolder);
+ OseeLog.logf(this.getClass(), Level.INFO, "Deleting Branch Export Temp Folder - [%s]", tempFolder);
Lib.deleteDir(tempFolder);
} else {
File target = new File(tempFolder.getParent(), getExchangeFileName());
@@ -157,11 +153,8 @@ final class ExportController implements IExchangeTaskListener {
} finally {
cleanUp(taskList);
}
- OseeLog.logf(
- this.getClass(),
- Level.INFO,
- "Exported [%s] branch%s in [%s]", branchIds.size(), branchIds.size() != 1 ? "es" : "",
- Lib.getElapseString(startTime));
+ OseeLog.logf(this.getClass(), Level.INFO, "Exported [%s] branch%s in [%s]", branchIds.size(),
+ branchIds.size() != 1 ? "es" : "", Lib.getElapseString(startTime));
}
private void sendTasksToExecutor(List<AbstractExportItem> taskList, final File exportFolder) throws InterruptedException, ExecutionException, OseeCoreException {
@@ -170,18 +163,6 @@ final class ExportController implements IExchangeTaskListener {
futures.add(this.executorService.submit(exportItem));
}
- futures.add(this.executorService.submit(new Runnable() {
- @Override
- public void run() {
- try {
- oseeServices.getModelingService().exportOseeTypes(new NullProgressMonitor(),
- new FileOutputStream(new File(exportFolder, "OseeModel.osee")));
- } catch (Exception ex) {
- onException("model export", ex);
- }
- }
- }));
-
for (Future<?> future : futures) {
future.get();
if (!this.errorList.isEmpty()) {
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportImportXml.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportImportXml.java
index fa6a96d78a8..c3619fcca06 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportImportXml.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ExportImportXml.java
@@ -49,6 +49,7 @@ public class ExportImportXml {
public static final String ART_TYPE_ID = "art_type_id";
public static final String REL_TYPE_ID = "rel_link_type_id";
public static final String ATTR_TYPE_ID = "attr_type_id";
+ public static final String TYPE_MODEL = "osee_type_model";
private ExportImportXml() {
}
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java
index 69b17cb6fe5..2a7a57ab43f 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/ImportController.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.osee.framework.branch.management.exchange;
+import java.net.URI;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collection;
@@ -25,6 +26,7 @@ import org.eclipse.osee.framework.branch.management.exchange.handler.BranchDataS
import org.eclipse.osee.framework.branch.management.exchange.handler.DbTableSaxHandler;
import org.eclipse.osee.framework.branch.management.exchange.handler.ExportItem;
import org.eclipse.osee.framework.branch.management.exchange.handler.IExportItem;
+import org.eclipse.osee.framework.branch.management.exchange.handler.ImportOseeModelHandler;
import org.eclipse.osee.framework.branch.management.exchange.handler.ManifestSaxHandler;
import org.eclipse.osee.framework.branch.management.exchange.handler.MetaData;
import org.eclipse.osee.framework.branch.management.exchange.handler.MetaDataSaxHandler;
@@ -38,7 +40,7 @@ import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.exception.OseeExceptions;
import org.eclipse.osee.framework.core.exception.OseeStateException;
import org.eclipse.osee.framework.core.operation.OperationLogger;
-import org.eclipse.osee.framework.database.core.ConnectionHandler;
+import org.eclipse.osee.framework.core.operation.Operations;
import org.eclipse.osee.framework.database.core.DbTransaction;
import org.eclipse.osee.framework.database.core.IOseeStatement;
import org.eclipse.osee.framework.database.core.OseeConnection;
@@ -150,6 +152,11 @@ public final class ImportController {
setup();
+ URI modelUri = exportDataProvider.getFile(manifestHandler.getTypeModel()).toURI();
+ ImportOseeModelHandler modelHandler =
+ new ImportOseeModelHandler(oseeServices.getModelingService(), logger, modelUri);
+ Operations.executeWorkAndCheckStatus(modelHandler);
+
ImportBranchesTx importBranchesTx = new ImportBranchesTx();
importBranchesTx.execute();
@@ -171,16 +178,15 @@ public final class ImportController {
}
}
- private void initializeHandler(OseeConnection connection, BaseDbSaxHandler handler, MetaData metadata) {
- handler.setConnection(connection);
+ private void initializeHandler(BaseDbSaxHandler handler, MetaData metadata) {
handler.setMetaData(metadata);
handler.setOptions(options);
handler.setTranslator(translator);
}
- private void process(BaseDbSaxHandler handler, OseeConnection connection, IExportItem exportItem) throws OseeCoreException {
+ private void process(BaseDbSaxHandler handler, IExportItem exportItem) throws OseeCoreException {
MetaData metadata = checkMetadata(exportItem);
- initializeHandler(connection, handler, metadata);
+ initializeHandler(handler, metadata);
boolean cleanDataTable = options.getBoolean(ImportOptions.CLEAN_BEFORE_IMPORT.name());
cleanDataTable &= !doesSavePointExist(currentSavePoint);
OseeLog.logf(this.getClass(), Level.INFO, "Importing: [%s] %s Meta: %s", exportItem.getSource(),
@@ -216,7 +222,7 @@ public final class ImportController {
currentSavePoint = item.getSource();
handler.setExportItem(item);
if (!doesSavePointExist(currentSavePoint)) {
- process(handler, ConnectionHandler.getConnection(), item);
+ process(handler, item);
handler.store();
handler.reset();
addSavePoint(currentSavePoint);
@@ -294,17 +300,24 @@ public final class ImportController {
protected void handleTxWork(OseeConnection connection) throws OseeCoreException {
// Import Branches
currentSavePoint = manifestHandler.getBranchFile().getSource();
- process(branchHandler, connection, manifestHandler.getBranchFile());
+ branchHandler.setConnection(connection);
+ process(branchHandler, manifestHandler.getBranchFile());
if (!doesSavePointExist(currentSavePoint)) {
- branchesStored = branchHandler.store(true, branchesToImport);
+ branchesStored = branchHandler.store(connection, true, branchesToImport);
addSavePoint(currentSavePoint);
} else {
// This step has already been performed - only get branches needed for remaining operations
OseeLog.logf(this.getClass(), Level.INFO, "Save point found for: [%s] - skipping", currentSavePoint);
- branchesStored = branchHandler.store(false, branchesToImport);
+ branchesStored = branchHandler.store(connection, false, branchesToImport);
}
}
+
+ @Override
+ protected void handleTxFinally() throws OseeCoreException {
+ super.handleTxFinally();
+ branchHandler.setConnection(null);
+ }
}
private final class CommitImportSavePointsTx extends DbTransaction {
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractDbExportItem.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractDbExportItem.java
index a034c664908..15833b074aa 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractDbExportItem.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractDbExportItem.java
@@ -15,7 +15,7 @@ import org.eclipse.osee.framework.branch.management.exchange.handler.ExportItem;
/**
* @author Roberto E. Escobar
*/
-public abstract class AbstractDbExportItem extends AbstractExportItem {
+public abstract class AbstractDbExportItem extends AbstractXmlExportItem {
private int joinQueryId;
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractExportItem.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractExportItem.java
index 2d7c6367941..be8de7080d6 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractExportItem.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractExportItem.java
@@ -11,14 +11,10 @@
package org.eclipse.osee.framework.branch.management.exchange.export;
import java.io.File;
-import java.io.IOException;
-import java.io.Writer;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.osee.framework.branch.management.IExchangeTaskListener;
-import org.eclipse.osee.framework.branch.management.exchange.ExchangeUtil;
-import org.eclipse.osee.framework.branch.management.exchange.ExportImportXml;
import org.eclipse.osee.framework.branch.management.exchange.handler.ExportItem;
import org.eclipse.osee.framework.jdk.core.type.PropertyStore;
@@ -36,7 +32,7 @@ public abstract class AbstractExportItem implements Runnable {
public AbstractExportItem(ExportItem id) {
this.id = id;
- this.fileName = id.toString() + ExportImportXml.XML_EXTENSION;
+ this.fileName = id.getFileName();
this.options = null;
this.cancel = false;
this.exportListeners = Collections.synchronizedSet(new HashSet<IExchangeTaskListener>());
@@ -101,28 +97,13 @@ public abstract class AbstractExportItem implements Runnable {
@Override
public final void run() {
long startTime = System.currentTimeMillis();
- Writer writer = null;
try {
- writer = ExchangeUtil.createXmlWriter(getWriteLocation(), getFileName(), getBufferSize());
- ExportImportXml.openXmlNode(writer, ExportImportXml.DATA);
- if (isCancel() != true) {
- try {
- doWork(writer);
- } catch (Exception ex) {
- notifyOnExportException(ex);
- }
+ if (!isCancel()) {
+ executeWork();
}
- ExportImportXml.closeXmlNode(writer, ExportImportXml.DATA);
- } catch (IOException ex) {
+ } catch (Exception ex) {
notifyOnExportException(ex);
} finally {
- if (writer != null) {
- try {
- writer.close();
- } catch (IOException ex) {
- notifyOnExportException(ex);
- }
- }
notifyOnExportItemCompleted(System.currentTimeMillis() - startTime);
}
}
@@ -139,7 +120,7 @@ public abstract class AbstractExportItem implements Runnable {
}
}
- protected abstract void doWork(Appendable appendable) throws Exception;
+ protected abstract void executeWork() throws Exception;
public void setCancel(boolean cancel) {
this.cancel = cancel;
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractXmlExportItem.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractXmlExportItem.java
new file mode 100644
index 00000000000..82a9ca8ae80
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/AbstractXmlExportItem.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * 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.export;
+
+import java.io.Writer;
+import org.eclipse.osee.framework.branch.management.exchange.ExchangeUtil;
+import org.eclipse.osee.framework.branch.management.exchange.ExportImportXml;
+import org.eclipse.osee.framework.branch.management.exchange.handler.ExportItem;
+import org.eclipse.osee.framework.jdk.core.util.Lib;
+
+/**
+ * @author Roberto E. Escobar
+ */
+public abstract class AbstractXmlExportItem extends AbstractExportItem {
+
+ public AbstractXmlExportItem(ExportItem id) {
+ super(id);
+ }
+
+ @Override
+ public final void executeWork() throws Exception {
+ Writer writer = null;
+ try {
+ writer = ExchangeUtil.createXmlWriter(getWriteLocation(), getFileName(), getBufferSize());
+ ExportImportXml.openXmlNode(writer, ExportImportXml.DATA);
+ if (!isCancel()) {
+ try {
+ doWork(writer);
+ } catch (Exception ex) {
+ notifyOnExportException(ex);
+ }
+ }
+ ExportImportXml.closeXmlNode(writer, ExportImportXml.DATA);
+ } finally {
+ Lib.close(writer);
+ }
+ }
+
+ protected abstract void doWork(Appendable appendable) throws Exception;
+
+}
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/DbTableExportItem.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/DbTableExportItem.java
index fe23ae9707f..d243d5735b7 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/DbTableExportItem.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/DbTableExportItem.java
@@ -24,7 +24,9 @@ import org.eclipse.osee.framework.branch.management.exchange.OseeServices;
import org.eclipse.osee.framework.branch.management.exchange.handler.ExportItem;
import org.eclipse.osee.framework.branch.management.internal.Activator;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.model.AbstractOseeType;
import org.eclipse.osee.framework.core.model.cache.AbstractOseeCache;
+import org.eclipse.osee.framework.core.util.HexUtil;
import org.eclipse.osee.framework.database.core.IOseeStatement;
import org.eclipse.osee.framework.jdk.core.type.Pair;
import org.eclipse.osee.framework.jdk.core.type.PropertyStore;
@@ -195,10 +197,21 @@ public class DbTableExportItem extends AbstractDbExportItem {
}
}
- private void handleTypeId(Appendable appendable, Object value, AbstractOseeCache<?, ?> cache) throws IOException, OseeCoreException {
- int typeId = (Integer) value;
- String guid = String.valueOf(cache.getById(typeId).getGuid());
- ExportImportXml.addXmlAttribute(appendable, ExportImportXml.TYPE_GUID, guid);
+ private void handleTypeId(Appendable appendable, Object value, AbstractOseeCache<Long, ? extends AbstractOseeType<Long>> cache) throws IOException, OseeCoreException {
+ int typeId = -1;
+ if (value instanceof Short) {
+ Short xShort = (Short) value;
+ typeId = xShort.intValue();
+ } else if (value instanceof Integer) {
+ typeId = (Integer) value;
+ } else if (value instanceof Long) {
+ typeId = ((Long) value).intValue();
+ } else {
+ throw new OseeCoreException("Undefined Type [%s]", value != null ? value.getClass().getSimpleName() : value);
+ }
+ AbstractOseeType<Long> type = cache.getById(typeId);
+ String uuid = HexUtil.toString(type.getGuid());
+ ExportImportXml.addXmlAttribute(appendable, ExportImportXml.TYPE_GUID, uuid);
}
private void handleStringContent(Appendable appendable, Object value, String tag) throws IOException {
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/ManifestExportItem.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/ManifestExportItem.java
index 1f229bc9554..232edd59315 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/ManifestExportItem.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/ManifestExportItem.java
@@ -22,7 +22,7 @@ import org.eclipse.osee.framework.database.core.OseeInfo;
/**
* @author Roberto E. Escobar
*/
-public class ManifestExportItem extends AbstractExportItem {
+public class ManifestExportItem extends AbstractXmlExportItem {
private final List<AbstractExportItem> exportItems;
public ManifestExportItem(List<AbstractExportItem> exportItems) {
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/MetadataExportItem.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/MetadataExportItem.java
index 05afbdec800..8bf0967f23b 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/MetadataExportItem.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/MetadataExportItem.java
@@ -27,7 +27,7 @@ import org.eclipse.osee.framework.jdk.core.util.Strings;
/**
* @author Roberto E. Escobar
*/
-public class MetadataExportItem extends AbstractDbExportItem {
+public class MetadataExportItem extends AbstractXmlExportItem {
private final List<AbstractExportItem> exportItems;
private final DatabaseMetaData metaData;
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/OseeTypeModelExportItem.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/OseeTypeModelExportItem.java
new file mode 100644
index 00000000000..8ac4d724a9a
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/export/OseeTypeModelExportItem.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * 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.export;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.osee.framework.branch.management.exchange.handler.ExportItem;
+import org.eclipse.osee.framework.core.message.IOseeModelingService;
+import org.eclipse.osee.framework.jdk.core.util.Lib;
+
+/**
+ * @author Roberto E. Escobar
+ */
+public class OseeTypeModelExportItem extends AbstractExportItem {
+ private final IOseeModelingService modelingService;
+
+ public OseeTypeModelExportItem(IOseeModelingService modelingService) {
+ super(ExportItem.EXPORT_TYPE_MODEL);
+ this.modelingService = modelingService;
+ }
+
+ @Override
+ protected void executeWork() throws Exception {
+ File outputFile = new File(getWriteLocation(), getFileName());
+ OutputStream outputStream = null;
+ try {
+ outputStream = new FileOutputStream(outputFile);
+ modelingService.exportOseeTypes(new NullProgressMonitor(), outputStream);
+ } finally {
+ Lib.close(outputStream);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java
index a5bb6443b17..1e852259892 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java
@@ -21,8 +21,9 @@ import org.eclipse.osee.framework.branch.management.internal.Activator;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.database.IOseeDatabaseService;
import org.eclipse.osee.framework.database.core.OseeConnection;
-import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.jdk.core.type.PropertyStore;
+import org.eclipse.osee.framework.jdk.core.util.Lib;
+import org.eclipse.osee.framework.logging.OseeLog;
/**
* @author Roberto E. Escobar
@@ -33,7 +34,6 @@ public abstract class BaseDbSaxHandler extends BaseExportImportSaxHandler {
private final int cacheLimit;
private final boolean isCacheAll;
- private OseeConnection connection;
private MetaData metadata;
private TranslationManager translator;
private PropertyStore options;
@@ -49,7 +49,6 @@ public abstract class BaseDbSaxHandler extends BaseExportImportSaxHandler {
this.options = new PropertyStore();
this.translator = null;
this.metadata = null;
- this.connection = null;
this.isCacheAll = isCacheAll;
this.cacheLimit = cacheLimit;
this.data = new ArrayList<Object[]>();
@@ -69,18 +68,10 @@ public abstract class BaseDbSaxHandler extends BaseExportImportSaxHandler {
this.metadata = metadata;
}
- public void setConnection(OseeConnection connection) {
- this.connection = connection;
- }
-
public void setTranslator(TranslationManager translator) {
this.translator = translator;
}
- protected OseeConnection getConnection() {
- return this.connection;
- }
-
protected MetaData getMetaData() {
return this.metadata;
}
@@ -97,7 +88,11 @@ public abstract class BaseDbSaxHandler extends BaseExportImportSaxHandler {
this.data.add(objects);
}
- protected void store(OseeConnection connection) throws OseeCoreException {
+ public void store() throws OseeCoreException {
+ store(null);
+ }
+
+ public void store(OseeConnection connection) throws OseeCoreException {
if (!data.isEmpty()) {
getDatabaseService().runBatchUpdate(connection, getMetaData().getQuery(), data);
data.clear();
@@ -106,27 +101,32 @@ public abstract class BaseDbSaxHandler extends BaseExportImportSaxHandler {
private boolean isTruncateSupported() throws OseeCoreException {
boolean isTruncateSupported = false;
- DatabaseMetaData metaData = connection.getMetaData();
- ResultSet resultSet = null;
+ OseeConnection connection = service.getConnection();
try {
- resultSet = metaData.getTablePrivileges(null, null, getMetaData().getTableName().toUpperCase());
- while (resultSet.next()) {
- String value = resultSet.getString("PRIVILEGE");
- if ("TRUNCATE".equalsIgnoreCase(value)) {
- isTruncateSupported = true;
- break;
+ DatabaseMetaData metaData = connection.getMetaData();
+ ResultSet resultSet = null;
+ try {
+ resultSet = metaData.getTablePrivileges(null, null, getMetaData().getTableName().toUpperCase());
+ while (resultSet.next()) {
+ String value = resultSet.getString("PRIVILEGE");
+ if ("TRUNCATE".equalsIgnoreCase(value)) {
+ isTruncateSupported = true;
+ break;
+ }
}
- }
- } catch (SQLException ex1) {
- OseeLog.log(Activator.class, Level.INFO, ex1);
- } finally {
- if (resultSet != null) {
- try {
- resultSet.close();
- } catch (SQLException ex) {
- // Do Nothing
+ } catch (SQLException ex1) {
+ OseeLog.log(Activator.class, Level.INFO, ex1);
+ } finally {
+ if (resultSet != null) {
+ try {
+ resultSet.close();
+ } catch (SQLException ex) {
+ // Do Nothing
+ }
}
}
+ } finally {
+ Lib.close(connection);
}
return isTruncateSupported;
}
@@ -135,7 +135,7 @@ public abstract class BaseDbSaxHandler extends BaseExportImportSaxHandler {
String cmd = isTruncateSupported() ? "TRUNCATE TABLE" : "DELETE FROM";
String deleteSql = String.format("%s %s", cmd, getMetaData().getTableName());
try {
- getDatabaseService().runPreparedUpdate(connection, deleteSql);
+ getDatabaseService().runPreparedUpdate(deleteSql);
} catch (OseeCoreException ex) {
OseeLog.logf(Activator.class, Level.INFO, ex, "Error clearing: %s", deleteSql);
throw ex;
@@ -147,7 +147,6 @@ public abstract class BaseDbSaxHandler extends BaseExportImportSaxHandler {
}
public void reset() {
- this.connection = null;
this.translator = null;
this.options = null;
this.metadata = null;
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java
index 1dd925cd9eb..f502af752a5 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BranchDataSaxHandler.java
@@ -28,6 +28,7 @@ import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.exception.OseeDataStoreException;
import org.eclipse.osee.framework.database.IOseeDatabaseService;
import org.eclipse.osee.framework.database.core.IOseeStatement;
+import org.eclipse.osee.framework.database.core.OseeConnection;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLog;
@@ -37,6 +38,7 @@ import org.eclipse.osee.framework.logging.OseeLog;
public class BranchDataSaxHandler extends BaseDbSaxHandler {
private final Map<Integer, BranchData> idToImportFileBranchData;
+ private OseeConnection connection;
public static BranchDataSaxHandler createWithCacheAll(IOseeDatabaseService service) {
return new BranchDataSaxHandler(service, true, 0);
@@ -49,6 +51,7 @@ public class BranchDataSaxHandler extends BaseDbSaxHandler {
private BranchDataSaxHandler(IOseeDatabaseService service, boolean isCacheAll, int cacheLimit) {
super(service, isCacheAll, cacheLimit);
this.idToImportFileBranchData = new HashMap<Integer, BranchData>();
+ this.connection = null;
}
@Override
@@ -113,11 +116,11 @@ public class BranchDataSaxHandler extends BaseDbSaxHandler {
}
}
- public int[] store(boolean writeToDb, int... branchesToImport) throws OseeCoreException {
+ public int[] store(OseeConnection connection, boolean writeToDb, int... branchesToImport) throws OseeCoreException {
checkSelectedBranches(branchesToImport);
Collection<BranchData> branchesToStore = getSelectedBranchesToImport(branchesToImport);
- branchesToStore = checkTargetDbBranches(branchesToStore);
+ branchesToStore = checkTargetDbBranches(connection, branchesToStore);
int[] toReturn = new int[branchesToStore.size()];
int index = 0;
for (BranchData branchData : branchesToStore) {
@@ -143,7 +146,7 @@ public class BranchDataSaxHandler extends BaseDbSaxHandler {
index++;
}
if (writeToDb) {
- super.store(getConnection());
+ super.store(connection);
}
return toReturn;
}
@@ -184,13 +187,13 @@ public class BranchDataSaxHandler extends BaseDbSaxHandler {
return newValue.intValue();
}
- private Collection<BranchData> checkTargetDbBranches(Collection<BranchData> selectedBranches) throws OseeCoreException {
+ private Collection<BranchData> checkTargetDbBranches(OseeConnection connection, Collection<BranchData> selectedBranches) throws OseeCoreException {
Map<String, BranchData> guidToImportFileBranchData = new HashMap<String, BranchData>();
for (BranchData data : selectedBranches) {
guidToImportFileBranchData.put(data.getBranchGuid(), data);
}
- IOseeStatement chStmt = getDatabaseService().getStatement(getConnection());
+ IOseeStatement chStmt = getDatabaseService().getStatement(connection);
try {
chStmt.runPreparedQuery("select * from osee_branch");
while (chStmt.next()) {
@@ -216,4 +219,24 @@ public class BranchDataSaxHandler extends BaseDbSaxHandler {
String.format("DELETE FROM %s where NOT branch_type = " + BranchType.SYSTEM_ROOT.getValue(),
getMetaData().getTableName()));
}
+
+ public void setConnection(OseeConnection connection) {
+ this.connection = connection;
+ }
+
+ public OseeConnection getConnection() {
+ return connection;
+ }
+
+ @Override
+ public void reset() {
+ super.reset();
+ setConnection(null);
+ }
+
+ @Override
+ public void store() throws OseeCoreException {
+ super.store(getConnection());
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/DbTableSaxHandler.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/DbTableSaxHandler.java
index c8a1378fdbb..8b5df418ca5 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/DbTableSaxHandler.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/DbTableSaxHandler.java
@@ -70,10 +70,6 @@ public class DbTableSaxHandler extends BaseDbSaxHandler {
}
}
- public void store() throws OseeCoreException {
- super.store(this.getConnection());
- }
-
private String importBinaryContent(String uriValue, String gammaId) throws OseeCoreException {
String relativePath = Lib.isWindows() ? uriValue : uriValue.replaceAll("\\\\", File.separator);
String entrySearch = ExportImportXml.RESOURCE_FOLDER_NAME + File.separator + relativePath;
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ExportItem.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ExportItem.java
index ac7b07f45f5..fce7acf9dcf 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ExportItem.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ExportItem.java
@@ -15,6 +15,7 @@ package org.eclipse.osee.framework.branch.management.exchange.handler;
*/
public enum ExportItem implements IExportItem {
EXPORT_MANIFEST(""),
+ EXPORT_TYPE_MODEL("osee_type_model"),
EXPORT_DB_SCHEMA("db.metadata"),
OSEE_BRANCH_DATA("osee_branch"),
OSEE_TX_DETAILS_DATA("osee_tx_details"),
@@ -41,7 +42,8 @@ public enum ExportItem implements IExportItem {
@Override
public String getFileName() {
- return this + ".xml";
+ String extension = this != EXPORT_TYPE_MODEL ? ".xml" : ".osee";
+ return this + extension;
}
@Override
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ImportOseeModelHandler.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ImportOseeModelHandler.java
new file mode 100644
index 00000000000..f82997b012f
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ImportOseeModelHandler.java
@@ -0,0 +1,62 @@
+/*
+ * Created on Aug 31, 2011
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.framework.branch.management.exchange.handler;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URL;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.osee.framework.branch.management.internal.Activator;
+import org.eclipse.osee.framework.core.message.IOseeModelingService;
+import org.eclipse.osee.framework.core.message.OseeImportModelRequest;
+import org.eclipse.osee.framework.core.message.OseeImportModelResponse;
+import org.eclipse.osee.framework.core.operation.AbstractOperation;
+import org.eclipse.osee.framework.core.operation.OperationLogger;
+import org.eclipse.osee.framework.jdk.core.util.Lib;
+
+public class ImportOseeModelHandler extends AbstractOperation {
+
+ private final IOseeModelingService modelingService;
+ private final URI model;
+
+ public ImportOseeModelHandler(IOseeModelingService modelingService, OperationLogger logger, URI model) {
+ super("Import Exchange Type Model", Activator.PLUGIN_ID, logger);
+ this.modelingService = modelingService;
+ this.model = model;
+ }
+
+ private String getModel(URL url) throws IOException {
+ InputStream inputStream = null;
+ try {
+ inputStream = new BufferedInputStream(url.openStream());
+ return Lib.inputStreamToString(inputStream);
+ } finally {
+ Lib.close(inputStream);
+ }
+ }
+
+ private String getName(URI uri) {
+ String name = uri.toASCIIString();
+ int index = name.lastIndexOf("/");
+ if (index > 0) {
+ name = name.substring(index + 1, name.length());
+ }
+ return name;
+ }
+
+ @Override
+ protected void doWork(IProgressMonitor monitor) throws Exception {
+ OseeImportModelRequest modelRequest =
+ new OseeImportModelRequest(getName(model), getModel(model.toURL()), false, false, true);
+ OseeImportModelResponse response = new OseeImportModelResponse();
+
+ logf("Updating Type Model with [%s]", model);
+ modelingService.importOseeTypes(monitor, true, modelRequest, response);
+ log("Type Model Import complete");
+ }
+}
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java
index b66bb2ca9cc..47ee72f07dd 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/ManifestSaxHandler.java
@@ -27,6 +27,7 @@ import org.xml.sax.SAXException;
public class ManifestSaxHandler extends BaseExportImportSaxHandler {
private final List<IExportItem> filesToImport;
+ private String typeModelFile;
private String metadataFile;
private IExportItem branchFile;
private String sourceDatabaseId;
@@ -36,6 +37,7 @@ public class ManifestSaxHandler extends BaseExportImportSaxHandler {
public ManifestSaxHandler() {
super();
this.filesToImport = new ArrayList<IExportItem>();
+ this.typeModelFile = null;
this.metadataFile = null;
this.branchFile = null;
this.sourceExportDate = null;
@@ -59,7 +61,9 @@ public class ManifestSaxHandler extends BaseExportImportSaxHandler {
String source = fieldMap.get(ExportImportXml.SOURCE);
if (Strings.isValid(fileName) && Strings.isValid(source)) {
- if (source.equals(ExportImportXml.DB_SCHEMA)) {
+ if (source.equals(ExportImportXml.TYPE_MODEL)) {
+ typeModelFile = fileName;
+ } else if (source.equals(ExportImportXml.DB_SCHEMA)) {
this.metadataFile = fileName;
} else {
ImportFile importFile = new ImportFile(fileName, source, priority);
@@ -103,6 +107,10 @@ public class ManifestSaxHandler extends BaseExportImportSaxHandler {
return filesToImport;
}
+ public String getTypeModel() {
+ return typeModelFile;
+ }
+
public class ImportFile implements IExportItem {
private final String fileName;
private final String source;
@@ -151,4 +159,5 @@ public class ManifestSaxHandler extends BaseExportImportSaxHandler {
return String.format("ImportFile [fileName=%s, source=%s, priority=%d]", fileName, source, priority);
}
}
+
} \ No newline at end of file

Back to the top