diff --git a/org.eclipse.osee.client.ote.feature/feature.xml b/org.eclipse.osee.client.ote.feature/feature.xml
index cd58a81..07f7d06 100644
--- a/org.eclipse.osee.client.ote.feature/feature.xml
+++ b/org.eclipse.osee.client.ote.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.osee.client.ote.feature"
       label="%featureName"
-      version="0.26.0.qualifier"
+      version="1.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -58,12 +58,9 @@
       <import plugin="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base" version="2.9.2" match="greaterOrEqual"/>
       <import plugin="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" version="2.9.2" match="greaterOrEqual"/>
       <import plugin="com.sun.xml.fastinfoset"/>
-      <import feature="org.eclipse.osee.client.all.feature"/>
-      <import feature="org.eclipse.osee.client.feature"/>
       <import feature="org.eclipse.osee.core.feature"/>
       <import feature="org.eclipse.osee.core.runtime.feature"/>
       <import feature="org.eclipse.osee.core.ui.feature"/>
-      <import feature="org.eclipse.osee.framework.ui.feature"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.osee.client.ote.feature/pom.xml b/org.eclipse.osee.client.ote.feature/pom.xml
index d612a3a..54084b0 100644
--- a/org.eclipse.osee.client.ote.feature/pom.xml
+++ b/org.eclipse.osee.client.ote.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.framework.ui.workspacebundleloader/META-INF/MANIFEST.MF b/org.eclipse.osee.framework.ui.workspacebundleloader/META-INF/MANIFEST.MF
index 204f2e6..fc13102 100644
--- a/org.eclipse.osee.framework.ui.workspacebundleloader/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.framework.ui.workspacebundleloader/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Workspacebundlelodaer Plug-in
 Bundle-SymbolicName: org.eclipse.osee.framework.ui.workspacebundleloader;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.framework.ui.workspacebundleloader.internal.Activator
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osee.framework.ui.workspacebundleloader/pom.xml b/org.eclipse.osee.framework.ui.workspacebundleloader/pom.xml
index 9e41dd9..05196ee 100644
--- a/org.eclipse.osee.framework.ui.workspacebundleloader/pom.xml
+++ b/org.eclipse.osee.framework.ui.workspacebundleloader/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.logback.config/META-INF/MANIFEST.MF b/org.eclipse.osee.logback.config/META-INF/MANIFEST.MF
index ac3da3e..133e276 100644
--- a/org.eclipse.osee.logback.config/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.logback.config/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE Logback Config (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.logback.config
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Fragment-Host: ch.qos.logback.classic;bundle-version="0.9.27"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osee.logback.config/pom.xml b/org.eclipse.osee.logback.config/pom.xml
index ae02583..cf6352c 100644
--- a/org.eclipse.osee.logback.config/pom.xml
+++ b/org.eclipse.osee.logback.config/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.x.server.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../../plugins/org.eclipse.osee.x.server.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.logger.slf4j/META-INF/MANIFEST.MF b/org.eclipse.osee.logger.slf4j/META-INF/MANIFEST.MF
index b7a40b9..c47c57b 100644
--- a/org.eclipse.osee.logger.slf4j/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.logger.slf4j/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Osee Logger Slf4j (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.logger.slf4j
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Import-Package: org.eclipse.osee.framework.jdk.core.util,
  org.eclipse.osee.logger,
  org.osgi.framework,
diff --git a/org.eclipse.osee.logger.slf4j/pom.xml b/org.eclipse.osee.logger.slf4j/pom.xml
index 6e79535..10dad9d 100644
--- a/org.eclipse.osee.logger.slf4j/pom.xml
+++ b/org.eclipse.osee.logger.slf4j/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.x.core.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../../plugins/org.eclipse.osee.x.core.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.logger/META-INF/MANIFEST.MF b/org.eclipse.osee.logger/META-INF/MANIFEST.MF
index 35943ce..0029c6c 100644
--- a/org.eclipse.osee.logger/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.logger/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Osee Logger (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.logger
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.osee.logger
diff --git a/org.eclipse.osee.logger/pom.xml b/org.eclipse.osee.logger/pom.xml
index 36c2d5f..cf00f46 100644
--- a/org.eclipse.osee.logger/pom.xml
+++ b/org.eclipse.osee.logger/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.x.core.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../../plugins/org.eclipse.osee.x.core.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.client.msg/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.client.msg/META-INF/MANIFEST.MF
index ab7abaa..1985815 100644
--- a/org.eclipse.osee.ote.client.msg/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.client.msg/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Msg Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.client.msg;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.client.msg.core.internal.Activator
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.osee.framework.logging,
diff --git a/org.eclipse.osee.ote.client.msg/pom.xml b/org.eclipse.osee.ote.client.msg/pom.xml
index 7561d11..fdc83e5 100644
--- a/org.eclipse.osee.ote.client.msg/pom.xml
+++ b/org.eclipse.osee.ote.client.msg/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.client/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.client/META-INF/MANIFEST.MF
index 4822bb5..6d4fb16 100644
--- a/org.eclipse.osee.ote.client/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.client/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Service (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.client;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.service.Activator
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osee.ote.client/pom.xml b/org.eclipse.osee.ote.client/pom.xml
index 8b5736b..32175a9 100644
--- a/org.eclipse.osee.ote.client/pom.xml
+++ b/org.eclipse.osee.ote.client/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.connection.jini/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.connection.jini/META-INF/MANIFEST.MF
index a495225..df62c6f 100644
--- a/org.eclipse.osee.ote.connection.jini/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.connection.jini/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: JINI Connector provider (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.connection.jini;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.connection.jini.Activator
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Require-Bundle: org.eclipse.core.runtime,
diff --git a/org.eclipse.osee.ote.connection.jini/pom.xml b/org.eclipse.osee.ote.connection.jini/pom.xml
index 4698b95..316423a 100644
--- a/org.eclipse.osee.ote.connection.jini/pom.xml
+++ b/org.eclipse.osee.ote.connection.jini/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 	
diff --git a/org.eclipse.osee.ote.connection.service.test/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.connection.service.test/META-INF/MANIFEST.MF
index 9d61c00..4a90320 100644
--- a/org.eclipse.osee.ote.connection.service.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.connection.service.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.connection.service.test;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.connection.service.test.Activator
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osee.ote.connection.service.test/pom.xml b/org.eclipse.osee.ote.connection.service.test/pom.xml
index 0ccebc1..c6e8c0a 100644
--- a/org.eclipse.osee.ote.connection.service.test/pom.xml
+++ b/org.eclipse.osee.ote.connection.service.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.connection.service/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.connection.service/META-INF/MANIFEST.MF
index 7fb08b9..c2fb633 100644
--- a/org.eclipse.osee.ote.connection.service/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.connection.service/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Service Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.connection.service;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.connection.service.internal.Activator
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osee.ote.connection.service/pom.xml b/org.eclipse.osee.ote.connection.service/pom.xml
index 7a5ecb4..96221ef 100644
--- a/org.eclipse.osee.ote.connection.service/pom.xml
+++ b/org.eclipse.osee.ote.connection.service/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.container/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.container/META-INF/MANIFEST.MF
index 3ebc8ee..e99a0d8 100644
--- a/org.eclipse.osee.ote.container/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.container/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Classpath Container
 Bundle-SymbolicName: org.eclipse.osee.ote.container;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.container.OteContainerActivator
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
diff --git a/org.eclipse.osee.ote.container/pom.xml b/org.eclipse.osee.ote.container/pom.xml
index 8f76fb6..5681b52 100644
--- a/org.eclipse.osee.ote.container/pom.xml
+++ b/org.eclipse.osee.ote.container/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.core.test/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.core.test/META-INF/MANIFEST.MF
index 2c5e0d1..f8561d0 100644
--- a/org.eclipse.osee.ote.core.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.core.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Core Test (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.core.test
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Fragment-Host: org.eclipse.osee.ote.core
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osee.ote.core.test/pom.xml b/org.eclipse.osee.ote.core.test/pom.xml
index 665b2ab..52252a9 100644
--- a/org.eclipse.osee.ote.core.test/pom.xml
+++ b/org.eclipse.osee.ote.core.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.core/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.core/META-INF/MANIFEST.MF
index 7985420..dde0d9a 100644
--- a/org.eclipse.osee.ote.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE Test Core Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.core;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Export-Package: org.eclipse.osee.ote,
  org.eclipse.osee.ote.classserver,
diff --git a/org.eclipse.osee.ote.core/pom.xml b/org.eclipse.osee.ote.core/pom.xml
index 542400d..7e458b4 100644
--- a/org.eclipse.osee.ote.core/pom.xml
+++ b/org.eclipse.osee.ote.core/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/TestCase.java b/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/TestCase.java
index 45c9bd2..97581fc 100644
--- a/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/TestCase.java
+++ b/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/TestCase.java
@@ -13,16 +13,18 @@
 
 package org.eclipse.osee.ote.core;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 import java.util.logging.Level;
+
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
+
 import org.eclipse.osee.framework.jdk.core.persistence.Xmlizable;
 import org.eclipse.osee.framework.jdk.core.persistence.XmlizableStream;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
 import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp;
 import org.eclipse.osee.framework.jdk.core.util.xml.XMLStreamWriterUtil;
 import org.eclipse.osee.framework.logging.OseeLog;
@@ -44,6 +46,8 @@
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 /**
  * TestCase is the abstract base class for all test cases. This class provides the interfaces necessary for a TestCase
  * to be part of a {@link org.eclipse.osee.ote.core.TestScript TestScript}.
@@ -127,11 +131,14 @@
    }
 
    /**
-    * Called by baseDoTestCase(). This is implemented by the tester's in each test case in the test script.
+    * Called by baseDoTestCase(). This is implemented by the tester's in each test case in the test
+    * script.
     *
     * @param environment The Test environment.
+    * @param logger
+    * @throws InterruptedException
     */
-   public abstract void doTestCase(ITestEnvironmentAccessor environment, ITestLogger logger);
+   public abstract void doTestCase(ITestEnvironmentAccessor environment, ITestLogger logger) throws InterruptedException;
 
    public Element getTastCaseNumberXml(Document doc) {
       return Jaxp.createElement(doc, "Number", String.valueOf(number));
@@ -299,7 +306,11 @@
       environment.getTestScript().setTestCase(this);
       OseeLog.logf(TestEnvironment.class, OteLevel.TEST_EVENT, "Starting Test Case %s.%s",
          this.getTestScript().getClass().getSimpleName(), this.getClass().getSimpleName());
-      doTestCase(environment, environment.getLogger());
+      try {
+         doTestCase(environment, environment.getLogger());
+      } catch (InterruptedException e) {
+         OseeCoreException.wrapAndThrow(e);
+      }
    }
 
    @Override
diff --git a/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/framework/saxparse/OteSaxHandler.java b/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/framework/saxparse/OteSaxHandler.java
index f67ea90..863452a 100644
--- a/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/framework/saxparse/OteSaxHandler.java
+++ b/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/framework/saxparse/OteSaxHandler.java
@@ -35,6 +35,7 @@
 import org.eclipse.osee.ote.core.framework.saxparse.elements.GroupName;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.Info;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.InfoGroup;
+import org.eclipse.osee.ote.core.framework.saxparse.elements.IsInteractive;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.Location;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.Message;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.MethodArguments;
@@ -43,8 +44,6 @@
 import org.eclipse.osee.ote.core.framework.saxparse.elements.Notes;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.NumberOfTransmissions;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.ObjectName;
-import org.eclipse.osee.ote.core.framework.saxparse.elements.UutErrorEntry;
-import org.eclipse.osee.ote.core.framework.saxparse.elements.UutLoggingInfo;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.OteLog;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.PropertyElementHandler;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.PropertyStoreElementHandler;
@@ -77,6 +76,8 @@
 import org.eclipse.osee.ote.core.framework.saxparse.elements.TraceEnd;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.Type;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.User;
+import org.eclipse.osee.ote.core.framework.saxparse.elements.UutErrorEntry;
+import org.eclipse.osee.ote.core.framework.saxparse.elements.UutLoggingInfo;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.Value;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.Version;
 import org.eclipse.osee.ote.core.framework.saxparse.elements.VersionInformation;
@@ -114,6 +115,7 @@
       addHandlers(new GroupName());
       addHandlers(new Info());
       addHandlers(new InfoGroup());
+      addHandlers(new IsInteractive());
       addHandlers(new Location());
       addHandlers(new Message());
       addHandlers(new MethodArguments());
diff --git a/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/framework/saxparse/elements/IsInteractive.java b/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/framework/saxparse/elements/IsInteractive.java
new file mode 100644
index 0000000..20e4188
--- /dev/null
+++ b/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/core/framework/saxparse/elements/IsInteractive.java
@@ -0,0 +1,33 @@
+/*********************************************************************
+ * Copyright (c) 2022 Boeing
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Boeing - initial API and implementation
+ **********************************************************************/
+
+package org.eclipse.osee.ote.core.framework.saxparse.elements;
+
+import org.eclipse.osee.ote.core.framework.saxparse.ElementHandlers;
+import org.xml.sax.Attributes;
+
+/**
+ * @author Michael P. Masterson
+ */
+public class IsInteractive extends ElementHandlers {
+
+   public IsInteractive() {
+      super("isInteractive");
+   }
+
+   @Override
+   public Object createStartElementFoundObject(String uri, String localName, String name, Attributes attributes) {
+      return null;
+   }
+
+}
diff --git a/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/message/elements/IntegerElement.java b/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/message/elements/IntegerElement.java
index 4ef8246..625e7f2 100644
--- a/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/message/elements/IntegerElement.java
+++ b/org.eclipse.osee.ote.core/src/org/eclipse/osee/ote/message/elements/IntegerElement.java
@@ -22,7 +22,6 @@
 /**
  * @author Ryan D. Brooks
  * @author Andrew M. Finkbeiner
- * @deprecated Please use {@link UnsignedInteger32Element} instead
  */
 public class IntegerElement extends UnsignedInteger32Element {
 
diff --git a/org.eclipse.osee.ote.feature/feature.xml b/org.eclipse.osee.ote.feature/feature.xml
index 677de67..532ec08 100644
--- a/org.eclipse.osee.ote.feature/feature.xml
+++ b/org.eclipse.osee.ote.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.osee.ote.feature"
       label="%featureName"
-      version="0.26.0.qualifier"
+      version="1.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/org.eclipse.osee.ote.feature/pom.xml b/org.eclipse.osee.ote.feature/pom.xml
index 49d6e3f..72ab8cd 100644
--- a/org.eclipse.osee.ote.feature/pom.xml
+++ b/org.eclipse.osee.ote.feature/pom.xml
@@ -4,7 +4,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 	<artifactId>org.eclipse.osee.ote.feature</artifactId>
diff --git a/org.eclipse.osee.ote.help.ui.test/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.help.ui.test/META-INF/MANIFEST.MF
index 46f6fd5..9ade011 100644
--- a/org.eclipse.osee.ote.help.ui.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.help.ui.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE OTE Help UI Test (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.help.ui.test
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Fragment-Host: org.eclipse.osee.ote.help.ui
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osee.ote.help.ui.test/pom.xml b/org.eclipse.osee.ote.help.ui.test/pom.xml
index f721258..d0d39e3 100644
--- a/org.eclipse.osee.ote.help.ui.test/pom.xml
+++ b/org.eclipse.osee.ote.help.ui.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.help.ui/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.help.ui/META-INF/MANIFEST.MF
index bc85410..1129025 100644
--- a/org.eclipse.osee.ote.help.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.help.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE OTE Help (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.help.ui;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osee.ote.help.ui/pom.xml b/org.eclipse.osee.ote.help.ui/pom.xml
index 316a7a6..b90d075 100644
--- a/org.eclipse.osee.ote.help.ui/pom.xml
+++ b/org.eclipse.osee.ote.help.ui/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.io/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.io/META-INF/MANIFEST.MF
index 9f5ef84..7f44d67 100644
--- a/org.eclipse.osee.ote.io/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.io/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE IO (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.io;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.osee.framework.logging,
  org.eclipse.osee.ote.properties,
diff --git a/org.eclipse.osee.ote.io/pom.xml b/org.eclipse.osee.ote.io/pom.xml
index d7a162c..2ba3feb 100644
--- a/org.eclipse.osee.ote.io/pom.xml
+++ b/org.eclipse.osee.ote.io/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.jms/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.jms/META-INF/MANIFEST.MF
index fc55f46..e12126f 100644
--- a/org.eclipse.osee.ote.jms/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.jms/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE JMS (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.jms
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.osee.connection.service,
diff --git a/org.eclipse.osee.ote.jms/pom.xml b/org.eclipse.osee.ote.jms/pom.xml
index 64fd21f..d1c6c90 100644
--- a/org.eclipse.osee.ote.jms/pom.xml
+++ b/org.eclipse.osee.ote.jms/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.master.feature/feature.xml b/org.eclipse.osee.ote.master.feature/feature.xml
index 6878556..caa5e82 100644
--- a/org.eclipse.osee.ote.master.feature/feature.xml
+++ b/org.eclipse.osee.ote.master.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.osee.ote.master.feature"
       label="Feature"
-      version="0.26.0.qualifier"
+      version="1.0.0.qualifier"
       provider-name="Eclipse Open System Engineering Environment">
 
    <description url="http://www.example.com/description">
diff --git a/org.eclipse.osee.ote.master.feature/pom.xml b/org.eclipse.osee.ote.master.feature/pom.xml
index 46c683f..e2aedf3 100644
--- a/org.eclipse.osee.ote.master.feature/pom.xml
+++ b/org.eclipse.osee.ote.master.feature/pom.xml
@@ -4,7 +4,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 	<artifactId>org.eclipse.osee.ote.master.feature</artifactId>
diff --git a/org.eclipse.osee.ote.master.product/pom.xml b/org.eclipse.osee.ote.master.product/pom.xml
index e40f3bc..431ac6e 100644
--- a/org.eclipse.osee.ote.master.product/pom.xml
+++ b/org.eclipse.osee.ote.master.product/pom.xml
@@ -6,14 +6,14 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.osee.ote.master.product</artifactId>
 	<packaging>eclipse-repository</packaging>
 	<name>OSEE Lookup - Product</name>
-	<version>0.26.0-SNAPSHOT</version>
+	<version>1.0.0-SNAPSHOT</version>
 
 	<build>
 		<plugins>
diff --git a/org.eclipse.osee.ote.master.rest.client/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.master.rest.client/META-INF/MANIFEST.MF
index fc35038..6a775b9 100644
--- a/org.eclipse.osee.ote.master.rest.client/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.master.rest.client/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Master Client Rest (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.master.rest.client
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.core.runtime
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osee.ote.master.rest.client/pom.xml b/org.eclipse.osee.ote.master.rest.client/pom.xml
index 6700adb..027c5bf 100644
--- a/org.eclipse.osee.ote.master.rest.client/pom.xml
+++ b/org.eclipse.osee.ote.master.rest.client/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.master.rest.client/src/org/eclipse/osee/ote/master/rest/client/internal/OTEMasterServerImpl.java b/org.eclipse.osee.ote.master.rest.client/src/org/eclipse/osee/ote/master/rest/client/internal/OTEMasterServerImpl.java
index 4b455e0..8d032b3 100644
--- a/org.eclipse.osee.ote.master.rest.client/src/org/eclipse/osee/ote/master/rest/client/internal/OTEMasterServerImpl.java
+++ b/org.eclipse.osee.ote.master.rest.client/src/org/eclipse/osee/ote/master/rest/client/internal/OTEMasterServerImpl.java
@@ -22,6 +22,7 @@
 
    public void bindJaxRsApi(JaxRsApi jaxRsApi) {
       this.jaxRsApi = jaxRsApi;
+      jaxRsApi.createClientFactory(null);
    }
 
    public void start(Map<String, Object> props) {
diff --git a/org.eclipse.osee.ote.master.rest.model/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.master.rest.model/META-INF/MANIFEST.MF
index b1b2cba..590bd27 100644
--- a/org.eclipse.osee.ote.master.rest.model/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.master.rest.model/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Master Rest Model (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.master.rest.model
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.core.runtime
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osee.ote.master.rest.model/pom.xml b/org.eclipse.osee.ote.master.rest.model/pom.xml
index 2951ae8..52aab3a 100644
--- a/org.eclipse.osee.ote.master.rest.model/pom.xml
+++ b/org.eclipse.osee.ote.master.rest.model/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.master.rest.test/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.master.rest.test/META-INF/MANIFEST.MF
index a290152..7701059 100644
--- a/org.eclipse.osee.ote.master.rest.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.master.rest.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Master Rest Test (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.master.rest.test
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.osee.ote.master.rest.client;bundle-version="0.11.1"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit,
diff --git a/org.eclipse.osee.ote.master.rest/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.master.rest/META-INF/MANIFEST.MF
index c30b428..038ac30 100644
--- a/org.eclipse.osee.ote.master.rest/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.master.rest/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Master Rest (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.master.rest;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.core.runtime
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osee.ote.master.rest/pom.xml b/org.eclipse.osee.ote.master.rest/pom.xml
index 3b77b6e..a26039b 100644
--- a/org.eclipse.osee.ote.master.rest/pom.xml
+++ b/org.eclipse.osee.ote.master.rest/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.master.test/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.master.test/META-INF/MANIFEST.MF
index 70ed8d7..0c3ec36 100644
--- a/org.eclipse.osee.ote.master.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.master.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Master Test (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.master.test
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.osee.ote.master;bundle-version="0.11.1"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit;bundle-version="4.10.0"
diff --git a/org.eclipse.osee.ote.master.test/pom.xml b/org.eclipse.osee.ote.master.test/pom.xml
index 949c66e..6cb46fb 100644
--- a/org.eclipse.osee.ote.master.test/pom.xml
+++ b/org.eclipse.osee.ote.master.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.master/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.master/META-INF/MANIFEST.MF
index df5f0af..85a1d61 100644
--- a/org.eclipse.osee.ote.master/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.master/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Master (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.master
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.core.runtime
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osee.ote.master/pom.xml b/org.eclipse.osee.ote.master/pom.xml
index ac56c4c..3afb765 100644
--- a/org.eclipse.osee.ote.master/pom.xml
+++ b/org.eclipse.osee.ote.master/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.messaging.dds/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.messaging.dds/META-INF/MANIFEST.MF
index 1b26071..0016c65 100644
--- a/org.eclipse.osee.ote.messaging.dds/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.messaging.dds/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: DDS Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.messaging.dds;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Export-Package: org.eclipse.osee.ote.messaging.dds,
  org.eclipse.osee.ote.messaging.dds.condition,
diff --git a/org.eclipse.osee.ote.messaging.dds/pom.xml b/org.eclipse.osee.ote.messaging.dds/pom.xml
index d70a0bd..f956f23 100644
--- a/org.eclipse.osee.ote.messaging.dds/pom.xml
+++ b/org.eclipse.osee.ote.messaging.dds/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.p2/category.xml b/org.eclipse.osee.ote.p2/category.xml
index 07392e6..04f2e0d 100644
--- a/org.eclipse.osee.ote.p2/category.xml
+++ b/org.eclipse.osee.ote.p2/category.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature url="features/org.eclipse.osee.client.ote.feature_0.26.0.qualifier.jar" id="org.eclipse.osee.client.ote.feature" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.client.ote.feature_1.0.0.qualifier.jar" id="org.eclipse.osee.client.ote.feature" version="1.0.0.qualifier">
       <category name="org.eclipse.osee.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.client.ote.feature.source_0.26.0.qualifier.jar" id="org.eclipse.osee.client.ote.feature.source" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.client.ote.feature.source_1.0.0.qualifier.jar" id="org.eclipse.osee.client.ote.feature.source" version="1.0.0.qualifier">
       <category name="org.eclipse.osee.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.ote.feature_0.26.0.qualifier.jar" id="org.eclipse.osee.ote.feature" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.ote.feature_1.0.0.qualifier.jar" id="org.eclipse.osee.ote.feature" version="1.0.0.qualifier">
       <category name="org.eclipse.osee.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.ote.feature.source_0.26.0.qualifier.jar" id="org.eclipse.osee.ote.feature.source" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.ote.feature.source_1.0.0.qualifier.jar" id="org.eclipse.osee.ote.feature.source" version="1.0.0.qualifier">
       <category name="org.eclipse.osee.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.ote.server.external.feature_0.26.0.qualifier.jar" id="org.eclipse.osee.ote.server.external.feature" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.ote.server.external.feature_1.0.0.qualifier.jar" id="org.eclipse.osee.ote.server.external.feature" version="1.0.0.qualifier">
       <category name="org.eclipse.osee.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.ote.server.external.feature.source_0.26.0.qualifier.jar" id="org.eclipse.osee.ote.server.external.feature.source" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.ote.server.external.feature.source_1.0.0.qualifier.jar" id="org.eclipse.osee.ote.server.external.feature.source" version="1.0.0.qualifier">
       <category name="org.eclipse.osee.ote"/>
    </feature>
    <category-def name="org.eclipse.osee.ote" label="Eclipse OSEE OTE - (Incubation)">
diff --git a/org.eclipse.osee.ote.p2/pom.xml b/org.eclipse.osee.ote.p2/pom.xml
index fa0edb2..ceaa36a 100644
--- a/org.eclipse.osee.ote.p2/pom.xml
+++ b/org.eclipse.osee.ote.p2/pom.xml
@@ -6,14 +6,14 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.osee.ote.p2</artifactId>
 	<packaging>eclipse-repository</packaging>
 	<name>OSEE OTE - p2 Site (Incubation)</name>
-	<version>0.26.0-SNAPSHOT</version>
+	<version>1.0.0-SNAPSHOT</version>
 
 <build>
 <plugins>
diff --git a/org.eclipse.osee.ote.parent/pom.xml b/org.eclipse.osee.ote.parent/pom.xml
index 773cdeb..1f0a212 100644
--- a/org.eclipse.osee.ote.parent/pom.xml
+++ b/org.eclipse.osee.ote.parent/pom.xml
@@ -7,7 +7,7 @@
 	<artifactId>org.eclipse.osee.ote.parent</artifactId>
 	<packaging>pom</packaging>
 	<name>OSEE OTE - Parent (Incubation)</name>
-	<version>0.26.0-SNAPSHOT</version>
+	<version>1.0.0-SNAPSHOT</version>
 
 	<modules>
 		<module>../org.eclipse.osee.framework.ui.workspacebundleloader</module>
diff --git a/org.eclipse.osee.ote.properties/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.properties/META-INF/MANIFEST.MF
index 1dcfdb0..34f0bca 100644
--- a/org.eclipse.osee.ote.properties/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.properties/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Properties
 Bundle-SymbolicName: org.eclipse.osee.ote.properties
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.core.runtime
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.osee.ote.properties
diff --git a/org.eclipse.osee.ote.properties/pom.xml b/org.eclipse.osee.ote.properties/pom.xml
index 999d727..ce0e826 100644
--- a/org.eclipse.osee.ote.properties/pom.xml
+++ b/org.eclipse.osee.ote.properties/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.rest.client/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.rest.client/META-INF/MANIFEST.MF
index 50fcf1d..ab27579 100644
--- a/org.eclipse.osee.ote.rest.client/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.rest.client/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE OTE Rest Client (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.rest.client
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Service-Component: OSGI-INF/*.xml
diff --git a/org.eclipse.osee.ote.rest.client/pom.xml b/org.eclipse.osee.ote.rest.client/pom.xml
index d09343b..f6d06de 100644
--- a/org.eclipse.osee.ote.rest.client/pom.xml
+++ b/org.eclipse.osee.ote.rest.client/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.rest.client/src/org/eclipse/osee/ote/rest/client/internal/OteClientImpl.java b/org.eclipse.osee.ote.rest.client/src/org/eclipse/osee/ote/rest/client/internal/OteClientImpl.java
index 23bae05..94ee571 100644
--- a/org.eclipse.osee.ote.rest.client/src/org/eclipse/osee/ote/rest/client/internal/OteClientImpl.java
+++ b/org.eclipse.osee.ote.rest.client/src/org/eclipse/osee/ote/rest/client/internal/OteClientImpl.java
@@ -39,6 +39,7 @@
 
    public void bindJaxRsApi(JaxRsApi jaxRsApi) {
       this.jaxRsApi = jaxRsApi;
+      jaxRsApi.createClientFactory(null);
    }
 
    public void start(Map<String, Object> props) {
diff --git a/org.eclipse.osee.ote.rest.model/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.rest.model/META-INF/MANIFEST.MF
index c1c278a..413d1f5 100644
--- a/org.eclipse.osee.ote.rest.model/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.rest.model/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE OTE Rest Model (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.rest.model
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.osee.ote.rest.model
diff --git a/org.eclipse.osee.ote.rest.model/pom.xml b/org.eclipse.osee.ote.rest.model/pom.xml
index 4062adb..9e55c36 100644
--- a/org.eclipse.osee.ote.rest.model/pom.xml
+++ b/org.eclipse.osee.ote.rest.model/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.rest/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.rest/META-INF/MANIFEST.MF
index 9d93768..3c1dd6e 100644
--- a/org.eclipse.osee.ote.rest/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.rest/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE OTE Rest (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.rest
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/*.xml
diff --git a/org.eclipse.osee.ote.rest/pom.xml b/org.eclipse.osee.ote.rest/pom.xml
index a56ca6d..ef396f8 100644
--- a/org.eclipse.osee.ote.rest/pom.xml
+++ b/org.eclipse.osee.ote.rest/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.runtimeManager/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.runtimeManager/META-INF/MANIFEST.MF
index 33fab1f..d836ec0 100644
--- a/org.eclipse.osee.ote.runtimeManager/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.runtimeManager/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Runtime Manager Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.runtimeManager;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.runtimemanager.RuntimeManager
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.core.resources,
diff --git a/org.eclipse.osee.ote.runtimeManager/pom.xml b/org.eclipse.osee.ote.runtimeManager/pom.xml
index 3903062..25b008f 100644
--- a/org.eclipse.osee.ote.runtimeManager/pom.xml
+++ b/org.eclipse.osee.ote.runtimeManager/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.server.external.feature/feature.xml b/org.eclipse.osee.ote.server.external.feature/feature.xml
index 53e7e9f..4aac0f5 100644
--- a/org.eclipse.osee.ote.server.external.feature/feature.xml
+++ b/org.eclipse.osee.ote.server.external.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.osee.ote.server.external.feature"
       label="OTE Server External Feature"
-      version="0.26.0.qualifier"
+      version="1.0.0.qualifier"
       provider-name="Eclipse Open System Engineering Environment">
 
    <description url="http://www.example.com/description">
diff --git a/org.eclipse.osee.ote.server.external.feature/pom.xml b/org.eclipse.osee.ote.server.external.feature/pom.xml
index 69452d8..90ced3f 100644
--- a/org.eclipse.osee.ote.server.external.feature/pom.xml
+++ b/org.eclipse.osee.ote.server.external.feature/pom.xml
@@ -4,7 +4,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 	<artifactId>org.eclipse.osee.ote.server.external.feature</artifactId>
diff --git a/org.eclipse.osee.ote.server/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.server/META-INF/MANIFEST.MF
index bf22c8d..390efec 100644
--- a/org.eclipse.osee.ote.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.server/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Server Launching Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.server;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Description: OTE Server
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osee.ote.server/pom.xml b/org.eclipse.osee.ote.server/pom.xml
index da0ff7e..a503545 100644
--- a/org.eclipse.osee.ote.server/pom.xml
+++ b/org.eclipse.osee.ote.server/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.ui.builder/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.ui.builder/META-INF/MANIFEST.MF
index 20ba8d6..e7c3ee4 100644
--- a/org.eclipse.osee.ote.ui.builder/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.ui.builder/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Builder Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.ui.builder;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.ui.builder.Activator
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
diff --git a/org.eclipse.osee.ote.ui.builder/pom.xml b/org.eclipse.osee.ote.ui.builder/pom.xml
index 2fdceec..982ec20 100644
--- a/org.eclipse.osee.ote.ui.builder/pom.xml
+++ b/org.eclipse.osee.ote.ui.builder/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.ui.markers/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.ui.markers/META-INF/MANIFEST.MF
index a53954d..8fdfeb7 100644
--- a/org.eclipse.osee.ote.ui.markers/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.ui.markers/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Markers Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.ui.markers;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.ui.markers.MarkerPlugin
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources,
diff --git a/org.eclipse.osee.ote.ui.markers/pom.xml b/org.eclipse.osee.ote.ui.markers/pom.xml
index 611ed3d..52645fe 100644
--- a/org.eclipse.osee.ote.ui.markers/pom.xml
+++ b/org.eclipse.osee.ote.ui.markers/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.ui.output/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.ui.output/META-INF/MANIFEST.MF
index 416ed75..83e8cee 100644
--- a/org.eclipse.osee.ote.ui.output/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.ui.output/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Output Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.ui.output;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.ui.output.Activator
 Require-Bundle: org.eclipse.jface.text,
  org.eclipse.ui.editors,
diff --git a/org.eclipse.osee.ote.ui.output/pom.xml b/org.eclipse.osee.ote.ui.output/pom.xml
index fc2229d..f83adfc 100644
--- a/org.eclipse.osee.ote.ui.output/pom.xml
+++ b/org.eclipse.osee.ote.ui.output/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.ui.output/src/org/eclipse/osee/ote/ui/output/editors/ProcessOutfileOverview.java b/org.eclipse.osee.ote.ui.output/src/org/eclipse/osee/ote/ui/output/editors/ProcessOutfileOverview.java
index 417667e..6fc55c3 100644
--- a/org.eclipse.osee.ote.ui.output/src/org/eclipse/osee/ote/ui/output/editors/ProcessOutfileOverview.java
+++ b/org.eclipse.osee.ote.ui.output/src/org/eclipse/osee/ote/ui/output/editors/ProcessOutfileOverview.java
@@ -16,6 +16,7 @@
 import java.io.File;
 import java.io.InputStream;
 import java.util.logging.Level;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -533,11 +534,11 @@
          @Override
          public void onEndElement(Object obj) {
             uutLog = uutLog.getParent();
-
          }
 
          @Override
          public void onStartElement(Object obj) {
+            lateLoadUutLogObject();
             SummaryData data = (SummaryData) obj;
             IOutfileTreeItem item = new BaseOutfileTreeItem(OutfileRowType.summary, "Summary",
                String.format("node id [%s]", data.getNodeId()),
@@ -548,7 +549,6 @@
             uutLog.getChildren().add(item);
             item.setParent(uutLog);
             uutLog = item;
-
          }
 
       });
@@ -568,7 +568,7 @@
 
          @Override
          public void onStartElement(Object obj) {
-
+            lateLoadUutLogObject();
             currentErrorEntryData = (UutErrorEntryData) obj;
 
          }
@@ -732,6 +732,13 @@
       return Status.OK_STATUS;
    }
 
+   protected void lateLoadUutLogObject() {
+      if (this.uutLog == null) {
+         this.uutLog = new BaseOutfileTreeItem(OutfileRowType.unknown, "", "UUT Log Info", "",
+                                               null);
+      }
+   }
+
    private String spaceProcessing(String expected) {
       int index = 0, preCount = 0, postCount = 0;
       while (index < expected.length() && expected.charAt(index) == ' ') {
diff --git a/org.eclipse.osee.ote.ui.test.manager/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.ui.test.manager/META-INF/MANIFEST.MF
index 3d1ddf5..d677305 100644
--- a/org.eclipse.osee.ote.ui.test.manager/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.ui.test.manager/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE Test Manager Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.ui.test.manager;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.ui.test.manager.internal.TestManagerPlugin
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Export-Package: org.eclipse.osee.ote.ui.test.manager,
diff --git a/org.eclipse.osee.ote.ui.test.manager/pom.xml b/org.eclipse.osee.ote.ui.test.manager/pom.xml
index 4a9e829..0072931 100644
--- a/org.eclipse.osee.ote.ui.test.manager/pom.xml
+++ b/org.eclipse.osee.ote.ui.test.manager/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.ui/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.ui/META-INF/MANIFEST.MF
index ab39381..9c0163a 100644
--- a/org.eclipse.osee.ote.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test Core Gui Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.ui;singleton:=true
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.osee.ote.ui.internal.TestCoreGuiPlugin
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osee.ote.ui/pom.xml b/org.eclipse.osee.ote.ui/pom.xml
index 504163a..380ce31 100644
--- a/org.eclipse.osee.ote.ui/pom.xml
+++ b/org.eclipse.osee.ote.ui/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.ui/src/org/eclipse/osee/ote/ui/navigate/OteXNavigateItemProviders.java b/org.eclipse.osee.ote.ui/src/org/eclipse/osee/ote/ui/navigate/OteXNavigateItemProviders.java
index c49072a..4da7b62 100644
--- a/org.eclipse.osee.ote.ui/src/org/eclipse/osee/ote/ui/navigate/OteXNavigateItemProviders.java
+++ b/org.eclipse.osee.ote.ui/src/org/eclipse/osee/ote/ui/navigate/OteXNavigateItemProviders.java
@@ -30,7 +30,7 @@
       Iterator<XNavigateItemProvider> iterator = providers.iterator();
       iterator.forEachRemaining(provider -> {
          String typeName = provider.getClass().getTypeName();
-         if (!typeName.contains(".ote.")) {
+         if (!typeName.startsWith("ote.") && !typeName.contains(".ote.")) {
             iterator.remove();
          }
       });
diff --git a/org.eclipse.osee.ote.version.git.test/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.version.git.test/META-INF/MANIFEST.MF
index 156999d..7fbfa01 100644
--- a/org.eclipse.osee.ote.version.git.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.version.git.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Version Git Test (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.version.git.test
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.osee.ote.version.git;bundle-version="0.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit;bundle-version="4.11.0"
diff --git a/org.eclipse.osee.ote.version.git.test/pom.xml b/org.eclipse.osee.ote.version.git.test/pom.xml
index e367d53..fdd51f8 100644
--- a/org.eclipse.osee.ote.version.git.test/pom.xml
+++ b/org.eclipse.osee.ote.version.git.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.version.git/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.version.git/META-INF/MANIFEST.MF
index e9862eb..bef9356 100644
--- a/org.eclipse.osee.ote.version.git/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.version.git/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Version Git (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.version.git
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.jgit.api,
  org.eclipse.jgit.api.errors,
diff --git a/org.eclipse.osee.ote.version.git/pom.xml b/org.eclipse.osee.ote.version.git/pom.xml
index be94345..74fd26d 100644
--- a/org.eclipse.osee.ote.version.git/pom.xml
+++ b/org.eclipse.osee.ote.version.git/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.osee.ote.version/META-INF/MANIFEST.MF b/org.eclipse.osee.ote.version/META-INF/MANIFEST.MF
index 1cc0729..da9d7d8 100644
--- a/org.eclipse.osee.ote.version/META-INF/MANIFEST.MF
+++ b/org.eclipse.osee.ote.version/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Version (Incubation)
 Bundle-SymbolicName: org.eclipse.osee.ote.version
-Bundle-Version: 0.26.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.osee.ote.version
 Service-Component: OSGI-INF/*.xml
diff --git a/org.eclipse.osee.ote.version/pom.xml b/org.eclipse.osee.ote.version/pom.xml
index 1347b2a..96758a4 100644
--- a/org.eclipse.osee.ote.version/pom.xml
+++ b/org.eclipse.osee.ote.version/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.osee</groupId>
 		<artifactId>org.eclipse.osee.ote.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.osee.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.build/maven/base/pom.xml b/org.eclipse.ote.build/maven/base/pom.xml
index 36511d1..4e083bb 100644
--- a/org.eclipse.ote.build/maven/base/pom.xml
+++ b/org.eclipse.ote.build/maven/base/pom.xml
@@ -7,7 +7,7 @@
 	<artifactId>base</artifactId>
 	<packaging>pom</packaging>
 	<name>Eclipse OTE Maven Repos Parent</name>
-	<version>0.26.1-SNAPSHOT</version>
+	<version>1.0.0</version>
 
 	<properties>
 		<build-alias>-DEV</build-alias>
diff --git a/org.eclipse.ote.build/maven/core/pom.xml b/org.eclipse.ote.build/maven/core/pom.xml
index bcbea32..1410201 100644
--- a/org.eclipse.ote.build/maven/core/pom.xml
+++ b/org.eclipse.ote.build/maven/core/pom.xml
@@ -6,7 +6,7 @@
    <parent>
       <groupId>org.eclipse.ote.build</groupId>
       <artifactId>base</artifactId>
-      <version>0.26.1-SNAPSHOT</version>
+      <version>1.0.0</version>
       <relativePath>../base</relativePath>
    </parent>
 
diff --git a/org.eclipse.ote.bytemessage.test/META-INF/MANIFEST.MF b/org.eclipse.ote.bytemessage.test/META-INF/MANIFEST.MF
index 66ed199..8e63bac 100644
--- a/org.eclipse.ote.bytemessage.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.bytemessage.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Byte Message Test (Incubation)
 Bundle-SymbolicName: org.eclipse.ote.bytemessage.test
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.ote.bytemessage;bundle-version="0.11.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit,
diff --git a/org.eclipse.ote.bytemessage.test/pom.xml b/org.eclipse.ote.bytemessage.test/pom.xml
index 1d05ec3..6608ad8 100644
--- a/org.eclipse.ote.bytemessage.test/pom.xml
+++ b/org.eclipse.ote.bytemessage.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.bytemessage/META-INF/MANIFEST.MF b/org.eclipse.ote.bytemessage/META-INF/MANIFEST.MF
index 7ca636b..ee48512 100644
--- a/org.eclipse.ote.bytemessage/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.bytemessage/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Bytemessage (Incubation)
 Bundle-SymbolicName: org.eclipse.ote.bytemessage
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.osee.framework.jdk.core.persistence,
  org.eclipse.osee.framework.logging,
diff --git a/org.eclipse.ote.bytemessage/pom.xml b/org.eclipse.ote.bytemessage/pom.xml
index 3e203db..d010528 100644
--- a/org.eclipse.ote.bytemessage/pom.xml
+++ b/org.eclipse.ote.bytemessage/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.ci.test_server/src/org/eclipse/ote/ci/test_server/internal/RunTestArguments.java b/org.eclipse.ote.ci.test_server/src/org/eclipse/ote/ci/test_server/internal/RunTestArguments.java
index d17ea71..d0a5c18 100644
--- a/org.eclipse.ote.ci.test_server/src/org/eclipse/ote/ci/test_server/internal/RunTestArguments.java
+++ b/org.eclipse.ote.ci.test_server/src/org/eclipse/ote/ci/test_server/internal/RunTestArguments.java
@@ -43,7 +43,7 @@
    private Double hours;
    private boolean abortOnFirstFail = false, safetyOnly = false;
 
-   private String[] appArgs;
+   private final String[] appArgs;
 
    public RunTestArguments(String[] appArgs) {
       this.appArgs = appArgs;
@@ -158,7 +158,6 @@
       sb.append(TAB).append(
          "-t  [REQUIRED] tests to run.  Can either be a csv file or a comma seperated list of tests.").append(NEWLINE);
       sb.append(TAB).append("-l  length to run in hours (accepts doubles).").append(NEWLINE);
-      sb.append(TAB).append("-cndRate  rate to run cnd simulated").append(NEWLINE);
       sb.append(TAB).append("-safetyOnly <true|false> When true only runs scripts with @Safety annotation").append(
          NEWLINE);
       sb.append(TAB).append("-abortOnFirstFail <true|false> When true aborts the test after first failure").append(
diff --git a/org.eclipse.ote.client.feature/feature.xml b/org.eclipse.ote.client.feature/feature.xml
index 44b6b48..cd1c44e 100644
--- a/org.eclipse.ote.client.feature/feature.xml
+++ b/org.eclipse.ote.client.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ote.client.feature"
       label="Eclipse OTE "
-      version="0.11.0.qualifier">
+      version="1.0.0.qualifier">
 
    <description url="http://www.example.com/description">
       [Enter Feature Description here.]
@@ -87,13 +87,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.osee.framework.ui.skynet"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.zest.core"
          download-size="0"
          install-size="0"
diff --git a/org.eclipse.ote.client.feature/pom.xml b/org.eclipse.ote.client.feature/pom.xml
index ee40b69..76bdd4c 100644
--- a/org.eclipse.ote.client.feature/pom.xml
+++ b/org.eclipse.ote.client.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.client.ui/META-INF/MANIFEST.MF b/org.eclipse.ote.client.ui/META-INF/MANIFEST.MF
index 7e2b312..74d0b6a 100644
--- a/org.eclipse.ote.client.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.client.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Ui Plug-in
 Bundle-SymbolicName: org.eclipse.ote.client.ui;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.ote.client.ui.internal.OteClientUiPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
diff --git a/org.eclipse.ote.client.ui/pom.xml b/org.eclipse.ote.client.ui/pom.xml
index ee58684..0ebf44f 100644
--- a/org.eclipse.ote.client.ui/pom.xml
+++ b/org.eclipse.ote.client.ui/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.client/META-INF/MANIFEST.MF b/org.eclipse.ote.client/META-INF/MANIFEST.MF
index a0e7601..2517328 100644
--- a/org.eclipse.ote.client/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.client/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Client Plug-in
 Bundle-SymbolicName: org.eclipse.ote.client;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.ote.client.Activator
 Bundle-Vendor: The Boeing Company
 Import-Package: org.eclipse.core.resources,
diff --git a/org.eclipse.ote.client/pom.xml b/org.eclipse.ote.client/pom.xml
index 3549641..d229b1f 100644
--- a/org.eclipse.ote.client/pom.xml
+++ b/org.eclipse.ote.client/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.io.mux.test/META-INF/MANIFEST.MF b/org.eclipse.ote.io.mux.test/META-INF/MANIFEST.MF
index b31e819..0d262d5 100644
--- a/org.eclipse.ote.io.mux.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.io.mux.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE IO Mux Unit Tests
 Bundle-SymbolicName: org.eclipse.ote.io.mux.test
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.ote.io.mux
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit
diff --git a/org.eclipse.ote.io.mux.test/pom.xml b/org.eclipse.ote.io.mux.test/pom.xml
index ade3f72..c416ace 100644
--- a/org.eclipse.ote.io.mux.test/pom.xml
+++ b/org.eclipse.ote.io.mux.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.io.mux/META-INF/MANIFEST.MF b/org.eclipse.ote.io.mux/META-INF/MANIFEST.MF
index 34aedb7..c4b47f7 100644
--- a/org.eclipse.ote.io.mux/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.io.mux/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Mux IO
 Bundle-SymbolicName: org.eclipse.ote.io.mux
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.osee.framework.jdk.core.util,
  org.eclipse.osee.framework.logging,
diff --git a/org.eclipse.ote.io.mux/pom.xml b/org.eclipse.ote.io.mux/pom.xml
index ece3305..08b506e 100644
--- a/org.eclipse.ote.io.mux/pom.xml
+++ b/org.eclipse.ote.io.mux/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.io.test/META-INF/MANIFEST.MF b/org.eclipse.ote.io.test/META-INF/MANIFEST.MF
index 2a4b92d..d476359 100644
--- a/org.eclipse.ote.io.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.io.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE IO Test
 Bundle-SymbolicName: org.eclipse.ote.io.test
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.ote.io;bundle-version="0.11.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit
diff --git a/org.eclipse.ote.io.test/pom.xml b/org.eclipse.ote.io.test/pom.xml
index 71833ed..eac03fe 100644
--- a/org.eclipse.ote.io.test/pom.xml
+++ b/org.eclipse.ote.io.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.io/META-INF/MANIFEST.MF b/org.eclipse.ote.io/META-INF/MANIFEST.MF
index 93c27a0..aafaac7 100644
--- a/org.eclipse.ote.io/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.io/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IO
 Bundle-SymbolicName: org.eclipse.ote.io
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.osee.framework.logging,
  org.eclipse.osee.ote.message.enums
diff --git a/org.eclipse.ote.io/pom.xml b/org.eclipse.ote.io/pom.xml
index 64fec0e..93458f5 100644
--- a/org.eclipse.ote.io/pom.xml
+++ b/org.eclipse.ote.io/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.mavenbuild/pom.xml b/org.eclipse.ote.mavenbuild/pom.xml
index ed27c51..8dc2930 100644
--- a/org.eclipse.ote.mavenbuild/pom.xml
+++ b/org.eclipse.ote.mavenbuild/pom.xml
@@ -14,7 +14,7 @@
 	<artifactId>org.eclipse.ote.mavenbuild</artifactId>
 	<packaging>pom</packaging>
 	<name>Eclipse OTE Maven Repos Parent</name>
-	<version>0.11.0-SNAPSHOT</version>
+	<version>1.0.0-SNAPSHOT</version>
 
 	<profiles>
 	    <profile>
diff --git a/org.eclipse.ote.message.lookup.test/META-INF/MANIFEST.MF b/org.eclipse.ote.message.lookup.test/META-INF/MANIFEST.MF
index 189713c..25a81da 100644
--- a/org.eclipse.ote.message.lookup.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.message.lookup.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Message Lookup Unit Tests
 Bundle-SymbolicName: org.eclipse.ote.message.lookup.test
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.ote.message.lookup;bundle-version="0.11.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit;bundle-version="4.12.0"
diff --git a/org.eclipse.ote.message.lookup.test/pom.xml b/org.eclipse.ote.message.lookup.test/pom.xml
index c4e76b8..67339f2 100644
--- a/org.eclipse.ote.message.lookup.test/pom.xml
+++ b/org.eclipse.ote.message.lookup.test/pom.xml
@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.message.lookup/META-INF/MANIFEST.MF b/org.eclipse.ote.message.lookup/META-INF/MANIFEST.MF
index 7eb52b2..88f776f 100644
--- a/org.eclipse.ote.message.lookup/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.message.lookup/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Message Lookup (Incubation)
 Bundle-SymbolicName: org.eclipse.ote.message.lookup
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.core.runtime,
  org.hsqldb
 Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.ote.message.lookup/pom.xml b/org.eclipse.ote.message.lookup/pom.xml
index 31f46df..0a16de3 100644
--- a/org.eclipse.ote.message.lookup/pom.xml
+++ b/org.eclipse.ote.message.lookup/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.message.manager/META-INF/MANIFEST.MF b/org.eclipse.ote.message.manager/META-INF/MANIFEST.MF
index 72d3d4a..c05f9f0 100644
--- a/org.eclipse.ote.message.manager/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.message.manager/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Message Manager (Incubation)
 Bundle-SymbolicName: org.eclipse.ote.message.manager
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.core.runtime
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.ote.message.manager/pom.xml b/org.eclipse.ote.message.manager/pom.xml
index 7d8b365..87f1f89 100644
--- a/org.eclipse.ote.message.manager/pom.xml
+++ b/org.eclipse.ote.message.manager/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.message.manager/src/org/eclipse/ote/message/manager/MessageCollection.java b/org.eclipse.ote.message.manager/src/org/eclipse/ote/message/manager/MessageCollection.java
index aaf145b..60ead02 100644
--- a/org.eclipse.ote.message.manager/src/org/eclipse/ote/message/manager/MessageCollection.java
+++ b/org.eclipse.ote.message.manager/src/org/eclipse/ote/message/manager/MessageCollection.java
@@ -23,7 +23,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.logging.Level;
-
 import org.eclipse.osee.framework.jdk.core.type.DoubleKeyHashMap;
 import org.eclipse.osee.framework.logging.OseeLog;
 import org.eclipse.osee.ote.core.GCHelper;
@@ -42,10 +41,9 @@
 import org.eclipse.osee.ote.messaging.dds.service.TopicDescription;
 
 /**
- * Keeps both the collection of readers and writers but also handles the periodic publish tasks for
- * each periodic message writer. This class will create a task for each requested rate and add all
- * messages to that task that matches the rate. It will also switch tasks for a message when the
- * rate for that message is changed.
+ * Keeps both the collection of readers and writers but also handles the periodic publish tasks for each periodic
+ * message writer. This class will create a task for each requested rate and add all messages to that task that matches
+ * the rate. It will also switch tasks for a message when the rate for that message is changed.
  *
  * @author Ryan D. Brooks
  * @author Andrew M. Finkbeiner
@@ -63,8 +61,8 @@
    private final PeriodicPublishMap periodicPublicationTasks;
 
    private final ConsoleCommandTracker cmdTracker;
-   private List<MessageWriterSetupHandler> messageSetupHandlers;
-   private List<MessageRemoveHandler> messageRemoveHandlers;
+   private final List<MessageWriterSetupHandler> messageSetupHandlers;
+   private final List<MessageRemoveHandler> messageRemoveHandlers;
    private NamespaceMapper namespaceMapper;
    private IMessageManager manager;
 
@@ -97,9 +95,8 @@
    }
 
    /**
-    * This method returns an instance of the specified class. It will return null if an instance
-    * does not already exist. If a message exists it also adds the message to the list of messages
-    * to be zeroized after a script completes.
+    * This method returns an instance of the specified class. It will return null if an instance does not already exist.
+    * If a message exists it also adds the message to the list of messages to be zeroized after a script completes.
     */
    public U get(Class<? extends U> clazz, Namespace namespace, boolean writer) {
       checkState();
@@ -143,12 +140,15 @@
 
    public void add(Class<? extends U> clazz, Namespace namespace, boolean writer, U message) {
       checkState();
-      if (namespace == null)
+      if (namespace == null) {
          throw new IllegalArgumentException("the argument 'namespace' can not be null.");
-      if (clazz == null)
+      }
+      if (clazz == null) {
          throw new IllegalArgumentException("the argument 'clazz' can not be null.");
-      if (message == null)
+      }
+      if (message == null) {
          throw new IllegalArgumentException("the argument 'message' can not be null.");
+      }
 
       if (writer) {
          synchronized (messageWriters) {
@@ -156,8 +156,7 @@
                messageWriters.put(namespace, clazz, message);
             } else {
                throw new TestException(String.format("Message [%s] exists more than once in namespace[%s]",
-                                                     clazz.getName(), namespace.toString()),
-                                       Level.SEVERE);
+                  clazz.getName(), namespace.toString()), Level.SEVERE);
             }
          }
       } else {
@@ -166,8 +165,7 @@
                messageReaders.put(namespace, clazz, message);
             } else {
                throw new TestException(String.format("Message [%s] exists more than once in namespace[%s]",
-                                                     clazz.getName(), namespace.toString()),
-                                       Level.SEVERE);
+                  clazz.getName(), namespace.toString()), Level.SEVERE);
             }
             addMessageDataReader(message);
          }
@@ -208,9 +206,8 @@
       if (o.size() == 1) {
          return o.get(0);
       } else if (o.size() > 1) {
-         throw new TestException(String.format("Message [%s] exists in more than one namespace.",
-                                               clazz.getName()),
-                                 Level.SEVERE);
+         throw new TestException(String.format("Message [%s] exists in more than one namespace.", clazz.getName()),
+            Level.SEVERE);
       }
       return null;
    }
@@ -232,8 +229,8 @@
    private void addMessageToRateTask(Message message, double newHzRate) {
       PeriodicPublishTask task = null;
       if (newHzRate == 0) {
-         log(Level.SEVERE, "Trying to schedule a message at 0Hz. [" + message.getMessageName()
-                           + ", default Hz='" + message.getRate() + "']");
+         log(Level.SEVERE,
+            "Trying to schedule a message at 0Hz. [" + message.getMessageName() + ", default Hz='" + message.getRate() + "']");
       } else {
          if (periodicPublicationTasks.containsKey(newHzRate, 0)) {
             task = periodicPublicationTasks.get(newHzRate, 0);
@@ -256,9 +253,9 @@
    }
 
    /**
-    * This method iterates through the list of periodic publish tasks and adds them to the
-    * environment task scheduler. This method must be called before a script begins to run so that
-    * all registered messages will be sent by the environment at the appropriate time.
+    * This method iterates through the list of periodic publish tasks and adds them to the environment task scheduler.
+    * This method must be called before a script begins to run so that all registered messages will be sent by the
+    * environment at the appropriate time.
     */
    public void startPeriodicMessages() {
       checkState();
@@ -323,8 +320,7 @@
       Namespace namespace = namespaceMapper.getNamespace(type);
       synchronized (messageWriters) {
          if (namespace == null) {
-            OseeLog.log(MessageCollection.class, Level.FINEST,
-                        String.format("namespace for %s is null", type.name()));
+            OseeLog.log(MessageCollection.class, Level.FINEST, String.format("namespace for %s is null", type.name()));
          }
          Collection<U> currentList = messageWriters.get(namespace);
          if (currentList != null) {
@@ -340,8 +336,7 @@
       Namespace namespace = namespaceMapper.getNamespace(type);
       synchronized (messageReaders) {
          if (namespace == null) {
-            OseeLog.log(MessageCollection.class, Level.FINEST,
-                        String.format("namespace for %s is null", type.name()));
+            OseeLog.log(MessageCollection.class, Level.FINEST, String.format("namespace for %s is null", type.name()));
          }
          Collection<U> currentList = messageReaders.get(namespace);
          if (currentList != null) {
@@ -377,8 +372,7 @@
       periodicPublicationTasks.clear();
    }
 
-   public <CLASSTYPE extends U> void onMessageCreated(Class<CLASSTYPE> messageClass,
-         IMessageRequestor requestor, boolean writer, CLASSTYPE message, Namespace namespace) {
+   public <CLASSTYPE extends U> void onMessageCreated(Class<CLASSTYPE> messageClass, IMessageRequestor requestor, boolean writer, CLASSTYPE message, Namespace namespace) {
       if (requestor == null) {
          return;
       }
@@ -389,9 +383,9 @@
             if (messageWriters.get(namespace, messageClass) == null) {
                messageWriters.put(namespace, messageClass, message);
             } else {
-               log(Level.WARNING,
-                   String.format("[%s] has already been added to the message collection, you have multiple instances in the environment.",
-                                 message.getName()));
+               log(Level.WARNING, String.format(
+                  "[%s] has already been added to the message collection, you have multiple instances in the environment.",
+                  message.getName()));
             }
          }
       } else {
@@ -409,25 +403,25 @@
          }
       } else {
          throw new TestException(String.format("MessageData [%s] exists more than once in namespace[%s]",
-                                               messageData.getTopicName(),
-                                               messageData.getNamespace().toString()),
-                                 Level.SEVERE);
+            messageData.getTopicName(), messageData.getNamespace().toString()), Level.SEVERE);
       }
    }
 
    /**
     * @param topic
-    * @return true if this topic should copy the databuffer from the writer into the reader when
-    *         sent
+    * @return true if this topic should copy the databuffer from the writer into the reader when sent
     */
    private boolean topicShouldWrap(TopicDescription topic) {
-      // TODO: Add some sort of service call to do this correctly
-      return true;
+      boolean shouldWrap = true;
+      for (MessageWriterSetupHandler handler : messageSetupHandlers) {
+         shouldWrap = shouldWrap && handler.shouldWrap(topic);
+      }
+
+      return shouldWrap;
    }
 
    private TopicDescription createTopicDescription(MessageData messageData) {
-      return new TopicDescriptionImpl(messageData.getTopicName(),
-                                      messageData.getNamespace().toString());
+      return new TopicDescriptionImpl(messageData.getTopicName(), messageData.getNamespace().toString());
    }
 
    @SuppressWarnings("deprecation")
@@ -442,9 +436,11 @@
       }
    }
 
+   @Override
    public void isScheduledChanged(boolean isScheduled) {
    }
 
+   @Override
    public void onRateChanged(Message message, double oldRate, double newRate) {
       checkState();
       removeMessageFromRateTask(message, oldRate);
@@ -464,8 +460,8 @@
             Class clazz = innerit.next();
             Message msg = subHash.get(clazz);
             if (msg != null) {
-               sb.append(String.format("Reader.%s.%s [%d]\n", namespace, msg.getName(),
-                                       manager.getReferenceCount(msg)));
+               sb.append(
+                  String.format("Reader.%s.%s [%d]\n", namespace, msg.getName(), manager.getReferenceCount(msg)));
             }
          }
       }
@@ -478,8 +474,8 @@
             Class clazz = innerit.next();
             Message msg = subHash.get(clazz);
             if (msg != null) {
-               sb.append(String.format("Writer.%s.%s [%d]\n", namespace, msg.getName(),
-                                       manager.getReferenceCount(msg)));
+               sb.append(
+                  String.format("Writer.%s.%s [%d]\n", namespace, msg.getName(), manager.getReferenceCount(msg)));
             }
          }
       }
@@ -489,7 +485,8 @@
 
    private class MessageCollectionConsole extends ConsoleCommand {
 
-      private static final String DESCRIPTION = "Prints the messages that exist in the environment and their reference count.";
+      private static final String DESCRIPTION =
+         "Prints the messages that exist in the environment and their reference count.";
       private static final String NAME = "mc";
 
       protected MessageCollectionConsole() {
@@ -541,24 +538,20 @@
             removeHandler.writerRemoveHandler(msg);
          }
          log(Level.FINEST,
-             String.format("disposing the message [%s][writer] because it's reference count is 0.",
-                           msg.getName()));
+            String.format("disposing the message [%s][writer] because it's reference count is 0.", msg.getName()));
       } else {
          msg = messageReaders.remove(namespace, class1);
          for (MessageRemoveHandler removeHandler : messageRemoveHandlers) {
             removeHandler.readerRemoveHandler(msg);
          }
          log(Level.FINEST,
-             String.format("disposing the message [%s][reader] because it's reference count is 0.",
-                           msg.getName()));
-         log(Level.FINEST, String.format("%d messages related",
-                                         msg.getDefaultMessageData().getMessages().size()));
+            String.format("disposing the message [%s][reader] because it's reference count is 0.", msg.getName()));
+         log(Level.FINEST, String.format("%d messages related", msg.getDefaultMessageData().getMessages().size()));
 
          MessageData removed = messageDataReaders.remove(createTopicDescription(msg.getDefaultMessageData()));
          if (removed == null) {
-            log(Level.WARNING,
-                String.format("Failed to remove reader %s.%s -- %s", namespace.toString(),
-                              msg.getDefaultMessageData().getTopicName(), namespace.toString()));
+            log(Level.WARNING, String.format("Failed to remove reader %s.%s -- %s", namespace.toString(),
+               msg.getDefaultMessageData().getTopicName(), namespace.toString()));
          }
       }
       msg.destroy();
diff --git a/org.eclipse.ote.message.manager/src/org/eclipse/ote/message/manager/MessageWriterSetupHandler.java b/org.eclipse.ote.message.manager/src/org/eclipse/ote/message/manager/MessageWriterSetupHandler.java
index a0d3c08..a780109 100644
--- a/org.eclipse.ote.message.manager/src/org/eclipse/ote/message/manager/MessageWriterSetupHandler.java
+++ b/org.eclipse.ote.message.manager/src/org/eclipse/ote/message/manager/MessageWriterSetupHandler.java
@@ -14,13 +14,22 @@
 package org.eclipse.ote.message.manager;
 
 import org.eclipse.osee.ote.message.Message;
+import org.eclipse.osee.ote.messaging.dds.service.TopicDescription;
 
 /**
- * 
  * @author Michael P. Masterson
  */
 public interface MessageWriterSetupHandler {
 
    void setup(Message message);
 
+   /**
+    * Return true if the topic should allow for the wrapping of writer data into reader data. This is useful to be set
+    * to false if you want to ensure all reader transmissions of the IO are coming from a physical interface. If the
+    * data may be simulated it is generally a good idea to return true
+    *
+    * @param topic
+    * @return Whether to wrap or not.
+    */
+   boolean shouldWrap(TopicDescription topic);
 }
diff --git a/org.eclipse.ote.osgi.configuration.test/META-INF/MANIFEST.MF b/org.eclipse.ote.osgi.configuration.test/META-INF/MANIFEST.MF
index f30e95e..1afad68 100644
--- a/org.eclipse.ote.osgi.configuration.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.osgi.configuration.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Eclipse OTE OSGI Configuration Unit Test
 Bundle-SymbolicName: org.eclipse.ote.osgi.configuration.test
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.ote.osgi.configuration
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit,
diff --git a/org.eclipse.ote.osgi.configuration.test/pom.xml b/org.eclipse.ote.osgi.configuration.test/pom.xml
index 4bd4eb4..9b97662 100644
--- a/org.eclipse.ote.osgi.configuration.test/pom.xml
+++ b/org.eclipse.ote.osgi.configuration.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.osgi.configuration/META-INF/MANIFEST.MF b/org.eclipse.ote.osgi.configuration/META-INF/MANIFEST.MF
index 2c723be..c4cf08f 100644
--- a/org.eclipse.ote.osgi.configuration/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.osgi.configuration/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Eclipse OTE OSGI Configuration
 Bundle-SymbolicName: org.eclipse.ote.osgi.configuration
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.equinox.cm
 Service-Component: OSGI-INF/*.xml
diff --git a/org.eclipse.ote.osgi.configuration/pom.xml b/org.eclipse.ote.osgi.configuration/pom.xml
index 00de865..3ffc0c1 100644
--- a/org.eclipse.ote.osgi.configuration/pom.xml
+++ b/org.eclipse.ote.osgi.configuration/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.p2/category.xml b/org.eclipse.ote.p2/category.xml
index 3418534..4cf4e25 100644
--- a/org.eclipse.ote.p2/category.xml
+++ b/org.eclipse.ote.p2/category.xml
@@ -1,39 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature url="features/org.eclipse.ote.client.feature_0.11.0.qualifier.jar" id="org.eclipse.ote.client.feature" version="0.11.0.qualifier">
+   <feature url="features/org.eclipse.ote.client.feature_1.0.0.qualifier.jar" id="org.eclipse.ote.client.feature" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.ote.client.feature.source_0.11.0.qualifier.jar" id="org.eclipse.ote.client.feature.source" version="0.11.0.qualifier">
+   <feature url="features/org.eclipse.ote.client.feature.source_1.0.0.qualifier.jar" id="org.eclipse.ote.client.feature.source" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.ote.serverclient.feature_0.11.0.qualifier.jar" id="org.eclipse.ote.serverclient.feature" version="0.11.0.qualifier">
+   <feature url="features/org.eclipse.ote.serverclient.feature_1.0.0.qualifier.jar" id="org.eclipse.ote.serverclient.feature" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.ote.serverclient.feature.source_0.11.0.qualifier.jar" id="org.eclipse.ote.serverclient.feature.source" version="0.11.0.qualifier">
+   <feature url="features/org.eclipse.ote.serverclient.feature.source_1.0.0.qualifier.jar" id="org.eclipse.ote.serverclient.feature.source" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.ote.server.feature_0.11.0.qualifier.jar" id="org.eclipse.ote.server.feature" version="0.11.0.qualifier">
+   <feature url="features/org.eclipse.ote.server.feature_1.0.0.qualifier.jar" id="org.eclipse.ote.server.feature" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.ote.server.feature.source_0.11.0.qualifier.jar" id="org.eclipse.ote.server.feature.source" version="0.11.0.qualifier">
+   <feature url="features/org.eclipse.ote.server.feature.source_1.0.0.qualifier.jar" id="org.eclipse.ote.server.feature.source" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.client.ote.feature_0.26.0.qualifier.jar" id="org.eclipse.osee.client.ote.feature" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.client.ote.feature_1.0.0.qualifier.jar" id="org.eclipse.osee.client.ote.feature" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.client.ote.feature.source_0.26.0.qualifier.jar" id="org.eclipse.osee.client.ote.feature.source" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.client.ote.feature.source_1.0.0.qualifier.jar" id="org.eclipse.osee.client.ote.feature.source" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.ote.feature_0.26.0.qualifier.jar" id="org.eclipse.osee.ote.feature" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.ote.feature_1.0.0.qualifier.jar" id="org.eclipse.osee.ote.feature" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.ote.feature.source_0.26.0.qualifier.jar" id="org.eclipse.osee.ote.feature.source" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.ote.feature.source_1.0.0.qualifier.jar" id="org.eclipse.osee.ote.feature.source" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-    <feature url="features/org.eclipse.osee.ote.server.external.feature_0.26.0.qualifier.jar" id="org.eclipse.osee.ote.server.external.feature" version="0.26.0.qualifier">
+    <feature url="features/org.eclipse.osee.ote.server.external.feature_1.0.0.qualifier.jar" id="org.eclipse.osee.ote.server.external.feature" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
-   <feature url="features/org.eclipse.osee.ote.server.external.feature.source_0.26.0.qualifier.jar" id="org.eclipse.osee.ote.server.external.feature.source" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.osee.ote.server.external.feature.source_1.0.0.qualifier.jar" id="org.eclipse.osee.ote.server.external.feature.source" version="1.0.0.qualifier">
       <category name="org.eclipse.ote"/>
    </feature>
    
diff --git a/org.eclipse.ote.p2/pom.xml b/org.eclipse.ote.p2/pom.xml
index 2def2ac..cab882a 100644
--- a/org.eclipse.ote.p2/pom.xml
+++ b/org.eclipse.ote.p2/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.parent/pom.xml b/org.eclipse.ote.parent/pom.xml
index 6b943b5..87810d1 100644
--- a/org.eclipse.ote.parent/pom.xml
+++ b/org.eclipse.ote.parent/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.mavenbuild</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.mavenbuild</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.server.feature/feature.xml b/org.eclipse.ote.server.feature/feature.xml
index 3283f83..4c46483 100644
--- a/org.eclipse.ote.server.feature/feature.xml
+++ b/org.eclipse.ote.server.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ote.server.feature"
       label="Eclipse OTE "
-      version="0.11.0.qualifier">
+      version="1.0.0.qualifier">
 
    <description url="http://www.example.com/description">
       [Enter Feature Description here.]
diff --git a/org.eclipse.ote.server.feature/pom.xml b/org.eclipse.ote.server.feature/pom.xml
index c2ddcb8..d8e82fd 100644
--- a/org.eclipse.ote.server.feature/pom.xml
+++ b/org.eclipse.ote.server.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.serverclient.feature/feature.xml b/org.eclipse.ote.serverclient.feature/feature.xml
index 9e7672c..bd3d37b 100644
--- a/org.eclipse.ote.serverclient.feature/feature.xml
+++ b/org.eclipse.ote.serverclient.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ote.serverclient.feature"
       label="Eclipse OTE "
-      version="0.11.0.qualifier">
+      version="1.0.0.qualifier">
 
    <description url="http://www.example.com/description">
       [Enter Feature Description here.]
diff --git a/org.eclipse.ote.serverclient.feature/pom.xml b/org.eclipse.ote.serverclient.feature/pom.xml
index 45e990a..9513588 100644
--- a/org.eclipse.ote.serverclient.feature/pom.xml
+++ b/org.eclipse.ote.serverclient.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.services.core/META-INF/MANIFEST.MF b/org.eclipse.ote.services.core/META-INF/MANIFEST.MF
index fc0b1bc..a98e1e1 100644
--- a/org.eclipse.ote.services.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.services.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Services Core (Incubation)
 Bundle-SymbolicName: org.eclipse.ote.services.core
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.runtime,
diff --git a/org.eclipse.ote.services.core/pom.xml b/org.eclipse.ote.services.core/pom.xml
index e7369e3..f54525c 100644
--- a/org.eclipse.ote.services.core/pom.xml
+++ b/org.eclipse.ote.services.core/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.simple.oteide.product.feature/feature.xml b/org.eclipse.ote.simple.oteide.product.feature/feature.xml
index 971bc0a..71055a3 100644
--- a/org.eclipse.ote.simple.oteide.product.feature/feature.xml
+++ b/org.eclipse.ote.simple.oteide.product.feature/feature.xml
@@ -27,19 +27,19 @@
 
    <includes
          id="org.eclipse.ote.server.feature"
-         version="0.11.0.qualifier"/>
+         version="1.0.0.qualifier"/>
 
    <includes
          id="org.eclipse.ote.server.feature.source"
-         version="0.11.0.qualifier"/>
+         version="1.0.0.qualifier"/>
 
    <includes
          id="org.eclipse.ote.serverclient.feature"
-         version="0.11.0.qualifier"/>
+         version="1.0.0.qualifier"/>
 
    <includes
          id="org.eclipse.ote.serverclient.feature.source"
-         version="0.11.0.qualifier"/>
+         version="1.0.0.qualifier"/>
 
    <includes
          id="org.eclipse.osee.client.all.feature"
diff --git a/org.eclipse.ote.statemachine.test/META-INF/MANIFEST.MF b/org.eclipse.ote.statemachine.test/META-INF/MANIFEST.MF
index 151353e..1fc653a 100644
--- a/org.eclipse.ote.statemachine.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.statemachine.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.ote.statemachine.test
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.ote.statemachine;bundle-version="0.11.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit,
diff --git a/org.eclipse.ote.statemachine.test/pom.xml b/org.eclipse.ote.statemachine.test/pom.xml
index 7c229ad..c222f3c 100644
--- a/org.eclipse.ote.statemachine.test/pom.xml
+++ b/org.eclipse.ote.statemachine.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.statemachine/META-INF/MANIFEST.MF b/org.eclipse.ote.statemachine/META-INF/MANIFEST.MF
index 79f4148..1e7da1d 100644
--- a/org.eclipse.ote.statemachine/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.statemachine/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Statemachine (Incubation)
 Bundle-SymbolicName: org.eclipse.ote.statemachine
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.ote.statemachine
diff --git a/org.eclipse.ote.statemachine/pom.xml b/org.eclipse.ote.statemachine/pom.xml
index cc35838..cbe48de 100644
--- a/org.eclipse.ote.statemachine/pom.xml
+++ b/org.eclipse.ote.statemachine/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.test.manager.uut.selector/META-INF/MANIFEST.MF b/org.eclipse.ote.test.manager.uut.selector/META-INF/MANIFEST.MF
index 3eb3ff1..03ac1aa 100644
--- a/org.eclipse.ote.test.manager.uut.selector/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.test.manager.uut.selector/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Test Manager UUT Selector Plug-in
 Bundle-SymbolicName: org.eclipse.ote.test.manager.uut.selector;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: The Boeing Company
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.ote.test.manager.uut.selector/pom.xml b/org.eclipse.ote.test.manager.uut.selector/pom.xml
index 08cff67..05a7944 100644
--- a/org.eclipse.ote.test.manager.uut.selector/pom.xml
+++ b/org.eclipse.ote.test.manager.uut.selector/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.test.manager/META-INF/MANIFEST.MF b/org.eclipse.ote.test.manager/META-INF/MANIFEST.MF
index bbd26b6..55d8536 100644
--- a/org.eclipse.ote.test.manager/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.test.manager/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Test Manager Plug-in
 Bundle-SymbolicName: org.eclipse.ote.test.manager;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.ote.test.manager.internal.OteTestManagerPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.osee.ote.ui.test.manager,
diff --git a/org.eclipse.ote.test.manager/pom.xml b/org.eclipse.ote.test.manager/pom.xml
index 1533a05..490c303 100644
--- a/org.eclipse.ote.test.manager/pom.xml
+++ b/org.eclipse.ote.test.manager/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.test.server.external.feature/feature.xml b/org.eclipse.ote.test.server.external.feature/feature.xml
index 83e77f3..26f7c62 100644
--- a/org.eclipse.ote.test.server.external.feature/feature.xml
+++ b/org.eclipse.ote.test.server.external.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ote.test.server.external.feature"
       label="%featureName"
-      version="0.26.0.qualifier"
+      version="1.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -291,13 +291,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.equinox.console.ssh"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.apache.felix.gogo.command"
          download-size="0"
          install-size="0"
diff --git a/org.eclipse.ote.test.server.external.feature/pom.xml b/org.eclipse.ote.test.server.external.feature/pom.xml
index fa36442..383cecb 100644
--- a/org.eclipse.ote.test.server.external.feature/pom.xml
+++ b/org.eclipse.ote.test.server.external.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote.test.server</groupId>
 		<artifactId>org.eclipse.ote.test.server.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.test.server.parent</relativePath>
 	</parent>
 
@@ -49,6 +49,42 @@
 								<plugin id="org.eclipse.jgit" />
 								<plugin id="org.eclipse.osee.logback.config" />
 								<plugin id="org.eclipse.osgi.services" />
+								<plugin id="ch.qos.logback.slf4j" />
+								<plugin id="org.eclipse.osgi" />
+								<plugin id="com.lowagie.text" />
+								<plugin id="org.eclipse.core.resources" />
+								<plugin id="org.eclipse.equinox.app" />
+								<plugin id="org.eclipse.equinox.ds" />
+								<plugin id="org.eclipse.osgi.util" />
+								<plugin id="org.eclipse.equinox.common" />
+								<plugin id="org.eclipse.equinox.preferences" />
+								<plugin id="org.eclipse.equinox.registry" />
+								<plugin id="com.ibm.icu" />
+								<plugin id="org.apache.commons.httpclient" />
+								<plugin id="org.eclipse.core.expressions" />
+								<plugin id="org.apache.commons.logging" />
+								<plugin id="org.eclipse.core.filesystem" />
+								<plugin id="org.apache.oro" />
+								<plugin id="org.apache.commons.lang" />
+								<plugin id="org.apache.commons.net" />
+								<plugin id="org.eclipse.equinox.launcher" />
+								<plugin id="org.eclipse.core.net" />
+								<plugin id="org.eclipse.equinox.security" />
+								<plugin id="org.slf4j.api" />
+								<plugin id="org.slf4j.jcl" />
+								<plugin id="org.eclipse.equinox.console" />
+								<plugin id="org.apache.felix.gogo.command" />
+								<plugin id="org.apache.felix.gogo.runtime" />
+								<plugin id="org.apache.felix.gogo.shell" />
+								<plugin id="org.eclipse.equinox.cm" />
+								<plugin id="org.apache.aries.blueprint" />
+								<plugin id="org.apache.aries.blueprint.annotation" />
+								<plugin id="org.osgi.service.blueprint" />
+								<plugin id="org.codehaus.stax2" />
+								<plugin id="com.ctc.wstx" />
+								<plugin id="org.eclipse.equinox.event" />
+								<plugin id="javax.mail.glassfish" />
+								<plugin id="org.apache.commons.io" />
 							</excludes>
 						</configuration>
 					</execution>
diff --git a/org.eclipse.ote.test.server.feature/feature.xml b/org.eclipse.ote.test.server.feature/feature.xml
index f8a2a31..5e6b574 100644
--- a/org.eclipse.ote.test.server.feature/feature.xml
+++ b/org.eclipse.ote.test.server.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ote.test.server.feature"
       label="%featureName"
-      version="0.26.0.qualifier"
+      version="1.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/org.eclipse.ote.test.server.feature/pom.xml b/org.eclipse.ote.test.server.feature/pom.xml
index 3c57467..a44527c 100644
--- a/org.eclipse.ote.test.server.feature/pom.xml
+++ b/org.eclipse.ote.test.server.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote.test.server</groupId>
 		<artifactId>org.eclipse.ote.test.server.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.test.server.parent</relativePath>
 	</parent>
 
@@ -30,6 +30,10 @@
 							<excludes>
 								<plugin id="net.jini" />
 								<plugin id="jms.libraries" />
+								<plugin id="org.eclipse.osee.framework.plugin.core" />
+								<plugin id="org.eclipse.osee.framework.core" />
+								<plugin id="org.eclipse.osee.framework.jdk.core" />
+								<plugin id="org.eclipse.osee.framework.logging" />
 								<feature id="org.eclipse.osee.core.server.external.feature" />
 								<feature id="org.eclipse.osee.x.core.feature" />
 							</excludes>
diff --git a/org.eclipse.ote.test.server.p2/category.xml b/org.eclipse.ote.test.server.p2/category.xml
index c183f54..a695576 100644
--- a/org.eclipse.ote.test.server.p2/category.xml
+++ b/org.eclipse.ote.test.server.p2/category.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature url="features/org.eclipse.ote.test.server.feature_0.26.0.qualifier.jar" id="org.eclipse.ote.test.server.feature" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.ote.test.server.feature_1.0.0.qualifier.jar" id="org.eclipse.ote.test.server.feature" version="1.0.0.qualifier">
       <category name="OTE Test Server"/>
    </feature>
-   <feature url="features/org.eclipse.ote.test.server.feature.source_0.26.0.qualifier.jar" id="org.eclipse.ote.test.server.feature.source" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.ote.test.server.feature.source_1.0.0.qualifier.jar" id="org.eclipse.ote.test.server.feature.source" version="1.0.0.qualifier">
       <category name="OTE Test Server"/>
    </feature>
-   <feature url="features/org.eclipse.ote.test.server.external.feature_0.26.0.qualifier.jar" id="org.eclipse.ote.test.server.external.feature" version="0.26.0.qualifier">
+   <feature url="features/org.eclipse.ote.test.server.external.feature_1.0.0.qualifier.jar" id="org.eclipse.ote.test.server.external.feature" version="1.0.0.qualifier">
       <category name="OTE Test Server"/>
    </feature>
    <category-def name="OTE Test Server" label="OTE Test Server">
diff --git a/org.eclipse.ote.test.server.p2/pom.xml b/org.eclipse.ote.test.server.p2/pom.xml
index 9645c34..12113b6 100644
--- a/org.eclipse.ote.test.server.p2/pom.xml
+++ b/org.eclipse.ote.test.server.p2/pom.xml
@@ -6,14 +6,14 @@
 	<parent>
 		<groupId>org.eclipse.ote.test.server</groupId>
 		<artifactId>org.eclipse.ote.test.server.parent</artifactId>
-		<version>0.26.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.test.server.parent</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.ote.test.server.p2</artifactId>
 	<packaging>eclipse-repository</packaging>
 	<name>OTE Test Server - p2 Site </name>
-	<version>0.26.0-SNAPSHOT</version>
+	<version>1.0.0-SNAPSHOT</version>
 
 	<build>
 		<plugins>
diff --git a/org.eclipse.ote.test.server.parent/pom.xml b/org.eclipse.ote.test.server.parent/pom.xml
index 28bddfc..80206f2 100644
--- a/org.eclipse.ote.test.server.parent/pom.xml
+++ b/org.eclipse.ote.test.server.parent/pom.xml
@@ -14,7 +14,7 @@
 	<artifactId>org.eclipse.ote.test.server.parent</artifactId>
 	<packaging>pom</packaging>
 	<name>OTE TEST SERVER - Parent (Incubation)</name>
-	<version>0.26.0-SNAPSHOT</version>
+	<version>1.0.0-SNAPSHOT</version>
 
 	<modules>
 		<module>../org.eclipse.ote.test.server.external.feature</module>
diff --git a/org.eclipse.ote.ui.eviewer/META-INF/MANIFEST.MF b/org.eclipse.ote.ui.eviewer/META-INF/MANIFEST.MF
index 6be4ffa..4210013 100644
--- a/org.eclipse.ote.ui.eviewer/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.ui.eviewer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OTE Eviewer Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.ote.ui.eviewer;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.ote.ui.eviewer.Activator
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
diff --git a/org.eclipse.ote.ui.eviewer/pom.xml b/org.eclipse.ote.ui.eviewer/pom.xml
index 411424e..a153fe5 100644
--- a/org.eclipse.ote.ui.eviewer/pom.xml
+++ b/org.eclipse.ote.ui.eviewer/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.ui.message.search/META-INF/MANIFEST.MF b/org.eclipse.ote.ui.message.search/META-INF/MANIFEST.MF
index 8f84214..2fdf45d 100644
--- a/org.eclipse.ote.ui.message.search/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.ui.message.search/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View
 Bundle-SymbolicName: org.eclipse.ote.ui.message.search;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.ui;bundle-version="3.103.0",
  org.eclipse.core.runtime
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.ote.ui.message.search/pom.xml b/org.eclipse.ote.ui.message.search/pom.xml
index 4902ffc..8387848 100644
--- a/org.eclipse.ote.ui.message.search/pom.xml
+++ b/org.eclipse.ote.ui.message.search/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.ui.message.util/META-INF/MANIFEST.MF b/org.eclipse.ote.ui.message.util/META-INF/MANIFEST.MF
index cf56068..130740f 100644
--- a/org.eclipse.ote.ui.message.util/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.ui.message.util/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE OTE Messaging Utils
 Bundle-SymbolicName: org.eclipse.ote.ui.message.util;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.ote.ui.message.util.internal.Activator
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
diff --git a/org.eclipse.ote.ui.message.util/pom.xml b/org.eclipse.ote.ui.message.util/pom.xml
index a06a16c..cad58b3 100644
--- a/org.eclipse.ote.ui.message.util/pom.xml
+++ b/org.eclipse.ote.ui.message.util/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.ui.message/META-INF/MANIFEST.MF b/org.eclipse.ote.ui.message/META-INF/MANIFEST.MF
index 006b35a..7925a7e 100644
--- a/org.eclipse.ote.ui.message/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.ui.message/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE MessageTool Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.ote.ui.message;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.ote.ui.message.internal.Activator
 Bundle-Vendor: Eclipse Open System Engineering Environment
 Require-Bundle: org.eclipse.ui,
diff --git a/org.eclipse.ote.ui.message/pom.xml b/org.eclipse.ote.ui.message/pom.xml
index 051e0d0..b4884fa 100644
--- a/org.eclipse.ote.ui.message/pom.xml
+++ b/org.eclipse.ote.ui.message/pom.xml
@@ -6,7 +6,7 @@
 		<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.ui.mux/META-INF/MANIFEST.MF b/org.eclipse.ote.ui.mux/META-INF/MANIFEST.MF
index 2ba4609..80f599d 100644
--- a/org.eclipse.ote.ui.mux/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.ui.mux/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MuxTool Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.ote.ui.mux;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.ote.ui.mux.MuxToolPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
diff --git a/org.eclipse.ote.ui.mux/pom.xml b/org.eclipse.ote.ui.mux/pom.xml
index 9f011e8..519a90a 100644
--- a/org.eclipse.ote.ui.mux/pom.xml
+++ b/org.eclipse.ote.ui.mux/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.ui/META-INF/MANIFEST.MF b/org.eclipse.ote.ui/META-INF/MANIFEST.MF
index 1c19daa..dc29ba9 100644
--- a/org.eclipse.ote.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE OTE UI
 Bundle-SymbolicName: org.eclipse.ote.ui;singleton:=true
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.ui,
  org.eclipse.osee.framework.logging,
  org.eclipse.osee.framework.ui.swt
diff --git a/org.eclipse.ote.ui/pom.xml b/org.eclipse.ote.ui/pom.xml
index e8ed279..78d4115 100644
--- a/org.eclipse.ote.ui/pom.xml
+++ b/org.eclipse.ote.ui/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.util/META-INF/MANIFEST.MF b/org.eclipse.ote.util/META-INF/MANIFEST.MF
index 8369fb9..ce6e796 100644
--- a/org.eclipse.ote.util/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.util/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Util
 Bundle-SymbolicName: org.eclipse.ote.util
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.osee.framework.jdk.core.text,
  org.eclipse.osee.framework.jdk.core.text.rules
diff --git a/org.eclipse.ote.verify.test/META-INF/MANIFEST.MF b/org.eclipse.ote.verify.test/META-INF/MANIFEST.MF
index 3145412..ac022ca 100644
--- a/org.eclipse.ote.verify.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.verify.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE Test Environment Verify Unit Test
 Bundle-SymbolicName: org.eclipse.ote.verify.test
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Boeing
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.ote.verify,
diff --git a/org.eclipse.ote.verify.test/pom.xml b/org.eclipse.ote.verify.test/pom.xml
index edd8aa8..83f703c 100644
--- a/org.eclipse.ote.verify.test/pom.xml
+++ b/org.eclipse.ote.verify.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
diff --git a/org.eclipse.ote.verify/META-INF/MANIFEST.MF b/org.eclipse.ote.verify/META-INF/MANIFEST.MF
index b0a9f70..d9ab4bf 100644
--- a/org.eclipse.ote.verify/META-INF/MANIFEST.MF
+++ b/org.eclipse.ote.verify/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: OSEE Test Environment Verify
 Bundle-SymbolicName: org.eclipse.ote.verify
-Bundle-Version: 0.11.0.qualifier
+Bundle-Version: 1.0.0.qualifier
 Import-Package: org.eclipse.osee.framework.jdk.core.type,
  org.eclipse.osee.ote.core.environment,
  org.eclipse.osee.ote.core.environment.interfaces,
diff --git a/org.eclipse.ote.verify/pom.xml b/org.eclipse.ote.verify/pom.xml
index 809ac2e..a222859 100644
--- a/org.eclipse.ote.verify/pom.xml
+++ b/org.eclipse.ote.verify/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.ote</groupId>
 		<artifactId>org.eclipse.ote.parent</artifactId>
-		<version>0.11.0-SNAPSHOT</version>
+		<version>1.0.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.ote.parent</relativePath>
 	</parent>
 
